fibers.dev
Join the waitlist
Features

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.

Job one

Know what your agents are doing

Which sessions are alive, on which machine and worktree, and which one is blocked on you.

shipped

Many agents, one board

Every session that runs the hooks registers itself: machine, worktree, desktop instance, what it is claiming. Six lanes are derived from events and age, never stored: needs you, active, blocked, idle, loose ends, recently ended. A claim stops reading as active after an hour of silence.
shipped

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.
shipped

An agent asking you a question

When an agent stops to ask you something, its session moves to needs you on its own and stays there until the question is answered, newest question first. Nobody has to log it.
shipped

Today, since you last looked

The workspace home is the day: what moved since you last looked, rolled up by strand, what is blocked, and each goal with its children counted as n of m done, blocked or ready. Caught up moves your read mark. Goals come from bumps and coordinator claims, not from a goals table.
shipped

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.
shipped

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.
shipped

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.
shipped

Capture cannot break a session

Hooks always exit clean. If the service is unreachable, writes spool to disk with their own workspace binding and replay later; a poisoned entry is dead-lettered rather than blocking the queue.
Job two

Remember what they learned

The next session starts from what the last one found, with the status attached.

shipped

Decisions with derived status

A decision is a record, not prose. Its status is computed, never typed: current, qualified, challenged, superseded. A superseded decision is served as its final successor, flagged as a redirect, so an agent cannot act on the old answer by accident. The mechanism is published prior art (NuggetIndex, SIGIR 2026); the product decision is to enforce it rather than annotate.
shipped

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.
works · from a repo checkout

Search across your transcripts

Hybrid retrieval over your own archive: full-text and local vector search fused by rank, with the embedding model running on your machine. A hit lands on the matching message, and the session can be handed back to Claude from there. Nothing leaves the device.in flightThe archive is built by scripts run from a checkout of the repo, and the index rebuilds nightly once a script installs the job. None of it ships in the plugin yet.
shipped

Read a transcript

A reader for Claude Code transcripts with sub-agent threads collapsed, a window around any record, and a peek from the session page. The reader is a library the companion and the archive search both use.
shipped · manual setup

A local MCP recall server

Two read-only tools over your archive, 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.
shipped · thin

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.
Job three

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.

shipped

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.
shipped · partial

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.
shipped · partial

Work under your tickets

A Linear or GitHub ticket ref is a first-class thing to claim, and the ticket page joins every strand that touched it. What is not built is the other half: noticing when the ticket moved and the work did not.in flight · ENG-86Ticket-state sync and staleness. No Linear API call exists on the branch today.
shipped

Pull requests, mirrored

PR state is fetched from GitHub through your own 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.
shipped · link-out

Connectors

A workspace names its Linear and GitHub homes so refs become links and cache keys. Credential-free by design: the product reads through your client, and writes back to ticket systems are deferred.designed · ADR-0078Writing to a ticket system is a recorded non-goal for now.
Job four

Reach any session, anywhere

From the board to the session that owns the work, on any machine or in a cloud sandbox.

shipped

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.
shipped · macOS

Open the session that owns it

An Open control on needs-you rows, claims, work and PR strands takes you into the session behind them. 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.
shipped · partial

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 desktop companion

The app around the board

An Electron shell for macOS with a local bridge to the machine. Honest about what is missing.

runs from source

Shell, sign-in, stocktake, search

The web app in a native macOS window: the title bar is the header, the window remembers where you left it, and a Go menu matches the keyboard. Sign-in happens inside the window, a stocktake lists every worktree on the machine, archive search runs in its own process, and a first-run checklist asks before it writes anything.
shipped

A command palette, a peek panel, a keyboard

⌘K is one box for work, decisions and sessions; > 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.
not yet · ADR-0062

Notifications, signing, updates

No native notification when an agent needs you, no code signing or notarisation, no updater. There is no build to download yet; the app runs from a checkout of the repo.
Harnesses

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.

works with
  • Claude Code CLI
  • Claude desktop app
  • Claude cloud sessions
in flight
  • Cursor
not yet
  • Codex CLI
  • Gemini CLI
  • OpenCode
  • Copilot agent
Agent harnesses: status, what the hooks capture, and whether the board can resume a session there
HarnessStatusWhat the hooks captureResume from the board
Claude Code CLIshippedNine 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 appshipped · macOSThe 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 sessionsshipped · work laneClaims, 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.
Cursorin flightA 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 CLInot yetAdapter designed on 2 September 2026. No code.Not yet.
Gemini CLInot yetAdapter designed on 2 September 2026. No code.Not yet.
OpenCodenot yetIntegration shape noted. No code.Not yet.
Copilot agentnot yetNothing. 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.