Self-hostChronos DB · public beta
A world for every agent.
Chronos DB is the database your agents work in. Each one gets an instant copy of the whole database to change as it likes; what it changes reaches main only when it keeps your rules, or when you say yes.
- 2 µs
- to fork a world, at any size
- 1 hour
- of history to read and undo
- Postgres
- on the wire, plus an MCP server
- 560+
- tests on every release
DB or Gateway
Two products. Pick by whose agents they are.
Chronos DB is where your own agents work. The gateway puts the same engine in front of the Postgres your product already runs.
You are here
Chronos DB
The database your own agents work in.
- The agents work for
- Chronos DBYour team: Claude Code, Cursor, your own scripts and jobs.
- GatewayYour customers: the AI features inside your product.
- Your data lives
- Chronos DBIn Chronos, or beside the Postgres you run (attach).
- GatewayIn your Postgres, exactly where it is now.
- Agents connect with
- Chronos DBPostgres wire or MCP, as a role with a token.
- GatewayA run token, through the gateway only. Never a Postgres credential.
- One run sees
- Chronos DBThe whole database, in a world of its own.
- GatewayOne customer’s rows: the tenant the run is for.
- What’s held waits for
- Chronos DBYou, in reviews, with the reasons.
- GatewayYour team, or the end user in a widget in your app.
- You drive it with
- Chronos DBSQL: create world, diff, merge, undo.
- GatewayAn HTTP API, Python and TypeScript clients, webhooks.
- Run it
- Chronos DBOne line, on macOS or Linux.
- GatewayA Docker image, a Linux service, or a Helm chart.
- Hosted by us
- Chronos DBChronos Cloud: soon.
- GatewayHosted Gateway: soon.
One session
Start to finish, in plain SQL.
Rules once, a world per run, a diff to read, and a merge that keeps the rules or waits.
-- once, as you: the rules an agent's merges must keepcreate merge policy agents with (max_deletes = 0, max_rows = 500);create agent bot with (can = 'read,fork,write_own,merge_own', policy = 'agents');-- as the agentcreate world run_42 with (task = 'clean up stale leads');switch world run_42;update leads set status = 'stale' where last_contact < now() - interval '1 year';delete from leads where email is null;diff world run_42; -- table, id, change, before, aftermerge world run_42 dry run; -- row by row, plus why it would be heldmerge world run_42; -- the delete breaks a rule: held-- as you: look, then approve or throw it awayshow reviews;merge world run_42; -- or: drop world run_42 (main never saw it)diff world run_42
| table | id | change | after |
|---|---|---|---|
| leads | 1042 | update | status = stale |
| leads | 1077 | update | status = stale |
| leads | 2210 | delete | · |
merge world run_42
Held for review
deletes 1 row · policy agents allows 0
after you approve
Merged into main
2 updated, 1 deleted · undo for an hour
What it does
Everything an agent needs. Nothing you have to trust.
A world for every agent
An instant copy of the whole database, at any size. Thousands cost bytes until they write.
create world run_42;Rules on every merge
Set the limits once. Merges inside them land on their own.
max_deletes = 0, max_rows = 500Reviews, with reasons
What breaks a rule waits for you, with the rule it broke and the rows it touches.
show reviews;Read the past
Any table, as it was at any minute of the last hour.
select * from orders as of '-10 minutes';Undo an agent
A merge, or everything one agent did, row by row. Rows changed since stay as they are.
undo agent bot since '-30 minutes' skip changed;Beside your Postgres
Attach to the Postgres you run. Worlds and rules on top; what keeps the rules is written back, checked.
chronos attach postgres://…Search inside every world
Filters, full text and vectors (pgvector types, HNSW) in the same query.
order by embedding <-> $1Made for agents
An MCP server with the verbs an agent needs: fork, diff, merge preview, checkpoint, rollback and more.
claude mcp add chronos -- chronos mcp mydbSpeaks Postgres
psql, Prisma, Drizzle, psycopg: your code doesn’t change.
psql postgres://127.0.0.1:5433/mainRun it
Yours to run today. Ours to run soon.
Self-hosted · available
Chronos DB on your machine
macOS 13+ or Linux. Every release signed. Source-available under BUSL-1.1.
curl -fsSL https://github.com/Abhishekxdg/chronosdb/releases/latest/download/install.sh | shHosted · soon
Chronos Cloud
The same database, run by us. A connection string in a minute, nothing to install.
BetaTry it on a staging copy first. On its own, Chronos speaks Postgres 16's protocol and passes 89% of the lines its regression suite expects; point reads run at about half Postgres's rate, writes at a fraction. Where it stands