Skip to content

Integrations

All review data comes through the authenticated gh CLI — check runs, commit statuses, review threads (GraphQL), labels, merges. No tokens to configure; if gh works, bro works.

beads is the default memory: debt rows project into bd as labeled beads, drill frames are beads, retros and wtfs are beads. bd ready -l debt is the work queue; discovered-from links keep provenance. Opt out per repo with "stores": ["jsonl"] — the JSONL ledger keeps the receipts either way.

One repo ships adapters for each client — generated from the same skills and hooks by scripts/gen-plugins.ts:

Client Package
Devin plugins/devin/bro
Claude Code plugins/claude/bro
Codex plugins/codex/bro

Every adapter wires hooks/run.sh:

  • Session start / post-compaction — rehydrates state (open drill frames, pending debt)
  • Stop gate — blocks once while a drill frame is open or review threads are unresolved; a repeated stop is let through — gates, not loops
  • Self-approvebro and bd commands run without prompting

Local dist → bro on PATH → major-pinned npx fallback; always fail-open so a broken bro never wedges a session.

bro sync pushes untracked artifact dirs (.agents/, the ledger) to refs/bro/data — git memory that travels with the repo but never appears in a PR diff or branch list. Files already tracked in the repo stay out — the data ref is for runtime state, not a second source tree.