A backend your agent can operate.
Most code is now written with an agent nearby. Dianthan gives that agent a proper interface: tools to call, credentials scoped to what it needs, and docs it can read in full. The agent can only change what you allowed, and you can see everything it changed.
npx dianthan mcp installThree ways in.
Choose the one your tools support. They all reach the same API, under the same permissions, and land in the same audit log.
MCP server
Tools for apps, systems, plans, keys, flags and queries, plus read access to logs and errors so an agent can debug what it built. Works with Claude Code, Cursor and any MCP client.
CLI
Every dashboard action as a command with JSON output and readable exit codes. Agents with a shell already know how to use it. So do you.
Docs written for models
The full documentation as one plain-text file at
/llms.txt, plus a skill file that teaches an agent how to sign people in, gate features and record usage.
Keys that can do less.
Give an agent a key limited to one app and a short list of scopes. It can read and change records but not send email. It can call models but not read your customers. Revoke the key from the console and its access ends on the next request.
dianthan keys create \
--app fieldnotes \
--name "claude-code on ada's laptop" \
--scopes records:read,records:write,logs:read \
--expires 7dEvery change, signed and reversible.
Each change an agent makes is written to the append-only audit log with the key that made it, and every record change keeps a copy of what was there before. Preview everything one key changed in a window, then undo it in one step. Anything a person has touched since is left alone and listed.
What agents do with it.
The tasks that usually take a weekend of reading docs, done in a single session.
Add sign-in to an existing app
Create the app, register its domain, write the callback route and store sessions in cookies.
Put a feature behind a plan
Create the plan and its entitlement, add the check in code, and link the upgrade button to checkout.
Meter a model call
Wrap the call, record tokens against the user, and refuse politely when they run out of credits.
Find out why something broke
Read the latest errors and traces for the app, match them to the code, and propose a fix.