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
History · the last houras of 10:12mergedheld for youdeletes 657 · rule says 0Chronos DBPostgres on the wireWorlds open122 µs each, at any size

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 other one

Chronos Gateway

Agents in your product, on the Postgres you keep.

See Chronos Gateway
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.

psql
-- 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

tableidchangeafter
leads1042updatestatus = stale
leads1077updatestatus = stale
leads2210delete·

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 = 500

Reviews, 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 <-> $1

Made 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 mydb

Speaks Postgres

psql, Prisma, Drizzle, psycopg: your code doesn’t change.

psql postgres://127.0.0.1:5433/main

Run 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 | sh

Hosted · soon

Chronos Cloud

The same database, run by us. A connection string in a minute, nothing to install.

Tell me when these open

One email when it opens. Nothing else.

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

Let your agents write.

Chronos DB · Chronos