Capture stack · promptly + promptlyd
Set up in five minutes.
Ranked runs are measured by a small local daemon, not the browser. Install the promptly CLI once, pair this machine, and every level after that is three commands in your terminal.
What you're installing
promptlythe CLI
The command you actually type. It pulls level workspaces, runs the public tests, streams live token usage, and submits ranked runs — and it starts and stops the daemon for you, so you never need a second terminal.
promptlydthe daemon
A localhost-only background process that meters your AI harness while a session is live — every prompt, every token, per turn. It binds to 127.0.0.1 and is never reachable from off your machine.
Everything is captured locally. The only thing that ever leaves your machine is a redacted, device-signed run that you explicitly submit.
The path
Five steps, once.
Install the CLI
One line drops both binaries onto your PATH. Pick your platform — the command is identical on every machine you'll ever pair.curl -fsSL https://raw.githubusercontent.com/AidanHT/promptly-daemon/main/install.sh | shDownloads the prebuilt promptly + promptlyd binaries for your platform and puts them on your PATH. No Rust toolchain needed.
Already installed?
promptly updateupgrades both binaries in place whenever a new release ships.Pair this machine
Pairing links the machine to your Promptly account with a 90-day device token, so ranked submissions are signed by hardware you've approved. You'll confirm a short code in the browser — then you're done here for three months.Open your devicesRun once per machine
Prints a code and opens the approval page — or approve it manually under your devices. Revoke a pairing there any time.promptly pairStart a level
Pick any level from the catalog — its page shows these commands with the right slug filled in. One command fetches the starter workspace, launches the daemon, and starts the capture clock.The fast path
Fetch + launch + capture in one step, thencdinto the new folder and start solving.promptly play stage-1-01-lru-eviction-debugPrefer it step by step?
promptly init stage-1-01-lru-eviction-debugcd stage-1-01-lru-eviction-debugpromptly startinitdownloads the kit and starts the solve clock;startbegins the captured session (the daemon launches automatically).stoppauses it, and a laterstartresumes without resetting your work.Solve with your harness
Work exactly how you normally do — Claude Code, Cursor, Codex CLI, Copilot Chat. The daemon meters the session in the background while these three show you exactly where your score stands.promptly watchLive per-turn token usage and your projected score, as you prompt.
promptly testRun the level's public tests locally before you spend a submission.
promptly scoreThe projected ranked score — same math as the server.
Submit for ranking
When the public tests pass, send it. The run is scored on tokens, turns, model cost, and execution speed against the hidden suite — results land on the level page and the leaderboards.End the attempt
Redacts your transcript, packages the run, signs it with your device key, and uploads — after showing you the projected verification tier and asking you to confirm.promptly submit
Under the hood
How capture works.
Capture only counts between an explicit start and stop, and only inside the bound workspace — unrelated AI usage never inflates an attempt. Every run ranks; the verified badge is reserved for the one path that is authenticated and tamper-evident end to end.
Claude Code — OpenTelemetry
The daemon runs a loopback OTLP receiver; Claude Code streams token counts, cost, and timing to it natively.
Verified-eligibleClaude Code — session logs
A watcher tails the local session JSONL as a fallback and cross-check for the OTEL stream.
Ranks unverifiedCursor · Codex CLI · Copilot Chat
Best-effort adapters read each tool's local logs, read-only. Counts are marked estimated.
Ranks unverified
Verified needs OTEL-backed Claude Code capture, an online session, and your consent to a one-line telemetry bootstrap — promptly submit always shows the projected tier before you confirm.
If something's off
Troubleshooting.
Something feels off — where do I start?
promptly doctor diagnoses the whole chain: daemon reachability, OTEL wiring, the web app connection, the workspace manifest, and the language runtime. It prints exactly what's broken and how to fix it — run it before anything else.
Pairing fails or the code expires
Codes are single-use and short-lived — re-run promptly pair for a fresh one, and make sure you're signed in to the same account in the browser that approves it. Existing pairings are listed (and revocable) under your devices.
The HUD shows no tokens while I'm prompting
Capture only runs between promptly start and stop, inside the level's folder. Check promptlyd status says capturing, and that your harness is one of the captured sources above. Claude Code users: if you declined the telemetry bootstrap, the daemon falls back to session-log capture, which can lag a few seconds.
Keeping it up to date
promptly update swaps both binaries for the latest release (--check just reports). The CLI also prints a one-line notice when a newer version exists.
Removing everything
Revoke the pairing under your devices, run promptlyd uninstall if you registered it as a background service, and delete the two binaries plus ~/.promptly. Nothing else is touched.
Reference
Every command, one card each.
Play
- promptly pair
- link this device to your account (once)
- promptly play <level>
- fetch + launch + capture, in one step
- promptly start / stop
- begin or pause the captured session
- promptly submit
- device-signed ranked upload
Insight
- promptly watch
- live per-turn token usage
- promptly test
- run the public tests locally
- promptly score
- projected score, server parity
- promptly doctor
- diagnose the whole chain
Workspace
- promptly init <level>
- download the starter kit only
- promptly restart
- discard the attempt; re-fetch fresh
- promptly reset
- restore the canonical starter
Daemon & upkeep
- promptly up / down
- start / stop the daemon yourself
- promptlyd status
- connected · capturing · idle
- promptly update
- upgrade both binaries in place
promptly help prints the same overview in your terminal · full documentation ↗
Ready
You're all set.
Twenty levels across four stages, scored on how efficiently you prompt.