Help
The same text as asp help in your terminal.
Every day
asp join sign up and make your first agent asp run claude-code run an agent under your rules asp runs what your agents did, and what was refused asp approvals calls waiting for your yes asp stop stop what is running
Getting started
1. asp join opens your browser; sign in with Google once; your first agent and your recovery code are made. Write the recovery code down. 2. asp run claude-code in a project folder: starts Claude Code under your rules (it can read and write files and run commands in the folder, and has no network unless you name hosts). 3. asp runs afterwards: what the session did and what was refused. Not sure what to do next? asp status says.
Running an agent
asp run claude-code [--prompt "..."] Claude Code, with your own Claude sign-in at a terminal asp run codex --prompt "..." [--provider openai|openrouter] Codex with your own API key (held by the local gateway) asp run goose --prompt "..." --model <name> Goose, same asp run antigravity --prompt "..." Antigravity (agy), with your own Google sign-in; held by its own pre-call hook, not the gateway asp run openhands --prompt "..." [--model m --endpoint url --api-key-env NAME] OpenHands (inside WSL on Windows), with its own settings or the model you name --project <dir> the folder the agent works in (default: here) --agent <name> which of your agents (default: the one asp agent use set) --allow-network a.com,b.com hosts the agent may reach (default: none) --ask commands|writes|network hold those calls until you say yes (asp approvals, or the prompt in this window) --keep-run-log seal a copy of the session's log on the service (asp help runlog) Defaults for a project can live in a file: asp help asp-yaml.
Approvals: calls that wait for your yes
Start a session with --ask commands (or writes, or network). When the agent makes such a call, it is held and a signed Checkpoint is raised. --ask commands asks about every shell command. --ask risky asks only about risky ones (git push, rm -r, sudo, publishing, deleting in kubectl/terraform, curl | sh, drop table ...); --ask-match "git push" --ask-match "re:\bdeploy\b" asks only about commands that match what you give (words, or re:<regular expression>). Everything else runs as the Mandate allows. In the same window you are asked: Allow shell.exec: npm run build? [y/N/a]. a means yes, and never ask about this exact command again for this agent. From another window: asp approvals, then asp approvals approve 1 (or refuse 1). asp approvals always lists the commands you said a to; asp approvals forget <n|all> takes them back. Your answer is signed with your key and goes in the log. The run log says, for each command, whether it was asked about or why not (remembered, no match).
Stopping a session
asp stop ends the session that is running (from any other window). The tool ends within a few seconds; the standing job stays. asp stop <id> when more than one is running (ids are in asp runs). asp standing end ends the standing job as well (it is settled; the next run makes a new one).
History: what your agents did
asp runs your recent sessions: when, which runtime, how many calls, how many refused. asp runs <id> one session: what the agent was asked, what it said, what was refused and why. asp run-log show the full run log, event by event.
Your agents
asp agent list your agents, whether their keys are on this machine, how key loss is recovered asp agent add <name> another agent in your namespace (up to 20); its key is on this machine, and you, its sponsor, can issue a new one if it is lost asp agent use <name> the agent asp run uses by default
Standing jobs
The first session of an agent with a set of permissions makes a standing job (a signed contract and Mandate, a week long by default); later sessions reuse it, so a session costs only its signed Action reports. asp standing list them. asp standing end end them (settled). --standing-days n how long a new one lasts. A different set of permissions (hosts, gates) is a different standing job.
CI, cron and scheduled runs
On your machine: asp standing prepare (makes the job) and asp token create --name ci (a named, expiring, revocable token; the job never holds your login). In CI: asp run claude-code --headless --contract <id> --prompt-file task.md --json, with your own ANTHROPIC_API_KEY. A subscription login is not used in CI (asp help providers). Exit codes: the tool's own; 10 a call was refused (with --fail-on-refusal); 11 the job had ended. A GitHub Action wraps it: docs/ci.md.
Your account and your data
asp account show what the service holds for you (tenant, records, packages, sealed run logs, identities and how each is recovered) asp account export everything, into a folder: records, packages, commons entries, sealed run logs asp account close --confirm <tenant> deletes your packages, commons entries and sealed logs and your token; the signed records stay in the append-only log (the terms say so)
Lost keys and recovery
Your recovery code was shown once when you joined. With it: asp identity recover <your did>. Without it, an agent's key can be replaced by you, its sponsor: asp identity recover <agent did> --by-sponsor. asp identity backup <did> an encrypted backup file of an identity's keys (passphrase in ASP_BACKUP_PASSPHRASE); asp identity restore <file> puts them back. asp identity recovery-check <did> proves your written-down code is right without using it.
Run logs: where they are and who can read them
A session's run log is on your machine. asp run ... --keep-run-log (or asp run-log keep) seals a copy on the service: encrypted on your machine to your own keys; the service cannot read it. asp run-log kept | fetch --id <id> | open <file> | drop --id <id> To give a court the log: asp run-log disclose --id <id> --to <did> --reason "..." [--upload]. The disclosure is signed by you; the key is wrapped to the people you name.
Model providers: your keys and your logins
The gateway runs only on your machine, as you. The service never sees your provider sign-in or API key. Unattended agents (servers, cron, CI) must use your own API key, billed to you; headless runs refuse to start without one. A subscription sign-in is for your ordinary individual use at a terminal. We do not sell or pool model access. Details: docs/provider-terms.md.
asp.yaml: defaults for a project
asp init writes a starter asp.yaml in the current folder. With it, a bare 'asp run' does what the file says; flags on the command line win over the file. Keys: runtime, agent, project, model, provider, api-key-env, ask (list), ask-match (list), allow-network (list), standing-days, keep-run-log. A file you did not write cannot widen what an agent may reach: allow-network from an asp.yaml is used only after you trust it (asp trust asp.yaml; asp init trusts the file it writes).
Typing claude and getting a governed session
asp shim bash|zsh|powershell prints a small script: tab-completion for asp, and a claude function that starts 'asp run claude-code' when you type claude (with no arguments, or -p "prompt"). Add it to your shell's startup file yourself: eval "$(asp shim bash)" (zsh the same; PowerShell: asp shim powershell | Out-String | Invoke-Expression). asp never edits your startup files. Anything else you pass to claude goes straight to the real claude, ungoverned, with a one-line notice. Remove the line from your startup file to turn it off.
asp ask: say it in words
asp ask "stop what is running" shows the command it understood (asp stop) and asks before running it. It follows fixed rules, not a model: if it does not understand it says so. It never runs anything destructive (closing an account, ending a standing job): it shows the command and leaves the decision to you. --yes runs a non-destructive command without asking.
Advanced: the protocol's own commands
Everything above is built from these. Most people never type them. identity keys, passports, recovery market intents, offers, contracts, Mandates, settlement log verify, export, witnesses court seat, docket, rule (the operator's court in the beta) commons shared lessons package an agent's package on the service gateway the local proxy sessions run through mail end-of-job mail watch patterns across agents canary regression checks asp help all prints the complete reference.