Remote agent control · early access

One binary.
Your servers.
Your agents.

roam runs autonomous agents on your own servers over SSH — detached, budgeted, sandboxed. The moment one reaches for something destructive, it stops and asks. Approve or deny from your phone. No Docker, no runtime, no per-seat subscription.

92 KBstatic binary
0dependencies
MITopen source
Get early access Try the free CLI
└── phones home over https ─&boxam;
roam · now
Agent on prod-db-01 wants to run a destructive command
rm -rf /var/lib/postgresql/old

How it works

01 · dispatch

Send it and walk away

roam send --to prod-01 --goal "…" ships the binary to the box and runs the agent detached. One static binary — no Python, no Node, no Docker on the server.

02 · it parks

Nothing destructive runs unasked

Hit rm -rf, git push --force, DROP TABLE, shutdown… and the agent freezes and asks. Budgets and a workdir sandbox bound the rest.

03 · you decide

From anywhere, in one tap

Approve, deny (the agent adapts), or stop. See every agent across every box — live status, token cost, the full journal — in one self-hosted panel.

Why roam

 
roam
SaaS approval tools
Agent platforms
Self-hosted, MIT licensed
Yes — free binary
No — SaaS subscription
Some — but heavy
Single static binary, no runtime
Yes — 92 KB
N/A — cloud service
No — Docker/K8s
Runs on your existing servers (SSH)
Yes — SSH native
No — cloud only
Some — containers
Phone / email approvals
Yes — self-hosted
Yes — $10–20/mo
Rarely
Pricing model
Pay per run (€0.01 + tokens×1.3)
$10–99/mo per seat
Free / enterprise
Bring your own API key
Yes — or use hub proxy
Sometimes
Yes
Multi-provider (Anthropic, OpenAI, Devin)
Yes
Via MCP only
Varies

Proven end-to-end

✓ merged PR

Agent filed a real PR on GitHub

A roam agent was dispatched with the goal "add a unit test to the machin repo and open a PR." It cloned the repo, wrote a passing Go test, parked on git push for out-of-band approval, and filed a PR that was reviewed and merged.

machin#433 · one static binary, no Python on the target
✓ live test

Dispatch → park → approve from browser

A debri agent was dispatched locally with --confirm. It parked in the panel for approval. The operator clicked Approve from the web UI. The agent started a Devin session, created /tmp/roam-test.txt, and finished.

Full stack verified · roam → panel → portier SSO → debri/devin

Self-host or hosted

The CLI is free. The panel is yours.

Self-host the approval panel — it's the same binary, MIT licensed, zero config. Or use the hosted hub: agents phone home, you approve from anywhere, and you only pay for runs that actually execute. No monthly seat, no vendor lock-in.

What early access gets you

→ push / email when an agent parks
→ approve & deny from the web or a tap
→ fleet view across all your servers
→ per-run metering (tokens, cost, audit trail)
→ scheduled dispatches — agents on cron
→ SSO login (Portier / your own IdP)

Cost calculator

Estimate your spend

Pay per run. No monthly fee. Self-host the CLI free.

Model tier
Tokens per run100K
Runs per month
€0.79 / run
€39.50 / month
€0.01 flat + 100K tokens × €6.00/M × 1.3 = €0.78
50 runs × €0.79 = €39.50/month
vs Pushary $99/mo per seat — you'd save ~67%

Early access

Leave agents running. Sleep fine.

The roam CLI is free and open source today. Join the waitlist for the hosted panel — approve from anywhere, fleet view, per-run billing. No monthly subscription.

✓ You're on the list — we'll be in touch.

Self-host free (MIT, bring your own key) · Hosted: €0.01 + token cost × 1.3 per run · No monthly fee