Radian documentation
Radian deploys the agent app or coding harness you already have into isolated computers, in Europe or America. It runs your own entrypoint, keeps your framework's native sessions and state, and lets you export everything to run elsewhere. These docs cover the paid beta.
Quickstart
- Request access at radian.sh/start, or let your agent do it with agents.md.
- Install the CLI with your invite:
curl -fsSL https://radian.sh/install | shon macOS and Linux, orirm https://radian.sh/install.ps1 | iexin PowerShell on Windows. - Sign in:
radian login. On a machine without a browser it prints a device code. - In your repository, run
radian init. It detects the framework, start command and state paths, and writesradian.json. Check it; nothing is deployed yet. - Run
radian deploy. Radian builds the commit and opens a protected preview. - When the preview does what it should, run
radian promote.
radian login
radian init --location europe
radian deploy
radian promote
The declaration: radian.json
One file describes how Radian builds and runs your workload. It is a public format: the open-source runner reads the same file when you export.
{
"$schema": "https://radian.sh/schema/v1.json",
"project": "support-agent",
"location": "europe",
"source": { "root": "apps/agent" },
"build": { "dockerfile": "Dockerfile" },
"workload": {
"kind": "service",
"command": ["npm", "run", "start", "--", "--host", "0.0.0.0"],
"readiness": { "http": { "port": 3000, "path": "/eve/v1/health" } },
"native": { "adapter": "eve", "version": "0.75" }
},
"computer": { "size": "M", "profile": "desktop" },
"state": {
"mode": "persistent",
"mounts": [
{ "path": "/workspace", "lifetime": "retained" },
{ "path": "/app/.eve/.workflow-data", "lifetime": "retained" }
]
},
"secrets": ["OPENAI_API_KEY", "GITHUB_TOKEN"]
}
| Field | What it does |
|---|---|
location |
europe or america. Builds, computers, state, secrets, logs and backups stay there. Changing it later is an explicit transfer. |
source |
Repository subdirectory for monorepos, or image with an OCI digest instead of a build. |
workload.kind |
service, job or session (an interactive coding harness). |
workload.command |
Your start command as an argument list. No shell expansion unless you write one. |
workload.native |
Optional adapter for sessions, approvals and resume. Without it you still get generic hosting. |
computer |
Size S to XL and profile headless, browser or desktop. |
state.mode |
disposable removes the computer after each task; persistent keeps the declared paths across stop and start. |
secrets |
Names only. Values are set per environment and never written to logs or exports. |
Workloads
Services answer HTTP. Each deployment gets a protected URL like https://support-agent-4f2c91a.eu.radian.sh. Your native protocol is passed through unchanged, including streams.
Jobs take an input and finish. Submit with an idempotency key so a retry never starts the work twice:
radian run triage --input issues.json --key nightly-2026-11-01
radian logs run_7Hk2 --follow
radian cancel run_7Hk2
Coding sessions host Claude Code, Codex or Pi in a workspace. Prompt it from the dashboard, attach its own terminal, or open a separate shell in the same computer:
radian attach claude-code # the harness's own terminal
radian shell # a separate shell beside it
radian files pull src/ # copy files out of the workspace
Reconnecting never creates new work: you return to the same run and its retained output.
Computers and state
| Size | vCPU | Memory | Per hour |
|---|---|---|---|
| S | 2 | 4 GiB | €0.06 |
| M | 4 | 8 GiB | €0.12 |
| L | 8 | 16 GiB | €0.24 |
| XL | 16 | 32 GiB | €0.48 |
Every computer can have a browser and a desktop. Several people can watch; one person or agent holds the input at a time, and taking control is explicit.
- Disposable: a clean computer per task. When the task ends, the outputs you declared are saved and the computer is removed.
- Persistent: the paths you declare, plus the browser profile and native session stores, survive stop and start.
radian pauseflushes them, waits for the browser to exit and stops compute.radian continueresumes the same native session on a new computer.
Pausing keeps disk and native state, not memory: an unsaved editor buffer does not come back.
Previews, promotion and rollback
Every commit can get its own preview with test credentials and its own empty state. Production secrets and data never flow into a preview unless you copy them explicitly.
radian promote routes new sessions and jobs to a deployment. Sessions and queued jobs that already started stay on their version until they finish or you move them. radian rollback is a promotion to an earlier version; it does not undo database writes, files or anything an agent already did.
Approvals
Where your framework supports it (LangGraph interrupts, Pydantic AI deferred tools, OpenAI Agents SDK interruptions, Claude permissions), Radian shows the exact pending action and lets you approve, edit or reject it from the dashboard, CLI, API or MCP. Old or conflicting decisions are rejected instead of applied twice.
radian approvals
radian approve apv_31c --run run_7Hk2
Export and the exit kit
radian export stops the writer, captures a consistent export and lists every asset as included, rebuildable or blocked, with a reason. The open-source runner restores it on any Linux machine without a Radian account:
radian export support-agent
radian-runner up support-agent.radian-export
Exports include code or image digests, radian.json, environment settings, workspace files, native sessions and memory, pending approvals, checkpoints, run history and audit logs. Secret values are not exported; you bind new ones at the destination.
API, SDKs, CLI and MCP
Every dashboard action is an API call at https://api.radian.sh/v1 with the same permissions. Mutations take an Idempotency-Key and return an operation you can follow.
import { Radian } from "@radian-sh/sdk";
const radian = new Radian(); // RADIAN_TOKEN
const run = await radian.runs.submit({ project: "support-agent", input: { ticket: 4182 } });
from radian_sh import Radian
radian = Radian()
radian.deployments.create(project="support-agent", environment="preview")
claude mcp add --transport http radian https://mcp.radian.sh
| CLI command | Does |
|---|---|
radian init |
Detect settings and write radian.json |
radian deploy |
Build and open a protected preview |
radian promote / rollback |
Route new work to a deployment |
radian run / logs / cancel |
Submit, follow and stop jobs |
radian attach / shell |
Native terminal or a separate shell |
radian pause / continue |
Stop compute, keep state, resume |
radian approvals / approve / reject |
Decide pending actions |
radian env set |
Set secrets and settings per environment |
radian export |
Export a project for the exit kit |
radian usage |
Spend so far and limits |
Billing
€29 a month, all credited to usage. Computers bill per second while running, by size. 10 GiB of stored state is included, then €0.10 per GiB-month; 100 GiB of traffic is included, then €0.02 per GiB. Model usage is billed by your provider on your key. Set a monthly spend limit with radian usage limit 200; new work is refused before you go over it.