FeatherDB is a native macOS client for PostgreSQL, MySQL and MariaDB with one MCP gateway your AI tools connect to. Live databases are read-only — enforced inside the transaction, not requested in a prompt. Sandboxes are real local clones with the personal data masked, so the agent can break something that costs nothing.
Version 1.6.1 · 68 MB · signed & notarized · 14-day trial, no account, no telemetry.
A write to a live database is refused before anything executes.
Every statement an AI sends to a live database runs inside
BEGIN READ ONLY and is rolled back afterwards. A write is not talked out of
it — Postgres refuses it, and the AI gets a message to relay to you. The capability is
decided by what kind of database it is, never by how the request was worded. And on a
sandbox, where writes are the point, every statement an AI proposes still stops at an
in-app approval — you read it, you click, then it runs.
{ "database": "production",
"sql": "DELETE FROM customers WHERE created_at < now() - interval '1 year'" }
featherdb gateway
REFUSED — `production` is a LIVE database and AI writes to live are disabled in this version of FeatherDB. Nothing was executed or changed. RELAY THIS TO YOUR USER: to change live data they can run the SQL themselves in FeatherDB's SQL editor, or clone a sandbox and iterate there first. A reviewed live-change flow (your SQL plus a mandatory rationale, in-app review and confirm, backup/rollback points, up/down migration files) is on the FeatherDB roadmap.
Staged conversation — but the refusal is the gateway's actual message, byte for byte.
A mark is a named scope — a table plus the related tables you picked — with an id you can say in any chat.
Save a selection as mark-7f3 in FeatherDB, then just say that id
to your AI: through the gateway it pulls the same DDL and PII-masked sample rows you
previewed — composed by the app and served byte-identical, with a picture of how the
tables connect. featherdb:// links open the mark straight back in the app,
and the AI can open it for you on request.
The map is not limited to declared foreign keys: schemas that never declare any — document stores, FK-less apps — get their joins inferred from naming, drawn dashed and labelled as guesses. One click confirms or corrects a guess, and your verdict is what the AI is taught from then on.
products — the link table marked, cascade deletes in red.One click proposes a local clone at your server’s exact version — created only when you approve it.
Emails, names and phone numbers are replaced before they land — fail-closed, so a column the classifier cannot vouch for is not copied at all. FeatherDB reads what your production runs — PostgreSQL 16, MySQL 8.4, MariaDB 11.4, whatever it really is — and proposes a matching Docker container on your Mac; nothing exists until you approve it, and discarding the sandbox deletes it. The AI gets full read and write there, the mask report shows exactly what happened to every column, and anything the agent breaks costs nothing. No Docker? Postgres still clones instantly with the built-in engine.
Sandbox changes worth keeping become an ordered, safety-linted plan.
Each step is graded — DANGER for the ones that rewrite a table,
WARN for the ones that lock it — and split into phases:
transactional first, CONCURRENTLY indexes outside. Dangerous plans require an
explicit confirmation, and a drift guard catches production changing underneath you.
The first four install themselves — one click, no token to copy. Everything else gets the standard MCP config to paste. One gateway serves every database you expose; the AI names which one it wants, and what it may do there is decided by the kind of database it is, not by the request.
Checkout by Polar.sh, the merchant of record — your receipt and any VAT come from them. Activation is immediate: open the app, type your purchase email, enter the 6-digit code it sends you. No key to wait for.
No. FeatherDB connects your Mac directly to your databases — rows, schemas, credentials, and query results never touch our servers. The app contacts a server in exactly three situations: buying, activating, and checking for updates, and the privacy policy lists precisely what each involves.
Your AI tools connect to one local MCP gateway. On a live database they can read, and only read — every statement runs inside a read-only transaction (on MySQL and MariaDB the whole session is locked read-only as well, because their DDL slips past a transaction alone), so a write is refused by the database server itself, not by a prompt. On a sandbox they get full read and write, because a sandbox is a disposable local clone with personal data already masked.
PostgreSQL, MySQL and MariaDB — connected directly over TLS (Supabase, Neon, RDS, PlanetScale, and other managed hosts) or through an SSH tunnel to a box you own. We run the full suite against PostgreSQL 14–18, MySQL 8.0 and 8.4, and MariaDB 10.11–11.8 before every release; versions in between normally just work.
Sandboxes run at your server's exact version, in a Docker container on your Mac: FeatherDB reads what production runs, proposes the matching container, and creates it only when you approve — it is visible in Docker Desktop, and discarding the sandbox deletes it. Without Docker, Postgres clones instantly with the built-in engine, and the diff planner flags any version drift so you review those migrations by hand.
No account. Buy, open FeatherDB, type the email from your receipt, and enter the 6-digit code it sends you. One purchase covers two Macs. If both are taken when you activate a new one, FeatherDB lists your Macs and replaces the one you pick in the same step. After activation the licence verifies offline; air-gapped Macs can paste a licence key instead.
Nothing. The version you have keeps working forever, offline. Renewing ($29/year) is optional and only buys continued updates — skip it and come back whenever a new version is worth it to you.
No — FeatherDB is a native macOS app, built for macOS 15 or later on Apple Silicon and Intel. Going deep on one platform is what keeps it fast and native-feeling.