KingDasWinx/Dexo

A terminal database workbench for PostgreSQL and MySQL, written in Rust.

Rust

1

425 commits

updated Sep 24, 2026

See the code

See what people are saying

SourceMessageScoreDate

Dexo: a Postgres and MySQL client that lives in your terminal (r/rust)

I've been working on Dexo, a database client for PostgreSQL and MySQL that runs in your terminal. You connect, browse your tables, write queries with autocomplete that understands what you're typing, and work with the results in a grid you can edit. Everything is keyboard-driven, and nothing leaves…

1

Sep 24, 2026

README

Dexo

Dexo

A local-first database workbench for the terminal.

Release MSRV 1.93 CI MIT OR Apache-2.0

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.

Dexo's animated entrance

The Dexo workbench: catalog tree, SQL editor with syntax highlighting, and a results grid

Features

  • Workbench — catalog explorer, SQL editor, results grid, inspector, and a command palette. Every document belongs to a connection, keeps its own results, and reconnects when you return to it. Layouts persist per project.
  • Drivers — official PostgreSQL and MySQL drivers compiled into the binary, with TLS, SSH tunnels, and SOCKS5/HTTP proxies.
  • Query execution — run a statement, a selection, or a whole script, with streamed pages, cancellation, and explicit transactions.
  • Data and schema — lazily loaded catalog, editable grids with a review step before any write, object forms, DDL preview, and schema diff across live databases, saved snapshots, and files.
  • Data transfer — streaming import and export, plus native backup and restore that never overwrite the source.
  • Command line — query, inspect, diff, export, import, explain, and diagnose without opening the TUI.
  • MCP server — stdio only. Profiles start disabled and read-only; write tools appear only while a temporary grant is active.
  • Local-first — no telemetry, crash recovery for unsaved work, and diagnostics that are generated only on request and previewed before they are written.

Screenshots

Browsing a table
Table data. Open a table from the tree; the grid pages on demand and the console logs each fetch.
Record detail
Record detail. Enter on a row shows every field, with copy, filter, and refresh actions.
Connection actions
Node actions. a on any tree node lists what it supports, with each shortcut.
Command palette
Command palette. Ctrl+P reaches every command, grouped by area.
Add connection form
Connections. TLS, SSH, and proxy settings sit under advanced options.
Keybindings reference
Keybindings. F1 lists the active keymap for each pane.
Light theme
Light theme. The same workbench in light mode with the violet accent.
Settings
Settings. Theme, accent, keymap (Default, Vim, Emacs), mouse, animation, and Unicode.

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

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.

Getting started

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
KeyAction
Ctrl+PCommand palette
Ctrl+EnterRun the statement under the cursor
Ctrl+N / Ctrl+WNew / close document
Ctrl+S / Ctrl+OSave / open a SQL file
Ctrl+RRefresh the table in the grid
Alt+1 2 3 0Focus sidebar, editor, results, tabs
F1Keybindings reference
Ctrl+QQuit

The Vim and Emacs keymaps are available under Settings.

Command line

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.

MCP server

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.

Compatibility

DatabaseTested versions
PostgreSQL14.18, 16.9, 17.5
MySQL8.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.

Security and privacy

  • Secrets are stored in the platform keychain and referenced only by an opaque identifier.
  • TLS verifies certificates by default; disabling verification is an explicit, visible setting.
  • SSH tunnels check known hosts, and a changed host key requires confirmation.
  • There is no telemetry. Diagnostics are generated only on request, previewed, and written locally.
  • Once a day, Dexo asks GitHub which release is the latest, to tell you when an update is out. The request carries only the running version in its User-Agent. Turn it off under Settings → Updates, or with DEXO_NO_UPDATE_CHECK=1.

Please report vulnerabilities privately as described in SECURITY.md.

Architecture

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.

CrateRole
dexoBinary and official driver registry
dexo-appUse cases
dexo-tui, dexo-cli, dexo-mcpAdapters
dexo-driver-postgres, dexo-driver-mysqlOfficial drivers
dexo-sql, dexo-storage, dexo-secrets, dexo-transportShared engines

Local state is a single SQLite database with versioned migrations.

Documentation

License

Dexo is dual-licensed under the MIT License or the Apache License 2.0, at your option.

arch
archlinux
cli
database
database-client
developer-tools
keyboard-driven
local-first
macos
mysql
postgres
postgresql
ratatui
rust
sql
sql-editor
terminal
tui
windows

Contributors

KingDasWinx

425 commits

