{
  "markdown": "# footnote - f[no]\n\n**Set a target and walk away. Say f[no] to mostly done.**\n\nI got tired of watching coding agents stop at \"looks done.\" Claude, Codex, Gemini, all of them[^1]: they write the code, the diff looks right, they hand it back, and then it's on me to find out at 11pm that the tests were never green. So I said f[no].\n\nI built the loop that does not stop there. It keeps going until CI is green. When you opt in to auto-merge, it also merges the PR. When it cannot choose the next feature, it walks the backlog and works it out.\n\nClaude Code is my hammer, and I see a shit ton of nails. So I kept swinging: I got it running across providers, then got a Claude agent and a Codex agent mailing each other across terminal panels while they worked.\n\nReally, I built this to ship my own projects faster. One of them became a business. footnote is the part underneath all of it. The rest of this is what it does.\n\n## The vocabulary\n\nfno has its own words for its own pieces, used everywhere in the codebase except this file, until now.\n\nA **citizen** is a session `fno agents spawn` creates: a row in the registry, addressable by `fno agents mail`, and surviving the session that spawned it. A citizen spawned against a backlog node also holds that node's claim; an ad-hoc citizen spawned without one does not.\nA **limb** is the harness's own subagent, Claude's Agent tool or Codex's task tool: nested inside its parent, gone when its parent's turn ends, visible but not addressable.\nThe **mesh** is the whole set of citizens working a backlog together, coordinating over `fno agents mail` instead of one shared context window.\nA **king** is a session bestowed authority over one scope, a portfolio of projects, one project, or one epic, for one reign; the crown expires on exit, and the graph it leaves behind is what outlives it.\nThe **crown** is that authority itself, three levels deep at most, and a session holding no crown is a worker by default.\n\n## Install\n\n**Agent integration** - the `/fno:*` commands and the walk-away workflow. Each AI CLI installs its own integration; the Claude plugin also bundles the `fno` CLI (its postinstall puts it on your PATH in a new session), so you don't need a separate CLI install:\n\n```\nClaude Code:   /plugin marketplace add bllshttng/footnote\n               /plugin install fno@footnote\nGemini CLI:    gemini extensions install https://github.com/bllshttng/footnote\nCodex CLI:     fno config setup codex-plugin --channel release\n```\n\nThen configure with `/fno:setup` and point it at a feature:\n\n```\n/fno:target \"add OAuth login\"\n```\n\n**CLI only** - just the `fno` binary, for scripting, CI, or driving footnote yourself. This installs `fno` but **not** the `/fno:*` slash commands (those need the agent integration above, or run `fno config setup wizard`, which offers to wire them into the agent CLIs it finds on your PATH):\n\n```\ncurl -fsSL fno.sh | sh          # one-liner\nuv tool install fno             # uv  (or: pip install fno)\nbrew install bllshttng/fno/fno  # homebrew\ncargo install fno               # cargo\n```\n\nLocal-clone install and path configuration: [docs/getting-started.md](docs/getting-started.md).\n\n## Set it up\n\nConfigure a project from a Claude Code session with `/fno:setup`, or from the terminal with no agent:\n\n```\nfno config setup wizard              # asks the few real per-project decisions, writes them validated\n                              # then offers to install the /fno:* integration for each agent CLI on your PATH\n```\n\nRead or edit any setting directly: `fno config get|set|unset <key>` (atomic and schema-checked). Defaults are sensible; you can skip straight to running.\n\n## Autonomy\n\nSee what can run without you, including each gate and its resolved value:\n\n```\n`fno agents autonomy status`\n```\n\n## Run it\n\nTwo ways to ship a feature end in a green PR. Merging requires the existing auto-merge opt-in. Then scale up.\n\n**Autopilot.** Point the `target` skill at a feature description or a backlog node, then walk away:\n\n```\n/target \"add OAuth login\"     # think -> plan -> code -> review -> ship\n/target fno-a3f9              # by backlog node id\n```\n\nIt runs the whole loop with or without you watching, and prints the PR URL when it ships. You don't have to pass a size; it runs a sensible default.\n\n**Hands-on.** Drive the design yourself, then hand off the build:\n\n```\n/think \"OAuth login\"          # explore the design space\n/blueprint \"OAuth login\"      # plan it, then hands off to a fresh /target thread\n```\n\n`/blueprint` spawns the build in its own Claude Code thread so your planning context stays clean.\n\n**Keep going.** `/megawalk` chews through the whole backlog until it's done or out of budget, walking the dependency graph to pick what ships next.\n\n**Loop harnesses together.** Spawn an agent on another provider and work alongside it:\n\n```\nfno agents spawn \"review the diff\" -H codex --name reviewer   # a Codex agent on this repo\nfno agents ask reviewer \"what did you find?\"            # message it; it works on its own\n```\n\nEach agent runs its own loop and they coordinate over a message bus. Claude, Codex, and Gemini, one project.\n\n**Also in the box:**\n\n- A six-agent review panel reads the diff before it ships, analyzing integration and UX-flow, not just unit tests, via `/review`.\n- Provider rotation with failover and per-model lockout, so a flaky or rate-limited model doesn't stall the loop.\n- A read-only browser view of any running pane, via `fno mux serve --web`. Open the URL on your phone and watch an agent work. Nothing to install on the viewing device. The bridge releases its socket write half at attach, so no keystroke reaches your terminal. [docs/guides/web-view.md](docs/guides/web-view.md)\n\n## What it is\n\nAn orchestration loop for shipping software, packaged as a plugin. Most loops re-run a prompt or fire on a timer; this one won't let a session stop until external truth says so: the PR exists, CI is actually green, and every required reviewer has signed off with nothing blocking. It reasons over a dependency graph to decide what to ship next, and survives session compactions, provider hiccups, and your skepticism. No vibes-based \"done.\"\n\n## What it isn't\n\nNot a sandbox. Not a babysitter. Not a hero-video launch. It runs your plans with your credentials on your machine and assumes you meant what you asked for. [docs/security-posture.md](docs/security-posture.md) draws the trust boundary. Read it before you point this at anything you'd hate to hand a robot.\n\n## Roadmap\n\nLive board: **[footnote.sh/roadmap](https://footnote.sh/roadmap)** - rendered from the public backlog and refreshed automatically (no commit per update). Flag items with `fno backlog update <id> --public`.\n\n## Docs\n\n- [Getting started](docs/getting-started.md): install, setup, and the commands you'll actually run\n- [Target pipeline](docs/guides/target.md): the loop: flags, gates, cross-project, resume\n- [Think and plan](docs/guides/think-and-plan.md): design exploration and planning\n- [PR lifecycle](docs/guides/pr-lifecycle.md): review, create, check, merged\n- [Agents quickstart](docs/guides/agents-quickstart.md): spawn and message peer agents\n- [Browser view](docs/guides/web-view.md): watch panes from a phone, read-only\n- [Best practices](docs/best-practices.md): reliable, cost-bounded runs\n- [Troubleshooting](docs/troubleshooting.md): when it breaks\n- [Security posture](docs/security-posture.md): what it will and won't do\n- [Architecture](docs/architecture/control-plane-loop.md): how completion is decided\n- `AGENTS.md`: multi-CLI setup notes (Claude Code, Codex, Gemini)\n\nSkills are portable markdown. Grab pieces without the full plugin: `npx skills add bllshttng/footnote/<skill>`. Full list under [skills/](skills/).\n\n## Requirements\n\nmacOS (Apple Silicon or Intel), Linux (x86_64 / arm64), or Windows via [WSL2](docs/getting-started.md#windows-wsl2). Python 3.11+, `jq`, and `gh` (authenticated). Optional: Playwright for browser testing.\n\n## Companions\n\n[RTK](https://github.com/rtk-ai/rtk) compresses shell output 60-80% so long loops don't drown in their own context. `/fno:setup` detects and wires it.\n\n## Status\n\nPre-launch (open-source readiness). Screencast coming. Built in the open and dogfooded daily: footnote ships footnote.\n\nInspired by the community autonomous-loop pattern (keep looping a fixed prompt until the work is done).\n\n## License\n\nApache-2.0, [Jason Noah Choi](https://github.com/bllshttng)\n\n[^1]: The autonomous loop is most battle-tested on Claude Code. Codex and Gemini run it too; Hermes and Openclaw can as well, with the least mileage there.\n",
  "bytes": 8616,
  "sha": "956a0c3001c9e43bf111b423140b06f62c5bf96f4a3915e6069471b8b7bf7053",
  "repo_slug": "bllshttng/footnote",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/plg_bllshttng_footnote_79141acf/readme"
}