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.