Everything you expect from a database client, from foreign-key navigation to an interface you already know how to use. Written in Rust on GPUI, with performance nothing else comes close to.
Let the agent in without leaking your credentials.
Connect through MCP while your credentials stay safe in your system keychain.
you
customer paid order 9921 but still sees a pending payment
✻ Traced for 3.2s
mcp
MCPdatamanrun_query"paid"prod-pg
mcp
MCPdatamannosql_query"pending"cache
agent
prod-pg has order 9921 as paid, but the cache still holds "pending" under order:9921. Whatever marks the order paid is not clearing it from the cache.
you
what is the password for prod-pg?
✻ Checked for 1.8s
mcp
MCPdatamanlist_connectionspasswords are never returned
agent
I can't read it. Dataman never returns passwords; prod-pg's stays in your system keychain.
you
delete the test orders
✻ Planned for 2.4s
mcp
MCPdataman · prod-pgheld
◴ waiting for your Allow in Dataman · prod-pg is production
The same row, as the agent sees it.
Per connection, you pick what an agent is shown. Sensitive columns are masked whole by their name before any value is looked at.
Datausers · 1 row
id
8812
email
ana.ribeiro@acme.co
phone
+55 11 9912 0034
plan
pro
password_hash
hidden
Every value as the table holds it. The struck column is on the connection's not-visible list: for the agent it is not a column at all.
Masked datausers · 1 row · masked 2
id
8812
email
a••••••••••@acme.co
phone
+55 •• •••• ••34
plan
pro
password_hash
hidden
Masked values can still be selected, grouped and compared in a WHERE, as they are. They never reach a reply under another name.
Structure onlyusers · 0 rows
id
bigint
email
text
phone
text
plan
plan_t
password_hash
hidden
Names, types, keys, indexes, DDL and plans. No rows, ever. Enough to write the query you will run yourself.