One line to install. Plain text everywhere else.
sleds is a CLI on your laptop, a status line and a skill in your agent, six lines in a PR body, and an MCP server. Everything it writes is text you can read in the tool that already shows it. Nothing to host unless your review wants the proxy at home.
curl -fsSL sleds.ai/install | sh. sleds uninstall is the line out.SLEDS-* lines a PR body can carry. The record's wire format is a text file.help that lists them, generated from the same file as the CLI and the app.Install, init, doctor.
The installer puts sleds on your path. sleds init finds your handles — git email, GitHub login, the agent's account — and asks you to accept them, backs up your agent settings once, points the agent at your seat, and installs the status line, the /sled skill and the hooks. sleds doctor says what is wired, including your cockpit. sleds off returns the agent to your seat directly; sleds uninstall removes every trace.
$ curl -fsSL sleds.ai/install | sh $ sleds init git email jake@example.com [enter] github jakek [enter] agent claude code · jake@ [enter] seat workspace acme · token saved (0600) installed status line · /sled skill · hooks $ sleds doctor proxy ok · 41 ms seat fable weekly 62% · resets thu 9:00 cockpit cmux (workspace acme) tracker linear · connected by the workspace
Same verbs in the terminal, in Claude Code, and in the conversation.
| verb | terminal | claude code | what it does |
|---|---|---|---|
| intake | — | /sled intake | The questions, the brief, the row. From the conversation, the connector runs the same tool. |
| estimate | sleds spec-event on save | /sled estimate [file] | A band, a fit, a confidence, a cap. Recorded; the actual closes it. |
| status | sleds status | the status line | Bars, credits, the binding reset, what is queued. |
| jobs · handoffs | sleds handoffs | /sled jobs | Overnight jobs and the team's open hand-offs, yours first. |
| handoff | sleds handoff | /sled handoff · the wall | Park a brief for a teammate or buddy, with the snapshot. |
| pickup | sleds pickup <id> | /sled pickup <id> | Continue a parked task or walled session on your seat. |
| withdraw | sleds withdraw <id> | — | Take back a hand-off nobody picked up. |
| defer | sleds defer [+2h | iso] | the wall · hold until reset | The musher resumes the session at the reset. No key needed. |
| overnight · resume | — | /sled overnight · /sled resume <id> | Sized, capped, batch tier; the delivered result pulled back in. |
| verify | sleds verify <jobId | attest line> | — | Ed25519 against the workspace's public key, locally. |
| help | sleds help [word] | — | The whole table, filtered. One file feeds chat, terminal and app. |
| off · uninstall | sleds off · sleds uninstall | — | Back to your seat directly; or remove hooks, status line, token, skill, musher. |
Six lines. Written by the record, readable by anyone.
The record's protocol is lines in a PR body. The estimator posts the band on open; you or your agent add a Worth: line and a SLEDS-Source: line; the workflow posts the actual on merge and the record closes the estimate and the ticket's row. The parser is tolerant of every shape the lines have ever taken, and a workflow backfills merged PRs.
Seat work carries minutes, model and seat credits; key work carries dollars. The rails stay named apart here too.
SLEDS-Source: ENG-482 · docs/specs/sso-redirect.md §3 Worth: high · $5k–20k · Acme renewal SLEDS-Estimate: $4–11 · 20–55 min · Fable fits · 81% · cap $20 SLEDS-Seat: now · Fable · jake@ · seat quota SLEDS-Actual: 34 min · model fable-5.1 · seatCreditsUsd 7 SLEDS-Attest: ed25519:MEUCIQ… · 2026-09-11T14:02Z · verified
Twelve tools. One help that will not let them drift.
Add https://mcp.sleds.ai/mcp as a connector in Claude, ChatGPT, Cowork or Claude Design and sign in with your workspace account. Your seat is the account you signed in with. The tool list is generated from the same file as sleds help and the app's Help page; a test fails if a tool has no verb or a verb names a tool that does not exist.
The server's instructions, the tool descriptions and the per-workspace question set are how the person's own AI runs intake under our rules. The brief is a schema; worth is marked by who said it; nothing is written before "yes".
| tool | kind | tool | kind |
|---|---|---|---|
| intake | write | usage | read |
| estimate | write | jobs | read |
| handoff | write | handoffs | read |
| pickup | write | withdraw | write |
| defer | write | overnight | write |
| actual | write | buddy | read · write |
| help | read |
One line under the prompt: ⛷ fable 62% · resets thu 9:00 · $38 allowance. Amber at 90%. Red at the wall, with the exits.
At 100% the session is snapshotted and the exits are printed inside the session. /sled 1–6 answers them. Nothing else in your settings changes.
cmux and Orca: the seat line per pane, a ring at the wall, the sidebar block. doctor names the cockpit it found.
A launchd job that resumes at the reset. Runs your own agent headless for defer and overnight. Installed by init, removed by uninstall.
A small service on your keys, in your region.
The proxy streams requests to the seat's platform and back and keeps the numbers. Enterprise workspaces run it themselves; the control plane sees only what the record needs. Receipt keys are the workspace's, and sleds verify checks them without asking us. What leaves the laptop →
Bun. One container. Fly, your Kubernetes, or a VM.
Platform keys from your vault; the workspace token; the allowed origins.
The seat platforms and the control plane. Nothing else.
Tokens, model, cost, when, the decision. No bodies.