# Build with AI agents

Scribase is built to be driven by a coding agent. The agent creates the
project, writes migrations with row level security, wires auth and storage,
deploys functions and works on its own branch, through the same `/v1` API
the console uses. You approve the parts that touch production.

## The 60-second path

**1. Once: sign up.** Sign up at
[console.scribase.com/signup](https://console.scribase.com/signup) (Google,
GitHub or email, then the one-time $1 card check, which is credited to your
balance). You never copy a secret key into the agent: it signs in by itself
and you approve it in the browser (see
[Why you never need to paste a secret key](https://docs.scribase.com/docs/agents/no-secret-keys.md)).

**2. Once: connect your agent.** Claude Code:

```sh
claude mcp add --transport http scribase https://api.scribase.com/mcp
```

Claude Code opens the Scribase consent page the first time it connects. For
the CLI, the agent runs `scribase login` and shows you a link and a code to
approve.

Cursor, Codex, Windsurf and the local server: [Connect your agent](https://docs.scribase.com/docs/agents/setup.md).

**3. Ask.** For example:

> Create a Scribase project called `my-app`, write its URL and anon key to
> `.env`, and add a `todos` table that each user can only see their own rows of.

The agent calls `org.list`, `project.put` and `environment.create`, polls
`operation.get` until the database is live, writes `.env` with the URL and
the anon key (never the service key) using
`scribase apps switch <org> my-app --format dotenv`, writes
`supabase/migrations/001_todos.sql` with RLS policies, and applies it with
`migrate.run`. Each mutating tool call carries `confirm: true`, which your
agent client shows you before it runs.

The key step uses the CLI today (see [Connect your agent](https://docs.scribase.com/docs/agents/setup.md#the-cli-for-agents-that-prefer-a-shell));
an MCP tool that returns an environment's public URL and key is coming.

## Teach your agent Scribase

Give the agent the rules and recipes, so it does not have to guess:

| Agent | Add to your project |
|---|---|
| Claude Code | The `scribase` plugin (skills + MCP), or `.claude/skills/scribase/` and a `CLAUDE.md` section |
| Codex and most others | An `AGENTS.md` section |
| Cursor | `.cursor/rules/scribase.mdc` |
| Windsurf | `.windsurf/rules/scribase.md` |

All of these live in the `agents/` folder of the Scribase repository and
say the same thing: never ask you for keys (sign in with `scribase login`
instead), keep keys out of output and git, schema changes only
through migrations, RLS on every table, a preview branch per task, and no
production merge, delete or key rotation without your explicit approval.

Any agent can also read the whole documentation as plain text:
[/llms.txt](https://docs.scribase.com/llms.txt) (an index) and
[/llms-full.txt](https://docs.scribase.com/llms-full.txt) (everything). Every
page is available as markdown by adding `.md` to its URL, for example
[/docs/agents.md](https://docs.scribase.com/docs/agents.md).

## What the agent can do

| Area | MCP tools | CLI |
|---|---|---|
| Projects and environments | `project.put`, `environment.create`, `environment.list`, `operation.get` | `scribase project put`, `scribase env create` |
| Keys into `.env` | (CLI) | `scribase apps switch <org> <project> --format dotenv` |
| Schema and RLS | `migrate.run`, `policy.test`, `schema.apply`, `database.tables` | `scribase migrate --dir`, `scribase db pull`, `scribase gen types` |
| Branch per task | `environment.create` (preview), `branch.register`, `branch.diff`, `branch.merge` | `scribase branch` |
| Functions | `functions.list`, `logs.tail` | `scribase functions deploy`, `scribase secrets set` |
| Inspect | `database.query` (read-only), `auth.users`, `storage.buckets`, `insights.get`, `usage.get` | `scribase insights` |
| Move from Supabase | `import.supabase`, `import.status` | `scribase import supabase` |
| Recover | `backup.create`, `backup.restore` | `scribase backup`, `scribase restore` |

## Next

- [Connect your agent](https://docs.scribase.com/docs/agents/setup.md): Claude Code, Cursor, Codex, Windsurf, local server
- [Why you never need to paste a secret key](https://docs.scribase.com/docs/agents/no-secret-keys.md): device login, MCP OAuth, paste-safe tokens
- [Tokens and safety](https://docs.scribase.com/docs/agents/safety.md): scopes, expiry, revocation, audit, confirm
- [Branch per task](https://docs.scribase.com/docs/agents/branch-per-task.md): previews an agent can break freely
- [Temporary databases](https://docs.scribase.com/docs/agents/temporary-databases.md): what exists today and what is coming
