Workspace

Command palette

One search box for files, tables, text in files, past queries and every action in the app.

The command palette finds anything in the project and runs any action without leaving the keyboard. Press ⇧ twice to open it.

The command palette searching for "orders" across files, tables and file contentsThe command palette searching for "orders" across files, tables and file contents
The command palette searching for "orders" across files, tables and file contents

Opening it

Shortcut Opens on
⇧ twice All — everything at once
⌘P Files
⌘⇧B Database
⌘⇧P Actions
⌘⇧F Text

Tab and ⇧Tab move between the tabs. Esc closes the palette; open it again within a minute and your query is still there.

With nothing typed, the palette shows what you used recently. As you type, results are ranked by how well they match and by how often you pick them.

The tabs

Tab Finds ↩ does
All the best few of every kind, in sections the same as in the kind's own tab
Files files in the project, by name or path opens the file
Database tables, views and columns of your connections, and the connections themselves see below
Actions every command in the app, with its shortcut runs it
Text lines inside the project's files opens the file at that line

In All, a section that has more results ends in Show more →, which switches to that kind's tab.

Files

Type part of a name or a path, such as stg_orders or models/staging. A file that is already open in a tab is marked; ↩ switches to that tab, ⌘↩ opens it in a new one. → opens the file without closing the palette, so you can open several in a row.

Files the project ignores, such as dotfiles and anything in .gitignore, are left out. Press ⇧ twice while the palette is open to include them; the bottom of the palette says Hidden files included.

Database

The Database tab searches every table mxds has loaded for your connections.

  • A table or view — ↩ opens a new SQL tab with select * from that table, limited to 1,000 rows, and runs it on the table's connection.
  • A column — ↩ types the column name at the caret in your current tab.
  • A connection — ↩ makes it the active connection: agents use it when they don't name one, and its tables rank first here.

To find rows rather than a table, select a table and press →. The palette switches to filter mode: type a condition such as id = 123 or status = shipped and press ↩. mxds opens a SQL tab with that where clause and runs it. Column names complete as you type; → accepts the suggestion. ← in an empty filter goes back to the list.

Filter mode on the orders tableFilter mode on the orders table
Filter mode on the orders table

Text

Searches the contents of the project's files. Three toggles next to the search box change how:

Toggle Does
Aa match case
.* treat the query as a regular expression
.gi skip files in .gitignore (on by default)

Start the query with a prefix to search one kind only, from any tab:

Prefix Searches
t: tables and views
c: columns
conn: connections
h: query history — ↩ runs the query again in a new tab, on its connection
query:, view:, results: … actions in that category

The action categories are file, query, view, database, app, navigation, results and chart.

In the All and Database tabs, a dot narrows by schema: staging. lists every table in staging, and staging.ord the ones whose name matches ord.

Loading data from a URL

Paste a link that starts with http:// or https:// and the palette offers one row: Load URL into memory. ↩ downloads the file and loads it into the built-in database as a table.

The row shows the address mxds will actually fetch. A link to a file's page on GitHub is changed to the raw file, and a Google Sheets link to its CSV export. A plain http:// address is marked not encrypted.

Small things

  • If you type with a Russian keyboard layout by mistake, the palette also searches for what the same keys spell in English.
  • Drag the bottom edge of the palette to make it taller.
  • The ranking learns from what you pick. Settings → Help → Command palette → Reset ranking starts it over.