db9s-2026.10.1 is not a library.

Installation
Or grab a prebuilt binary (Linux, macOS, Windows) from the releases page.
Supported databases
| Database | Status |
|---|---|
| PostgreSQL | 🟢 Supported |
| MongoDB | 🟢 Supported |
| RabbitMQ | 🟢 Supported |
| MySQL / MariaDB | 🔴 Planned |
| SQLite | 🔴 Planned |
| Redis | 🔴 Planned |
| Microsoft SQL Server | 🔴 Planned |
| ClickHouse | 🔴 Planned |
| Cassandra / ScyllaDB | 🔴 Planned |
Every backend gets the same screens and keys. Want one sooner? See CONTRIBUTING.md.
Quick Start
Or just run db9s and add connections from the TUI (a). They are saved to
~/.config/db9s/config.toml (Linux) / ~/Library/Application Support/db9s/config.toml (macOS):
[[]]
= "local pg"
= "postgres"
= "postgres://user:pass@localhost/db"
[[]]
= "local mongo"
= "mongo"
= "mongodb://localhost:27017"
[[]]
= "local rabbit"
= "rabbitmq"
= "http://guest:guest@localhost:15672"
= "nvim" # optional, for `E` — defaults to $EDITOR, then vi
Usage
| Key | Action |
|---|---|
j/k / arrows |
move (highlighting a table/collection previews its rows) |
enter / tab |
open, switch between containers and rows pane |
esc / q |
back a level (q quits from connections) |
/ |
raw query: SQL for Postgres, JSON filter or [$match, ...] pipeline for Mongo |
e |
edit the selected row/document inline, field by field (ctrl+s save) |
E |
edit the selected row/document in $EDITOR, confirm the diff to save |
d |
delete the selected row/document |
n / p |
next / previous page |
r |
refresh |
a / e / d / s |
connections screen: add / edit / delete a connection, settings |
The footer always shows the keys available where you are.

RabbitMQ
Same screens: databases are vhosts, containers are queues, rows are messages. Two ways to connect, picked from the URL scheme:
| URL | Uses | Lists |
|---|---|---|
http(s)://user:pass@host:15672 |
management API (plugin rabbitmq_management) |
every vhost and queue |
amqp(s)://user:pass@host:5672/<vhost>?queues=a,b |
plain AMQP (lapin), no plugin needed | the vhost in the URL, the queues in queues= (AMQP can't list them) |
- Messages are peeked, not consumed: they stay in the queue, but RabbitMQ marks them as redelivered.
/publishes a message to the queue,dpurges the whole queue (a single message can't be removed),e/Eare disabled: messages are read-only.

Notes
- Row edit/delete on Postgres needs a primary key column named
id. - Color palette ported from mongotui.
Contributing
See CONTRIBUTING.md: local Postgres, Mongo and RabbitMQ with seed data, conformance tests for every backend, and how releases work.
License
MIT