Rowdy — Keyboard Reference

⌨ Global

`Ctrl+C` | Quit from anywhere
`Ctrl+T` | Open new connection tab
`[` `]` | Previous / next tab
`Ctrl+W` | Close current tab
`q` | Close tab (quit if last)

🔌 Connection Screen

`j` `k` | Navigate saved profiles
`Enter` | Connect to selected profile
`n` | Type a new connection URL
`e` | Edit selected profile
`Tab` | Cycle fields: Type → URL → Pre → Post
`←` `→` | Change DB type (when Type focused)
`Ctrl+S` | Save profile (prompts for name)
`D` | Delete selected profile
`q` | Quit

📋 Table List

`j` `k` | Navigate tables
`Enter` | Open table in Data Grid
`e` | Open SQL Editor
`r` | Open ERD graph (selected table)
`/` | Filter tables by name
`q` | Disconnect

🕸 ERD Graph View

`j` `k` or `Tab` | Cycle between table boxes
`Enter` | Re-center on selected box
`q` `Esc` | Back to table list

📊 Data Grid

`j` `k` | Next / previous row
`h` `l` | Previous / next column
`g` `G` | First / last row
`PgDn` `PgUp` | ±10 rows
`s` | Sort column: ASC → DESC → off
`A` | Load all rows (replaces pages)
`f` | Filter selected column
`d` | Remove filter on selected column
`F` | Clear all filters
`-` `=` | Shrink / grow column width (step 5)
`Space` | Collapse / expand selected column
`Enter` | Edit record — or drill into FK / nested
`a` | Insert document (MongoDB)
`D` | Delete document (MongoDB)
`E` | Export prompt
`c` | CSV
`j` | JSON simple
`J` | JSON + recursive FK resolution
`Esc` | Cancel export
`q` `Esc` | Back to table list

🔍 Full-Text Search (Ctrl+F)

`Ctrl+F` | Open search prompt
type | Search all loaded cells (real-time)
`↓` `↑` | Next / previous match (prompt open)
`Enter` | Keep highlights — close prompt
`n` `N` | Next / previous match (prompt closed)
`Esc` | Clear search and highlights

✏️ SQL Editor

`F5` or `Ctrl+Enter` | Execute query
`F4` | Open SELECT result in Data Grid
`Tab` | Autocomplete popup (tables, columns, keywords)
`↑` `↓` `Tab` | Navigate suggestions
`Enter` | Insert suggestion
`Esc` | Close popup
`Alt+↑` | Previous query from history
`Alt+↓` | Next query from history
`Tab` | Switch focus editor ↔ results
`Ctrl+Q` | Back to table list

📝 Edit Record

`j` `k` | Next / previous field
`Enter` | Edit field — or drill into `[obj]` / `[arr]`
`i` | Edit `[obj]` as raw JSON string
`Space` | Toggle boolean field
`←` `→` | Move cursor within field
`Home` `End` | Jump to start / end of field
`Backspace` `Del` | Delete character
`Ctrl+S` | Save — confirmation modal before UPDATE
`Esc` `q` | Cancel — or confirm nested edit & go up

🗂 Array Editor (MongoDB arr fields)

`a` | Add item at end (enters edit mode)
`D` | Delete selected item
`Enter` | Edit item — or drill into nested
`Esc` | Confirm array & go back to parent

💡 Tips

Read-only mode | Append `?readonly=true` to URL
Credentials | Stored in OS keychain — `__keyring__` in config
Pre/post hooks | Shell scripts per profile (SSH tunnels, VPN…)
Config file | `~/.config/rowdy/config.toml`
History | `~/.config/rowdy/history.toml` (200 entries)
Search all rows | Press `A` (load all) before `Ctrl+F`