kackerx / sqlmux
git clone https://github.com/kackerx/sqlmux.git
v0.6.0 · 1d ago
A tmux-style terminal database client with Vim keybindings for PostgreSQL, MySQL, Redis, and more.
—
stars, 24h
—
stars, 7 days
+121
stars, 30 days · #1,928
121
★ total
7
forks · 1 open issues
Star history starts 2026-10-20; the chart appears after the second daily snapshot.
LanguageGo
LicenseMIT
Created2026-09-29 (21d ago)
Last pushtoday
Watchers0
OwnerUser
GitHub topics
Links
- GitHub: github.com/kackerx/sqlmux
- Releases · Issues · Hacker News mentions
README excerpt
**If you live in tmux and vim, your database client should too.** Made for people like you, by one of you. Watch the 68-second tour (MP4): a SQLite table, the palette and quick SQL, split panes and sessions, Redis keys and the console. ## Install [code] | | | |---|---| | Homebrew (macOS, Linux) | `brew install kackerx/tap/sqlmux` | | npm (no Go needed) | `npm install -g sqlmux`, or `npx sqlmux` to try it | | Go 1.26+ | `go install github.com/kackerx/sqlmux/cmd/sqlmux@latest` | | Binaries | macOS and Linux, amd64 and arm64, on the Releases page, with `checksums.txt` | The icons come from a Nerd Font. Without one they show up as boxes: put `icons = "ascii"` in `~/.config/sqlmux/config.toml`. Then open something: [code] The quickstart goes from here to editing your first row. ## Features - **tmux inside.** Sessions, windows, split panes and tabs, with `SPC` as the leader (`SPC %` splits, `SPC c` opens a window, `SPC s` lists sessions). Each session sees all your connections. The layout you quit from comes back next time, and you can save named layouts. - **Edit tables in place.** Change cells, add and delete rows, then `C-s` saves everything in one transaction. Enum, boolean and time columns get pickers; long text and JSON open in a value editor. - **Table tabs.** A WHERE input with completion, history and favorites; multi-column ORDER, LIMIT, paging, a column picker, transpose, filter by a cell's value, export to CSV or JSON. - **A vim editor for SQL**, diff-tested against nvim: operators and text objects, VISUAL and block selection, registers, search, `:s`, formatting with `gq`. Results go to a bottom pane, one tab per query, which you can pin. - **Completion and signature hints.** Tables, columns, keywords and functions as you type, with fuzzy matching; enum values where a value goes; a line above the cursor that says which column the value you are typing is for. - **Command palette** (`C-p`) for every command, table, tab, window and session, with a DDL preview. **Quick SQL** (`;`) runs a one-off statement from anywhere. - **JSON view** (`gj`) of a table page or a result, read-only with vim movement and search. - **Redis**: a tree of databases, namespaces and keys read with `SCAN`; each key (string, hash, list, set, zset, stream, RedisJSON) as an editable table; a console with completion and signatures from the server's `COMMAND DOCS`. See Redis. - **Every key can be rebound**, per pane type, plus vim-style maps (`J = "5j"`). `vim = false` gives plain editors and arrow keys. - Passwords from the OS keychain, a command (`pass`, `op`, …) or an environment variable; SSH tunnels through `~/.ssh/config`; read-only connections; manual transactions; themes; Nerd Font or ASCII icons; English or Chinese UI. ## Safety sqlmux edits live databases, so it has guards against mistakes. They are not a permission boundary: for production data, connect with a read-only database account. - **Read-only connections** (`read_only = true`) are enforced twice. sqlmu