IN DEVELOPMENT — WAITLIST OPEN
Your agent ran DELETE. Undo it.
Undoable sits between your AI agent and your Postgres database. It records every statement, saves the rows before destructive changes, and holds the risky ones until you approve. Let your agents touch production without fear.
Postgres 14+ · Supabase · Neon · RDS · works with any driver
SCROLL ▸ watch the proxy ▾
ONE CONNECTION STRING. EVERY STATEMENT ACCOUNTED FOR.
Your agent connects to Undoable instead of your database. Your app keeps its own connection, untouched.
CLAUDE CODE
CURSOR
REPLIT AGENT
YOUR AGENT
UNDOABLE
POSTGRES PROXY
YOUR POSTGRES
SNAPSHOTS
APPROVALS
AUDIT TRAIL
WHY UNDOABLE EXISTS
Giving an agent production access shouldn't be a leap of faith.
WITHOUT UNDOABLE
- The agent runs whatever it decides
- You find out from an angry customer
- Restore last night's backup, lose today
- No record of what the agent actually ran
- Hope it doesn't happen again
WITH UNDOABLE
- Risky statements wait for your approval
- Rows are saved before they change
- Undo one statement or a whole session
- A timeline of everything the agent did
- A runaway agent pauses itself
- 1 click
- TO REWIND A SESSION
- 6
- STATEMENT CLASSES
- 0 rows
- SNAPSHOTTED FOR READS
WHAT IT DOES
Five layers between your agent and disaster.
Every statement is read with Postgres' own parser, not pattern matching. Anything it can't fully understand is treated as risky.
BEFORE IT RUNS
Hold for approval
Statements that match a hold rule pause the agent's connection and ask you. Approve and it runs with a snapshot; reject and the agent gets a clear error it can understand.
WHAT YOU GET
- DELETE / UPDATE without a WHERE
- TRUNCATE and DROP TABLE
- Anything on *auth*, *billing*, *payment*
- Tables without a primary key
- SQL Undoable can't fully understand
- One-tap approve from your phone
HOW YOU SET IT UP
Protected in five minutes. No code changes.
STEP 1
Connect your database
Paste a connection string, or connect Supabase or Neon in one click. Credentials are encrypted with a key per project.
STEP 2
Create an agent
Each agent gets its own credential, so the timeline always shows who did what.
STEP 3
Swap the agent's URL
Give the agent AGENT_DATABASE_URL. Your app keeps DATABASE_URL, untouched.
STEP 4
Let it work
Reads pass straight through. Changes are snapshotted; risky ones wait for you.
ANYTIME
Undo
Open the timeline, preview the undo, click once.
# .env.local
DATABASE_URL=postgres://app:…@db.example.com/shop # your app, unchanged
AGENT_DATABASE_URL=postgres://agent_claude:…@proxy.undoable.cloud/shopWHAT WE CAN'T UNDO
Honest about the edges.
Undoable restores data inside your database. It can't reach outside it, and we'd rather tell you now than after an incident.
Emails, webhooks, API calls
Anything your app or a trigger already sent to the outside world.
Tables without a primary key
Rows can't be matched back safely, so changes to them are held for you.
Sequence values
IDs already handed out stay used.
Connections that skip Undoable
Only traffic through the proxy is recorded.
COMMUNITY TOKEN
$UNDO is live on Robinhood Chain.
CONTRACT ADDRESS
0x2df1e020c5b6c28ad240a312fa5fd7465ec23e22This is the only official address. Anything else in replies or DMs is not us.
$UNDO is a community token. It is not equity in Undoable, carries no promise of returns, and the Undoable product is still in development. Crypto is risky. Nothing here is financial advice — do your own research.
EARLY ACCESS
Give your agents an undo button.
We're building Undoable now. Leave your email and we'll invite you when the private beta opens.