brew install kingdaswinx/tap/dexo # or any install below dexo --demo # a sample shop, nothing to connect to
Dexo is a keyboard-driven workbench for PostgreSQL, MySQL, MariaDB and SQLite, with DuckDB as a plugin: a terminal UI, a command line and an MCP server for AI agents. A DELETE without WHERE on production waits for you to type the connection's name, a read-only connection is read-only on the server too, and an agent writes only with the access you give it, each write waiting for your approval. Everything stays on your machine.
Features
- Workbench: catalog tree, SQL editor with Vim mode and live diagnostics, results grid and a command palette.
- Data: insert and delete rows in the grid with a review before anything is written, filter and sort, import, export, backup and restore.
- Schema: object forms with a DDL preview, and schema diff between databases, snapshots and files.
- Query plans: EXPLAIN drawn as a tree; on Postgres with hypopg, try an index before building it.
- Connections: TLS, SSH tunnels, proxies, password managers, and databases found in Docker.
- AI agents: an MCP server with read-only profiles, allowlists, timed write access per connection and approval for each write.
- Command line: query, export, import, explain and diff from scripts, with the same guardrails.
- Local-first: no telemetry; passwords stay in the operating system's keychain or your password manager.
Screenshots

Browse a table: the grid pages on demand.

Enter on a row shows every field.

a on a tree node lists what it can do.

TLS, SSH and proxies under advanced options.

The light theme, with the violet accent.

Theme, accent, keymap and more, applied at once.
Installation
Homebrew (macOS, Linux)
brew install kingdaswinx/tap/dexo
Scoop (Windows)
scoop bucket add dexo https://github.com/KingDasWinx/scoop-bucket scoop install dexo
Windows installer or portable — from the latest release, dexo-x86_64-pc-windows-msvc.msi installs Dexo under Program Files and adds it to PATH; dexo-x86_64-pc-windows-msvc.exe runs as is, without installing. Both are unsigned, so Windows SmartScreen may ask for confirmation.
Installer scripts
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/kingdaswinx/Dexo/releases/latest/download/dexo-installer.sh | sh
irm https://github.com/kingdaswinx/Dexo/releases/latest/download/dexo-installer.ps1 | iex
Debian, Ubuntu, Fedora — download the .deb or .rpm from the latest release (requires glibc 2.35 or later):
sudo apt install ./dexo_*_amd64.deb sudo dnf install ./dexo-*.x86_64.rpm
Arch Linux — the community-maintained dexo-bin package in the AUR:
yay -S dexo-bin # or paru -S dexo-binFrom source (Rust 1.93 or later)
cargo install --locked --git https://github.com/kingdaswinx/Dexo dexo
Plugins
DuckDB and extra themes are plugins: open Plugins with Ctrl+G p, or run dexo plugin install duckdb. Plugins come from an index signed by the maintainer, and every download is checked against it. See Plugins.
Every release also ships archives for each platform, SHA-256 checksums, and a CycloneDX SBOM. See the install guide for details.
Getting started
dexo # start the workbench dexo postgres://user@localhost:5432/shop # open a database from its URL, without saving it dexo connections add --name local --driver postgres --host 127.0.0.1 --username postgres --database postgres dexo query --connection local --sql "select version()"
| Key | Action |
|---|---|
| Ctrl+P | Command palette |
| Ctrl+Enter or Ctrl+J | Run the statement under the cursor (Ctrl+J wherever the terminal sends Ctrl+Enter as Enter, as tmux does) |
| F1 | Every key, for the keymap in use (Default, Vim or Emacs) |
| Ctrl+Q | Quit |
AI agents
dexo mcp profile create --name assistant dexo mcp profile set --name assistant --connection local --query-mode raw-read dexo mcp allow --profile assistant --selector 'postgres.public.*' dexo mcp profile enable --name assistant --confirm dexo mcp setup --client claude-code --profile assistant # or codex, cursor, claude-desktop, gemini-cli, windsurf, vscode
The agent reads only what the profile allows. To let it write, give it write access to a connection for a while (w on Agents' Profiles, or dexo mcp grant create); each write then waits for your approval on the Agents screen (Ctrl+G a), unless you let inserts, say, run without asking. See the MCP guide.
Compatibility
| Database | Tested versions |
|---|---|
| PostgreSQL | 14.18, 16.9, 17.5 |
| MySQL | 8.0.42, 8.4.5, 9.3.0 |
| MariaDB | 10.11, 11.4 |
| SQLite | 3.53.2, built in |
| DuckDB | 1.5.6, as a plugin (dexo plugin install duckdb) |
Linux, macOS and Windows.
Privacy
No telemetry. Passwords live in the operating system's keychain or come from your password manager, never from Dexo's files. Once a day Dexo asks GitHub for the latest release, to tell you about updates; turn it off under Settings → Updates or with DEXO_NO_UPDATE_CHECK=1. Report vulnerabilities as described in SECURITY.md.
Documentation
User guide · Changelog · Contributing · Bug report form
License
MIT or Apache 2.0, at your option.

