Compose → refund → Pending
Public Admin first. Cause a hold, approve it, screenshot the audit row.
Live sandbox: getrunkite.com/admin is a running Runkite process (Postgres, Redis, runners), not a mock. Shared key is on the product page. Fake agents only. Compose below is a local replica, not the production shape. Production: Install.
Compose is up
Plane on :2026. Fake bank MCP. Admin opens with no login (auth off).
Refund $500
Try agent → pending_agent. The plane holds the call.
Pending
Admin → Pending. Approve. Same arguments only; a different amount is a new row.
Audit
The audit row is the screenshot. Send the same amount again to finish the fake refund.
1. Bring the plane up
git clone https://github.com/getrunkite/runkite && cd runkite docker compose -f docker-compose.dev.yml up -d --build curl -sf http://localhost:2026/readyz && echo OK # Admin → http://localhost:2026/admin/
Dev compose is SQLite + in-memory transport plus a fake bank MCP. First build takes a few minutes. SQLite is enough for Pending.
2. Refund that needs a human
Fastest: Admin → Try agent → pending_agent → send
Refund $500 to the vendor. Then Admin → Pending → approve.
Or curl:
BASE=http://localhost:2026
THREAD=$(curl -sf -X POST "$BASE/threads" -H 'Content-Type: application/json' -d '{}' \
| python3 -c 'import json,sys; print(json.load(sys.stdin)["thread_id"])')
curl -sf -X POST "$BASE/threads/$THREAD/runs/wait" \
-H 'Content-Type: application/json' \
-d '{"agent_id":"pending_agent","input":{"messages":[{"role":"user","content":"Refund $500 to the vendor"}]}}' \
| python3 -m json.tool
# Admin → Pending → approve, then send the same amount on a new run.
Expect a message that the plane held the refund, and a row in Pending.
This is connector policy, not command.resume.
Echo still works as a smoke test: agent_id echo_agent.
What you should have seen
- A tool call that never reached the fake bank until you approved.
- Pending bound to the argument digest (a different amount is a new row).
- An audit row you can screenshot.
Next steps
- Admin UI guide: walk through every screen in the dashboard you just opened.
- Your first agent: write your own graph from scratch and run it through the plane.
- Install (Supported): when you're ready for the real Postgres + Redis profile.
Longer walkthrough: docs/quickstart.md · Product: landing