A terminal database workbench for PostgreSQL and MySQL, written in Rust.
Rust
1
425 commits
updated Sep 24, 2026
Dexo is a keyboard-driven workbench for PostgreSQL and MySQL. It ships as a terminal UI, a command-line interface, and a local MCP server, all built on the same application layer. Everything it stores stays on your machine: workspace state lives in a local SQLite database, passwords live in the operating system's keychain, and the only request Dexo makes on its own is a once-a-day check for a newer release.
![]() Table data. Open a table from the tree; the grid pages on demand and the console logs each fetch. | ![]() Record detail. Enter on a row shows every field, with copy, filter, and refresh actions. |
![]() Node actions. a on any tree node lists what it supports, with each shortcut. | ![]() Command palette. Ctrl+P reaches every command, grouped by area. |
![]() Connections. TLS, SSH, and proxy settings sit under advanced options. | ![]() Keybindings. F1 lists the active keymap for each pane. |
![]() Light theme. The same workbench in light mode with the violet accent. | ![]() Settings. Theme, accent, keymap (Default, Vim, Emacs), mouse, animation, and Unicode. |
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
From source (Rust 1.93 or later)
cargo install --locked --git https://github.com/kingdaswinx/Dexo dexo
Every release also ships archives for each platform, SHA-256 checksums, and a CycloneDX SBOM. See the install guide for details.
Start the workbench:
dexo
Add a connection from the sidebar with n, or from the command line. Passwords are stored in the operating system's keychain, never in the local database.
dexo connections add --name local --driver postgres --host 127.0.0.1 --username postgres --database postgres
dexo query --connection local --sql "select version()" --non-interactive
| Key | Action |
|---|---|
| Ctrl+P | Command palette |
| Ctrl+Enter | Run the statement under the cursor |
| Ctrl+N / Ctrl+W | New / close document |
| Ctrl+S / Ctrl+O | Save / open a SQL file |
| Ctrl+R | Refresh the table in the grid |
| Alt+1 2 3 0 | Focus sidebar, editor, results, tabs |
| F1 | Keybindings reference |
| Ctrl+Q | Quit |
The Vim and Emacs keymaps are available under Settings.
Running dexo without a subcommand starts the TUI. Subcommands share the same application layer.
dexo connections list
dexo query --connection local --sql "select 1" --format jsonl --non-interactive
dexo schema snapshot --connection local --name before
dexo schema diff --from before --to after
dexo doctor --json
Also available: run, inspect, export, import, explain, sessions, config, mcp, and completion. With --non-interactive, Dexo never prompts, and destructive actions require an explicit confirmation flag.
Dexo is an MCP server only, over stdio; it opens no network listener.
dexo mcp config print --profile assistant
dexo mcp serve --profile assistant
Profiles start disabled and read-only. Write tools require a temporary grant created from the TUI or the CLI. The MCP process cannot create grants, list objects outside its allowlist, or write secrets to stdout. Audit logs stay local and sanitized.
| Database | Tested versions |
|---|---|
| PostgreSQL | 14.18, 16.9, 17.5 |
| MySQL | 8.0.42, 8.4.5, 9.3.0 |
Other server versions may work, but Dexo reports them as unverified. MySQL 5.7 is end-of-life. MariaDB and other PostgreSQL derivatives are not supported until they have a dedicated driver and test matrix.
Dexo is tested on Linux, macOS, and Windows in CI. Each driver runs its integration suite against the database versions above.
User-Agent. Turn it off under Settings → Updates, or with DEXO_NO_UPDATE_CHECK=1.Please report vulnerabilities privately as described in SECURITY.md.
The TUI, CLI, and MCP server are adapters over dexo-app. Drivers implement shared contracts and are registered only in the dexo binary; there is no plugin ABI.
| Crate | Role |
|---|---|
dexo | Binary and official driver registry |
dexo-app | Use cases |
dexo-tui, dexo-cli, dexo-mcp | Adapters |
dexo-driver-postgres, dexo-driver-mysql | Official drivers |
dexo-sql, dexo-storage, dexo-secrets, dexo-transport | Shared engines |
Local state is a single SQLite database with versioned migrations.
Dexo is dual-licensed under the MIT License or the Apache License 2.0, at your option.
425 commits
Rust
99.7%
A terminal database workbench for PostgreSQL and MySQL, written in Rust.
Rust
1
425 commits
updated Sep 24, 2026
Dexo is a keyboard-driven workbench for PostgreSQL and MySQL. It ships as a terminal UI, a command-line interface, and a local MCP server, all built on the same application layer. Everything it stores stays on your machine: workspace state lives in a local SQLite database, passwords live in the operating system's keychain, and the only request Dexo makes on its own is a once-a-day check for a newer release.
![]() Table data. Open a table from the tree; the grid pages on demand and the console logs each fetch. | ![]() Record detail. Enter on a row shows every field, with copy, filter, and refresh actions. |
![]() Node actions. a on any tree node lists what it supports, with each shortcut. | ![]() Command palette. Ctrl+P reaches every command, grouped by area. |
![]() Connections. TLS, SSH, and proxy settings sit under advanced options. | ![]() Keybindings. F1 lists the active keymap for each pane. |
![]() Light theme. The same workbench in light mode with the violet accent. | ![]() Settings. Theme, accent, keymap (Default, Vim, Emacs), mouse, animation, and Unicode. |
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
From source (Rust 1.93 or later)
cargo install --locked --git https://github.com/kingdaswinx/Dexo dexo
Every release also ships archives for each platform, SHA-256 checksums, and a CycloneDX SBOM. See the install guide for details.
Start the workbench:
dexo
Add a connection from the sidebar with n, or from the command line. Passwords are stored in the operating system's keychain, never in the local database.
dexo connections add --name local --driver postgres --host 127.0.0.1 --username postgres --database postgres
dexo query --connection local --sql "select version()" --non-interactive
| Key | Action |
|---|---|
| Ctrl+P | Command palette |
| Ctrl+Enter | Run the statement under the cursor |
| Ctrl+N / Ctrl+W | New / close document |
| Ctrl+S / Ctrl+O | Save / open a SQL file |
| Ctrl+R | Refresh the table in the grid |
| Alt+1 2 3 0 | Focus sidebar, editor, results, tabs |
| F1 | Keybindings reference |
| Ctrl+Q | Quit |
The Vim and Emacs keymaps are available under Settings.
Running dexo without a subcommand starts the TUI. Subcommands share the same application layer.
dexo connections list
dexo query --connection local --sql "select 1" --format jsonl --non-interactive
dexo schema snapshot --connection local --name before
dexo schema diff --from before --to after
dexo doctor --json
Also available: run, inspect, export, import, explain, sessions, config, mcp, and completion. With --non-interactive, Dexo never prompts, and destructive actions require an explicit confirmation flag.
Dexo is an MCP server only, over stdio; it opens no network listener.
dexo mcp config print --profile assistant
dexo mcp serve --profile assistant
Profiles start disabled and read-only. Write tools require a temporary grant created from the TUI or the CLI. The MCP process cannot create grants, list objects outside its allowlist, or write secrets to stdout. Audit logs stay local and sanitized.
| Database | Tested versions |
|---|---|
| PostgreSQL | 14.18, 16.9, 17.5 |
| MySQL | 8.0.42, 8.4.5, 9.3.0 |
Other server versions may work, but Dexo reports them as unverified. MySQL 5.7 is end-of-life. MariaDB and other PostgreSQL derivatives are not supported until they have a dedicated driver and test matrix.
Dexo is tested on Linux, macOS, and Windows in CI. Each driver runs its integration suite against the database versions above.
User-Agent. Turn it off under Settings → Updates, or with DEXO_NO_UPDATE_CHECK=1.Please report vulnerabilities privately as described in SECURITY.md.
The TUI, CLI, and MCP server are adapters over dexo-app. Drivers implement shared contracts and are registered only in the dexo binary; there is no plugin ABI.
| Crate | Role |
|---|---|
dexo | Binary and official driver registry |
dexo-app | Use cases |
dexo-tui, dexo-cli, dexo-mcp | Adapters |
dexo-driver-postgres, dexo-driver-mysql | Official drivers |
dexo-sql, dexo-storage, dexo-secrets, dexo-transport | Shared engines |
Local state is a single SQLite database with versioned migrations.
Dexo is dual-licensed under the MIT License or the Apache License 2.0, at your option.
425 commits
Rust
99.7%