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 | shcurl -fsSL sleds.ai/install | sh. sleds init --undo is the line out.SLEDS-* lines. The record's wire format is a text file.help, generated from the same file as the CLI and the app.Install, init, doctor.
The installer puts sleds in ~/.sleds/bin and adds it to your path for the next shell; in this one it prints the full path to run. sleds init signs you in through the browser, then lists every file and key it will change (the settings backup, the status line, the hooks, the token, the /sled skill, the musher) and asks Go ahead? [y/N]. No yes, no change. --yes skips the question for a script.
sleds init --project installs into this repo's .claude/ only: your user settings stay as they are, no musher. sleds init --undo lists what init wrote, asks the same question, and takes it out (add --project for the repo's). It keeps the seat token. sleds doctor says what is wired, including your cockpit; sleds off returns the agent to your seat directly.
A token is for a headless machine, CI or a box: sleds init --yes --token … from its secret store. People sign in with sleds init. Never paste a token into a chat.
mac · linux · claude code · codex cli · cursor · cmux · orca
$ curl -fsSL sleds.ai/install | sh installed sleds 0.1.67 → ~/.sleds/bin/sleds. next: ~/.sleds/bin/sleds init # signs you in through the browser $ ~/.sleds/bin/sleds init Opening your browser to sign in to SLEDS. Your code: HXKP-4TQM — the page shows the same one. sleds init will: ~/.claude/settings.json.sleds-backup — a copy, for --undo ~/.claude/settings.json — statusLine: the SLEDS meter ~/.claude/settings.json — set hooks.Notification · PostToolUse · UserPromptSubmit · SessionStart · Stop ~/.sleds-token — the seat token (0600, never printed) ~/.config/sleds/config.json — token, proxy URL, what init wrote ~/.claude/skills/sled/SKILL.md — the /sled skill ~/Library/LaunchAgents/ai.sleds.musher.plist — the musher Go ahead? [y/N] y Signed in as jake@acme.dev · Acme. This machine is now a seat there. $ sleds doctor proxy ok · 41 ms seat fable weekly 62% · resets thu 9:00 cockpit cmux (workspace acme)
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 · undo | sleds off · sleds init --undo [--project] | — | Back to your seat directly; or take out what init wrote (hooks, status line, skill, musher), listed and asked first. The token stays. |
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 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
One help that will not let the tools drift.
Add https://mcp.sleds.ai/mcp as a connector in Claude, ChatGPT, Cowork or Claude Design and sign in with your workspace account. 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". A member without a seat can call intake, status, touches, attach and answer; the rest need a seat.
| tool | kind | tool | kind |
|---|---|---|---|
| intake | write | attach | write |
| usage | read | answer | write |
| estimate | write | handoffs | read |
| jobs | read | handoff | write |
| dispatch | write | defer | write |
| approve | write | overnight | write |
| plan | write | actual | write |
| status | read | buddy | read · write |
| touches | read | withdraw | write |
Four small things on your laptop.
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 (not with --project), removed by --undo.
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.
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.
Free for one engineer.
The install is open to anyone with an invite. Request one for your team.
curl -fsSL sleds.ai/install | sh