Introduction
Mantis is a hosted backend for apps built with Claude Code and Codex. Your agent gets a backend it can't break.
You describe the app; your agent builds it. Mantis gives the agent a Postgres database, a typed client, live queries and file storage, and makes sure nothing it does to that backend is permanent until a person says so.
How it keeps the backend safe
- Branches. A branch is a full copy of
main, schema and data. The agent tries a change there, checks it, and promotes it. Anything goes on a branch. - Held changes. On
main, a step that can lose data or let more people in (dropping a table or a column, changing a type, loosening a rule) is held until someone on your team approves it in the dashboard. Safe steps apply at once. - Rewind. Every write is recorded. You can preview and undo everything that happened to a branch, a table or a single row since a point in time, and undo the latest migration with its dropped data brought back.
The pieces
| Piece | What it is |
|---|---|
npx shipmantis@latest init | Signs you in, picks a project, writes the keys and sets the app up for Claude Code and Codex. |
@shipmantis/sdk | The schema in TypeScript, a typed client, live queries, files and useQuery for React. |
| The MCP tools | What the agent uses to read the schema, plan and apply migrations, branch and rewind. |
| The CLI | The same operations for you in a terminal: push, branch, rewind, undo. |
| The dashboard | Where a person approves held changes, browses tables, and rewinds. |
Where things run
Your app talks to one URL, https://data.shipmantis.com, with one of two keys:
- The secret key (
mk_secret_…) stays on your server. It can change the schema, branch, rewind and read or write any row. It is what the agent holds. - The publishable key (
mk_pub_…) is safe in a browser. It can only query and store files, and only as far as your access rules allow.