KingDasWinx/Dexo

A terminal database workbench for PostgreSQL and MySQL, written in Rust.

Rust

1

425 commits

updated Sep 24, 2026

See the code

See what people are saying

SourceMessageScoreDate

Dexo: a Postgres and MySQL client that lives in your terminal (r/rust)

I've been working on Dexo, a database client for PostgreSQL and MySQL that runs in your terminal. You connect, browse your tables, write queries with autocomplete that understands what you're typing, and work with the results in a grid you can edit. Everything is keyboard-driven, and nothing leaves…

1

Sep 24, 2026

README

Dexo

Dexo

A local-first database workbench for the terminal.

Release MSRV 1.93 CI MIT OR Apache-2.0

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.

Dexo's animated entrance

The Dexo workbench: catalog tree, SQL editor with syntax highlighting, and a results grid

Features

  • Workbench — catalog explorer, SQL editor, results grid, inspector, and a command palette. Every document belongs to a connection, keeps its own results, and reconnects when you return to it. Layouts persist per project.
  • Drivers — official PostgreSQL and MySQL drivers compiled into the binary, with TLS, SSH tunnels, and SOCKS5/HTTP proxies.
  • Query execution — run a statement, a selection, or a whole script, with streamed pages, cancellation, and explicit transactions.
  • Data and schema — lazily loaded catalog, editable grids with a review step before any write, object forms, DDL preview, and schema diff across live databases, saved snapshots, and files.
  • Data transfer — streaming import and export, plus native backup and restore that never overwrite the source.
  • Command line — query, inspect, diff, export, import, explain, and diagnose without opening the TUI.
  • MCP server — stdio only. Profiles start disabled and read-only; write tools appear only while a temporary grant is active.
  • Local-first — no telemetry, crash recovery for unsaved work, and diagnostics that are generated only on request and previewed before they are written.

Screenshots

Browsing a table
Table data. Open a table from the tree; the grid pages on demand and the console logs each fetch.
Record detail
Record detail. Enter on a row shows every field, with copy, filter, and refresh actions.
Connection actions
Node actions. a on any tree node lists what it supports, with each shortcut.
Command palette
Command palette. Ctrl+P reaches every command, grouped by area.
Add connection form
Connections. TLS, SSH, and proxy settings sit under advanced options.
Keybindings reference
Keybindings. F1 lists the active keymap for each pane.
Light theme
Light theme. The same workbench in light mode with the violet accent.
Settings
Settings. Theme, accent, keymap (Default, Vim, Emacs), mouse, animation, and Unicode.

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

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.

Getting started

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
KeyAction
Ctrl+PCommand palette
Ctrl+EnterRun the statement under the cursor
Ctrl+N / Ctrl+WNew / close document
Ctrl+S / Ctrl+OSave / open a SQL file
Ctrl+RRefresh the table in the grid
Alt+1 2 3 0Focus sidebar, editor, results, tabs
F1Keybindings reference
Ctrl+QQuit

The Vim and Emacs keymaps are available under Settings.

Command line

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.

MCP server

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.

Compatibility

DatabaseTested versions
PostgreSQL14.18, 16.9, 17.5
MySQL8.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.

Security and privacy

  • Secrets are stored in the platform keychain and referenced only by an opaque identifier.
  • TLS verifies certificates by default; disabling verification is an explicit, visible setting.
  • SSH tunnels check known hosts, and a changed host key requires confirmation.
  • There is no telemetry. Diagnostics are generated only on request, previewed, and written locally.
  • Once a day, Dexo asks GitHub which release is the latest, to tell you when an update is out. The request carries only the running version in its User-Agent. Turn it off under Settings → Updates, or with DEXO_NO_UPDATE_CHECK=1.

Please report vulnerabilities privately as described in SECURITY.md.

Architecture

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.

CrateRole
dexoBinary and official driver registry
dexo-appUse cases
dexo-tui, dexo-cli, dexo-mcpAdapters
dexo-driver-postgres, dexo-driver-mysqlOfficial drivers
dexo-sql, dexo-storage, dexo-secrets, dexo-transportShared engines

Local state is a single SQLite database with versioned migrations.

Documentation

License

Dexo is dual-licensed under the MIT License or the Apache License 2.0, at your option.

arch
archlinux
cli
database
database-client
developer-tools
keyboard-driven
local-first
macos
mysql
postgres
postgresql
ratatui
rust
sql
sql-editor
terminal
tui
windows

Contributors

KingDasWinx

425 commits

Languages

Rust

99.7%