What it does, labelled by how built it is
This page uses the product's own serving contract on itself: every claim leads with its status. The groups are the jobs fibers exists to do.
- shipped
- merged and working
- in flight
- being built now
- designed
- decision recorded, no code
- not yet
- known, not started
Labels were read off the code on 25 September 2026. The roadmap is whatever is not yet shipped, in the order it is listed.
Know what your agents are doing
Which sessions are alive, on which machine and worktree, and which one is blocked on you.
Many agents, one board
Blocked on a human is a typed fact
fibers log blocked carries a closed reason. Needs-you means blocked on a person, not on another agent, and the same predicate is shared by the CLI, the service and the web app, so the board cannot cry wolf in one place and not another.An agent asking you a question
Today, since you last looked
A morning brief
fibers catchup prints, per workspace, what needs you, what changed since you last looked, the PRs waiting, loose ends on this machine and the goals. The /catchup skill reads it back to you in words, and only what it printed.The board in the terminal, and at session start
fibers ls groups the board by lane and names clashes: two live sessions on one worktree, branch or ticket. A session that starts inside a repo gets a four-line digest of the same facts, with provenance, never as instructions.Clearing down finished sessions
fibers retire ls checks each ended session against a row of gates: not running, claim released, every PR merged, worktree clean and pushed, transcript archived, plus a Claude Desktop session card, a last event that is not a block, and not being the worktree you are in. It names the first gate that fails. The /clear-down skill archives only the ones that pass.Capture cannot break a session
Remember what they learned
The next session starts from what the last one found, with the status attached.
Decisions with derived status
Decisions written back to git
fibers decisions export writes one repo's decisions as markdown, one file per decision plus an index, with status, supersession, anchors and qualifications. The output is deterministic, so a GitHub Action can run it daily and open a pull request only when something changed. The registry stays the store; the files are the export.Search across your transcripts
Read a transcript
A local MCP recall server
device_context and device_transcript, for your own Claude client. Wiring it in is a documented paste into the client's MCP config, not an installer.designed · ADR-0004A remote MCP endpoint on the service is a different, unbuilt thing.Search over decisions
fibers decisions search goes through a bring-your-own engine and falls back to title matching without one. Client-side only; the service does no per-user inference.Work as a graph, not a list
Work items with typed edges, readiness derived from them, and the ticket systems you already use joined in rather than replaced.
Work items with typed edges
requires and part_of, with a cycle refused at insert and the path named. Readiness is derived and served unordered; there is no priority field. Bodies are append-only ledgers that humans and agents co-author. A decaying bump records that something matters now.Specs and briefs travel with the work
fibers work link --spec points a work item at its spec, and fibers work note --kind brief writes its brief. Claiming the item prints the brief, or says plainly that there is none, so the next session starts from the same page.Work under your tickets
Pull requests, mirrored
gh on every claim and log, and shown against the work: open or merged, checks, who reviewed and how many threads are unresolved. Review text is never stored. Each PR has its own page beside the work it belongs to. Fetched by the client, so the service holds no GitHub credential.Connectors
Reach any session, anywhere
From the board to the session that owns the work, on any machine or in a cloud sandbox.
Message a session
fibers msg ENG-27 "the schema changed" leaves a durable, provenance-stamped note for whichever session holds that work. It arrives the next time that session touches the board, rendered as data with a sender and a timestamp, never as an instruction.designed · ADR-0072Waking an idle local session, opt-in with a liveness check, is decided and not built. Cloud sandboxes will not be woken; next-touch delivery is the design there.Open the session that owns it
fibers desktop resume <session> does the same from a terminal. Both route to the exact Claude desktop instance that owns a session, using each instance's own session index rather than focusing the app and hoping.A lane for a coordinator
fibers ls --under <ref> scopes the board to one piece of work and its children. It is the board filtered, not a separate coordinator screen.The app around the board
An Electron shell for macOS with a local bridge to the machine. Honest about what is missing.
Shell, sign-in, stocktake, search
A command palette, a peek panel, a keyboard
> finds places to go and / searches this machine's transcripts. On wide screens a row opens beside the list instead of replacing it. g then a key jumps between areas, n and p step through needs-you, and ? lists every key from the same table the app uses.Notifications, signing, updates
Which agents it works with
The hooks are the product's only input. A harness is supported when its hooks reach the board without hand-wiring; anything short of that is labelled as what it is.
- Claude Code CLI
- Claude desktop app
- Claude cloud sessions
- Cursor
- Codex CLI
- Gemini CLI
- OpenCode
- Copilot agent
| Harness | Status | What the hooks capture | Resume from the board |
|---|---|---|---|
| Claude Code CLI | shipped | Nine lifecycle hooks: session start, stop, notification, compaction, end, a heartbeat on tool use, one that notices when the agent asks you a question, and subagent start and stop, so every subagent appears as its own row under the session that started it. Installed by the plugin. | The board links the session; the terminal is already yours. |
| Claude desktop app | shipped · macOS | The same nine hooks. Each desktop instance is identified separately, so two instances on one machine are two rows. | fibers desktop resume, or Open on any board row, routes to the exact instance that owns the session, not just the app. |
| Claude cloud sessions | shipped · work lane | Claims, progress, blocked and release work from a cloud sandbox with a named token. Heartbeats and board liveness do not, by design. Setup is a documented three-paste recipe, not the plugin. | No local instance to resume; the board shows the session as cloud. |
| Cursor | in flight | A hooks bridge exists and the CLI reads Cursor's hook input, but the bridge is wired for one machine and is not installable yet. Session end and compaction do not fire in cursor-agent. | Not yet. |
| Codex CLI | not yet | Adapter designed on 2 September 2026. No code. | Not yet. |
| Gemini CLI | not yet | Adapter designed on 2 September 2026. No code. | Not yet. |
| OpenCode | not yet | Integration shape noted. No code. | Not yet. |
| Copilot agent | not yet | Nothing. Copilot appears only as a review bot on mirrored PRs. | Not yet. |
Every harness goes through the same CLI, so a new one is an adapter for its hook surface, not a new product.