Skip to main content
Before an agent can pay, its owner has to link and approve it. Linking establishes a secure identity for the agent on this machine, and approval happens in the owner’s browser — so nothing can spend money without a human explicitly allowing it.

The linking lifecycle

1

Start the link (agent / terminal)

prava setup creates the agent’s identity locally and prints a one-time approval URL.
2

Approve (owner / browser)

The owner opens the URL, signs in to Prava, and approves the agent.
3

Confirm (agent / terminal)

prava setup poll waits for the approval and finalizes the link.

prava setup

prava setup --name "Claude Code" --platform claude-code --description "Anthropic's coding agent"
OptionRequiredDescription
--name <name>YesHuman-friendly agent name shown on the approval screen (e.g. "Claude Code").
--platform <id>RecommendedThe agent’s platform identifier (see below).
--description <desc>NoShort description shown to the owner when approving.
It prints the approval URL and exits immediately — it does not block:
To link this agent, open this URL and approve:

https://pay.prava.space/link-agent?lid=lk_xxxxxxxx

Link expires in 15 minutes.
Run `prava setup poll` to wait for approval.
Give the agent a specific name and platform ("Claude Code", claude-code) rather than a generic "My Agent". The owner sees this when deciding whether to approve.
Use the identifier that matches the agent’s runtime. If none fits, use custom.claude-code · codex · cursor · gemini-cli · hermes · aider · goose · copilot-cli · github-copilot · windsurf · cline · continue · amazon-q · roo-code · kilo-code · sourcegraph-cody · tabnine · augment-code · amp · zed · kiro · blackbox · opencode · qwen-code · kimi-cli · mistral-vibe · warp · coro-code · devin · openhands · jules · swe-agent · manus · openai-operator · claude-computer-use · replit-agent · bolt · v0 · lovable · custom

Approve in the browser

The owner opens the printed URL, signs in at pay.prava.space, and clicks Approve. The link is valid for 15 minutes. If it lapses, just run prava setup again.

prava setup poll

After the owner approves, confirm the link:
prava setup poll
Waiting for approval of "Claude Code"...
...

Linked! Agent ID: aa_7kMnP2
Ready to create sessions.
poll waits up to 15 minutes. Other outcomes:
OutputMeaning
Setup denied by user.The owner rejected the agent in the browser.
Link expired. Run \prava setup` again.`The 15-minute window passed before approval.
No agent configured. Run: prava setup …No link was started on this machine yet.

prava status

Check the current link state at any time:
prava status
A linked, active agent prints:
Agent:   Claude Code (aa_7kMnP2)
Status:  active
Linked:  2026-07-06
Other states:
Agent:   Claude Code
Status:  pending
Link:    https://pay.prava.space/link-agent?lid=lk_xxxxxxxx
Open the link and approve, then run prava setup poll.
No agent configured. Run: prava setup --name "<name>"
Nothing is linked on this machine yet — run prava setup.

One agent per machine

Each machine holds a single linked agent identity. That identity is stored locally in your home directory and is what proves requests come from this approved agent.
  • To switch to a different agent, remove the local identity and run prava setup again.
  • Keep the identity private — anyone who can read it can act as this agent (within the owner’s guardrails).
Prefer a non-default location for the identity file? Set PRAVA_STATE_DIR to a directory you control before running prava setup.

Owner controls

Approval isn’t the end of the owner’s control. From the Prava dashboard, an owner can revoke any agent — after which its requests stop working immediately — or suspend their whole account. Spending limits and saved addresses are configured there too, and Prava enforces them on every purchase. See Guardrails.