All pages

Work together

Coding agents

Let an assistant deploy and operate your projects, with access you choose and a person approving what cannot be undone.

Connecting one

An app that takes MCP servers needs one address — this server's, with /mcp at the end. It is shown on the Projects page under Connect your agent. Add it to the app, and the app sends you here to sign in: you see which app asks and where it returns to, and choose what it may work on and whether it may change things.

Claude (web, desktop, mobile)
Settings → Connectors → Add custom connector, paste the address.
Claude Code
claude mcp add --transport http arrahcloud https://YOUR-SERVER/mcp
Cursor
In mcp.json: {"mcpServers": {"arrahcloud": {"url": "https://YOUR-SERVER/mcp"}}}
Others
Any app that supports remote MCP servers with sign-in (OAuth).
  • Nothing to install, and no token to copy: the app holds tokens that last an hour and are renewed while it is connected.
  • It appears under Settings → API tokens as a connected app. Disconnect stops it at once.
  • Deleting projects or data and restoring backups still wait for your approval, as for any token.

For an agent in a terminal, choose what it may work on and press Get the sentence instead. Paste the sentence into the agent; it installs the arrah tool and signs in with a one-time code that works once, for 15 minutes. What it leads to is an ordinary API token, good for 30 days, that never appears in the text the agent reads. To run the MCP server on your own computer after arrah login:

Terminal
claude mcp add arrahcloud -- arrah mcp

Plan before acting

Any change can be previewed first. The server runs the real request — permissions, your policies, limits, whether something else is running — keeps nothing, and says exactly what would happen: which commit is built, what is deleted and how big it is, whether the address stops answering, whether a person has to approve it, and how to undo it.

Terminal
arrah --dry-run projects delete my-api
arrah --dry-run deploy my-api
arrah env set my-api STRIPE_KEY=sk_live_... --dry-run

Agents use the plan tool with the name and arguments of the tool they would call, and are told to before anything that deletes, restores, rolls back or stops. A preview never asks for approval and never counts against a limit.

What it may do alone

Under Settings → Agent policies, every action has a rule — Allow, Ask me first or Block — separately for projects and for branch environments. People using the dashboard are never restricted; the rules apply to tokens.

Allowed by default
Deploy, roll back, stop; change variables, settings and scheduled jobs.
Asks first by default
Delete a project, a database, a Redis or file storage; restore a backup.
In a branch environment
All of it is allowed: a branch is a disposable copy.

Approvals

A held request changes nothing. It appears on the Approvals page — and on your phone if you set up notifications — with which token asked, the reason it gave, and what approving would do now: the action is run on a copy that keeps nothing, against the account as it is at that moment, so if approving would now fail (a deployment started meanwhile, the server is full) it says so. The notification links straight to that one request. Approving carries it out at once. Denying it, or 24 hours without a decision, discards it. Only a signed-in person can approve or change a rule; a token cannot approve itself.

Narrow, short-lived access

A token, or an app you connect, can be limited to one project (with its branch environments) or to one branch environment alone, and can end after an hour, a day or up to a year. An app you connect asks on the consent page; its sign-in never outlives what you chose. Ended or revoked, it stops at once.

Limits

Deploys an hour
Deployments it may start in any 60 minutes — deploys, rollbacks, and those that come with creating something.
Projects it may create
Projects and branch environments it created that still exist. Deleting one gives the room back.
Memory of what it creates
The memory of those: their applications, background services, databases and Redis.

Set them when you make a token or connect an app, and change them any time under Settings → API tokens. A request over a limit is refused and changes nothing; a preview says it would be. You are never limited, and neither is what you approve.

Sessions

Everything a token or connected app does is recorded: each request's route, status and time — never what was sent — and what it changed. A pause of 30 minutes starts a new session, so a session is roughly one task. Agent sessions shows each step: the tool it called, what changed, and what became of the deployments it started. Export one as Markdown or JSON. Kept 30 days. An agent can read its own with get_my_session, or arrah sessions show.

Instructions and starter apps

Keep a file in the repository that teaches any agent working in it to plan, deploy, check and roll back — in the place each agent reads by itself: .claude/skills/arrahcloud/SKILL.md for Claude Code, .cursor/rules/arrahcloud.mdc for Cursor, AGENTS.md for Codex and others (added after what is there). Get it from Connect your agent on the Projects page, or:

Terminal
arrah agent-instructions claude-code --write
arrah init fastapi --dir my-app     # node, express, nextjs, fastapi, flask, go, static

The starters are the smallest app of each kind that builds and runs here with no settings. Agents get them with list_starters and get_starter.

One token or connected app per agent, limited to one project — or to one branch environment — with an end date and a limit on deploys an hour, and one branch environment per task. The agent works on a copy with its own data, and you merge the code when you are happy. Afterwards, its session shows what it did.