About Ghost — Postgres built for agents
Your Postgres wasn't built for agents.
Agents don't log in and out. They don't share state. They experiment, they fail, they die. They need a database that works the same way.
curl -fsSL https://install.ghost.build | sh
Weekly digest
curl -fsSL https://install.ghost.build | sh
Subscribe to the weekly digest →
Send
Unlimited databases·Unlimited forks·100 hrs/mo free·1TB storage free
- Agents are not humans.They don't log in at 9 and out at 5. They don't have shifts. They don't sleep.
- They run in bursts.A few seconds. A few minutes. Then they're done. The next one has nothing to do with them.
- They don't share state.Or if they do, it's a bug you haven't found yet. Real isolation is cheaper than finding the bug.
- They experiment.Fork an idea, try both, keep one, discard the rest. Your database should let them.
- They fail.Often, loudly, in ways that shouldn't touch anyone else. Blast radius should be one agent, one database.
- Postgres was not built for any of this.So we built one that was. Same SQL. Same tooling. Different lifecycle.
the whole api
Create, fork, delete.
Everything else is standard Postgres.
CREATE
$ ghost create --name scratch
scratch.ghost.build postgresql://ghost:•••@scratch.ghost.build/postgres
FORK
$ ghost fork scratch --name test-a
test-a.ghost.build copy-on-write from 'scratch'
DELETE
$ ghost delete scratch --confirm
deleted. billing stopped.
from ajay
We built Ghost because nobody else was going to.
Every agent team we talked to had built the same workaround: a pool of "scratch" postgres instances, a cron job to reset them, a naming convention nobody followed, and a bug where the cleanup job occasionally nuked a customer's db.
We'd built versions of it ourselves. Twice.
The real problem wasn't the cleanup script. The real problem was that Postgres assumes a long-lived, shared, carefully-provisioned model that agents have nothing in common with. Agents are ephemeral. Agents are isolated. Agents are disposable. Treating them like 2015-era microservices was never going to work.
So we built a Postgres that assumes the opposite. You create one in under a second. Fork it. Discard it. Spin up ten thousand of them and pay for the seconds they ran. No cleanup scripts, because there's nothing to clean up.
If you've been writing those workarounds, this is the tool we wish we'd had.
ajay kulkarni
early builders
People using it already.
Ghost shipped to a handful of teams before the public launch. Here's what they did with it.
"We had three agents fighting for one staging database. Now each one gets its own, spun up in the time it takes the first tool call to return. The whole category of 'agent stepped on another agent's work' just disappeared."
engineer·ai research platform
"I stopped writing cleanup scripts. That alone paid for it."
founder·devtools startup
"We fork main before every migration. If it works on the fork, we swap. If it doesn't, we delete the fork. We haven't had a migration roll back in production since we moved to Ghost."
staff engineer·fintech platform
"Databases used to be expensive enough that you reused them for everything. Now I create one for a single afternoon of work and throw it away at the end. It feels wasteful. It's not."
eng lead·agent infra team
the product
Shipped, and shipping next.
Ghost is not finished. A short list of what's landed and what's in flight.
shipped
MCP server
First-class tool surface for Claude Code, Cursor, Windsurf, Codex, Gemini CLI, VS Code, and more. One command to install: ghost mcp install.
shipped
Schema introspection
ghost schema displays your database structure in a format optimized for agents. Tables, views, constraints, indexes, all formatted so Claude can write accurate queries without guessing.
shipped
MCP prompts
Reusable guidance packages agents can pull on demand. Eight shipped so far, covering pgvector semantic search, hybrid text search, TimescaleDB setup, and Postgres schema design.
shipped
Read-only mode
A read_only config option prevents destructive operations like delete, pause, and sql writes. Give agents access to your databases without worrying about accidental data loss.
shipped
Drop into psql
ghost psql opens an interactive psql session connected to your database. No more copying connection strings.
shipped
Headless login
ghost login --headless uses OAuth device flow for environments without a browser. Sandboxes, VMs, containers, remote servers. Enter a code on any device and you're in.
shipping next
pgvector + pg_textsearch baked in
No extensions to install. Forks of a vector-heavy db stay consistent. Agents can search on day one.
shipping next
Scheduled deletes
Auto-delete a database after N minutes. For agents that forget to clean up after themselves.
If you've been writing the workarounds, this is the one we wish we'd had.
No cleanup scripts. No cron jobs babysitting a pool of scratch dbs. Create, fork, delete. That's the whole API.
curl -fsSL https://install.ghost.build | sh