Chisle
The coding-agent plugin that bills 52% of a bare model across 20 live tasks. Terse persona + tool-output compressor + context diet.
翻訳待ち
Terminal dashboard of your open pull requests: approval, reviewers of every provider, checks, and review quotas
翻訳待ち
Loading the full README.
Read the full README ↗The control tower for the pull requests of your coding agents.
Your agents open the pull requests: Claude Code sessions and their sub-agents, Copilot, Codex, a
GitHub App of your own. Review bots answer them, some in several passes, some out of quota, some
with a red check that tells nothing about the code. boo reads all of it and shows one line for
each pull request: its state, its checks, each reviewer, and the agent that works on it. A person
reads the list in a terminal. An orchestrator reads the same state as JSON.
Documentation: https://sakuga-software.github.io/boo/
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.boo --json prints the state of each pull request, with keys that
stay the same from one version to the next. boo --watch --events streams each change as one
line of NDJSON: a state, a review, a check, a comment of a person that the agent must read, a
merge and who did it, a stacked pull request to rebase.
Scripts and orchestratorsready to merge until the
rules of the team pass: 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.
Merge policystalled. A stacked pull request whose parent merged shows parent merged · rebase.And for every pull request, agent or not: each reviewer with its mark and its confidence score, a quota refusal that is not a review, a red check that does not count, a CI run that is still queued, and a CodeRabbit retry when its quota comes back.
npm install --global @sakuga-software/boo
Requires Node 22 or later and an authenticated gh (gh auth status). The Copilot review request
(c) needs gh 2.88 or later.
boo # show the state once, retry CodeRabbit if its quota is back, then quit
boo --watch # stay open until Ctrl+C, and refresh
boo --org all # all organizations; the default organization is sakuga-software
boo --since 2026-09-15 # only the pull requests created on or after this date
boo --author @me --author app/my-agent # the pull requests of these authors, for this run
boo --author @me --author app/dependabot --author app/renovate # also the bumps of Dependabot and Renovate
boo --json --drafts # also the drafts, with the state "draft" and their checks and reviews
boo --repo boo --repo acme/web # only these repositories: owner/name, or name in the organization
boo --dry-run # post and merge nothing
boo --json # print the state as JSON for a script, and post nothing
boo --watch --events # print each change as one JSON line, and post nothing
boo --watch --events --state ~/.cache/boo-watch.json # after a restart, only the changes since the last run
boo --help # options, states and marks
[!WARNING] The session records of Claude Code, its links to the pull requests and the inbox of a session are internal to Claude Code, not a public interface. A new version of Claude Code can change them. Then the rows show no local session, or a command fails with an error in the bar.
--json and
--watch --eventsThe repository is a pnpm workspace: the CLI, which npm publishes, is in packages/cli, the relay is
in packages/relay, and the site is in packages/site. The logic that the CLI, the relay and the
mobile app share is in packages/core, a private package with no Node API: the build of the CLI
holds it.
git clone https://github.com/sakuga-software/boo.git
cd boo
pnpm install # installs the git hooks, and builds packages/cli/dist/
pnpm check # lint, format, types, tests, coverage and the package, as CI runs them
pnpm site:dev # the site, on http://localhost:4321/boo/
See Contributing for each script, the release and the demo.
MIT