Knows the agent of each pull request
Claude Code, Copilot, Codex, Cursor or Devin. A local Claude Code session shows its name and its state, and a sub-agent that opened the pull request shows its task: working, done, or failed with its error.

npm install --global @sakuga-software/booboo --watchKnows the agent of each pull request
Claude Code, Copilot, Codex, Cursor or Devin. A local Claude Code session shows its name and its state, and a sub-agent that opened the pull request shows its task: working, done, or failed with its error.
Talks to the agent
a sends a prompt to the session that owns the pull request: rebase, review, fix or test. The session reads it
after its current turn.
Feeds your orchestrator
--json gives the state of each pull request. --watch --events streams each change as NDJSON: a state, a review,
a check, a comment of a person, a merge, a stack to rebase.
Guards the merge
A merge policy keeps an agent from merging too early: a minimum score from the deepest review, a proof, resolved bot threads, an answer to a review that was asked for, files that only their owner merges.
Reads every reviewer
Bots and people, with no list to keep. A quota refusal is not a review, a red check of a refused bot is not a failure, and a queued CI run still runs.
Spots the work that stopped
A red pull request with no agent at work and no new commit is stalled. A stacked pull request whose parent merged
asks for a rebase.
Agents open the pull requests. Your Claude Code sessions, their sub-agents, or a GitHub App
such as Copilot. boo --author @me --author app/my-agent lists them all.
boo watches them. One small GraphQL query probes 50 pull requests, and only the ones that changed are read again. All the runs on the machine share the reads. It retries CodeRabbit by itself when its quota comes back.
The orchestrator follows the stream. boo --watch --events tells it which pull request turned
red, which reviewer answered, and which person wrote a comment that the agent must read.
A person merges. m merges the pull request that is ready, and refuses one that misses a rule
of the team.