You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+25-23Lines changed: 25 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -6,7 +6,7 @@ A terminal-based database client written in Go with vim-mode editing, multi-data
6
6
7
7
-**Databases**: PostgreSQL, MySQL, SQLite, MSSQL
8
8
-**Three-panel layout**: Explorer | Query Editor | Results — each pane shows **key hints** on the bottom border (long lines truncate if the pane is narrow)
9
-
-**AI assistant** (optional right column): chat with a configured CLI (e.g. `cursor-agent`), per connection/database; transcript with **Normal** mode cursor (reverse-video cell like the query editor) and **Insert** for prompts; `enter` in Normal copies the latest AI SQL from a fenced `sql` code block to the query editor; `@` / `#` insert table/column names from schema
9
+
-**AI assistant** (optional right column, **experimental** for now): chat with a configured CLI (e.g. `cursor-agent`), per connection/database; transcript with **Normal** mode cursor (reverse-video cell like the query editor) and **Insert** for prompts; `enter` in Normal copies the latest AI SQL from a fenced `sql` code block to the query editor; `@` / `#` insert table/column names from schema
10
10
-**Vim mode**: Normal and Insert mode with motions (h/j/k/l, w/b, gg/G, dd, etc.)
11
11
-**Multi-query support**: Separate queries by blank lines; execute the one under the cursor
12
12
-**SQL syntax highlighting** via chroma
@@ -96,15 +96,15 @@ Each pane’s **top border** shows its name and focus key: `[e] Explorer`, `[q]
|`a`| Show the AI pane if it was hidden, then focus it. If the AI pane already has focus, `a` does **not** hide it — open the palette (**space**) and press **`a`** to **toggle** the AI column on or off. |
105
-
|`space`| Open command palette (then press a letter: e.g. **`n`** add connection with explorer focused, **`a`** toggle AI pane from explorer / editor / results / AI) |
|`space`| Open command palette (then press a letter: e.g. **`n`** add connection with explorer focused, **`a`** toggle AI pane from explorer / editor / results / AI) |
|`tab`| Next query tab (explorer selection follows) |
124
124
|`shift+tab`| Previous query tab |
125
-
|`i` / `a` / `o`| Enter insert mode |
125
+
|`i` / `o`| Enter insert mode |
126
126
|`enter`| Execute query under cursor. If the block is **only** multiple `DELETE` and/or `UPDATE` statements separated by `;`, they run **one after another**; the results grid shows `#` and `rows_affected` per statement. |
127
127
|`u`| Undo last edit (per tab; up to 200 steps). One undo step covers a whole insert session (from `i`/`a`/… until `esc`), plus normal-mode edits |
128
128
|`ctrl+r`| Redo (normal mode only; see insert mode for run-query) |
@@ -173,30 +173,32 @@ The **active cell** uses a stronger highlight than the rest of the cursor row.
173
173
174
174
### AI Assistant
175
175
176
+
This pane is **experimental**: behavior, CLI integration, and UX may change or break as it is tried out; it is not treated as a stable product surface yet.
177
+
176
178
Shown as a **right column** when visible; width is `layout.ai_pane_width_pct` in `config.json`. Chats are **per**`connection:database` (same key as query tabs). The bottom **status row** in the pane summarizes mode, scroll %, and optional history size warning.
|**Normal** (default) | Transcript area: **block cursor** (reversed cell) on the current line/column — move with `h`/`j`/`k`/`l` or arrows; page keys (`f`/`b`, PgUp/PgDn, `d`/`u`, space) and the **mouse wheel** scroll the view and keep the cursor oriented. Long lines scroll horizontally with the cursor. |
181
-
|`J` / `K`| Jump to the **next** / **previous** fenced `sql` block (same idea as **J**/**K** between query blocks in the editor). |
182
-
|`i`|**Insert** — type in the prompt area; `enter` sends (when not loading). |
183
-
|`esc`| Insert → Normal (blur prompt). |
184
-
|`enter` (Normal) | Copy the fenced `sql` block **on the cursor line** (or the nearest block) to the **query editor**. |
185
-
|`@` (Insert) | Open table picker (schema tables; filter by typing). |
186
-
|`#` (Insert) | Open column picker for the current database. |
183
+
|`J` / `K`| Jump to the **next** / **previous** fenced `sql` block (same idea as **J**/**K** between query blocks in the editor).|
184
+
|`i`|**Insert** — type in the prompt area; `enter` sends (when not loading).|
185
+
|`esc`| Insert → Normal (blur prompt).|
186
+
|`enter` (Normal) | Copy the fenced `sql` block **on the cursor line** (or the nearest block) to the **query editor**.|
187
+
|`@` (Insert) | Open table picker (schema tables; filter by typing).|
188
+
|`#` (Insert) | Open column picker for the current database.|
187
189
188
190
While the prompt field is active (Insert or an `@`/`#` menu), global `e`/`q`/`r`/`a` shortcuts are suppressed until you `esc` the overlay or leave Insert.
189
191
190
192
### Command Palette (space)
191
193
192
194
Press **space** to open the palette, then the **second** key (e.g. **space** then **a** toggles the AI pane from explorer, editor, results, or AI). **Add connection** is **`n`** (explorer palette only), not `a`.
0 commit comments