Get it for macOS

Comment on a thread's changes line by line, then send the comments to its agent, which fixes the code and answers each one. A Review tab beside the thread shows the diff of its uncommitted, staged or unstaged changes, its branch, one commit or a range, and each comment follows its code as the code moves. The same tab reviews a GitHub pull request: answer its threads, mark files viewed in step with GitHub, and submit your comments as one review, posted as the GitHub CLI's signed-in account. An AI review leaves comments of its own, @reviewer answers a question inside a comment thread, and Fix in a new thread hands the comments to another agent; these runs start as threads under the one being reviewed, in the permission mode set in the settings (bb's Approve for me by default, or Accept edits), and in full permission mode with a provider that lacks that mode, such as opencode. Follows the review loop of the open-source diffity, credited in the plugin's third-party notices. Needs bb 0.48 or later with bb's Git plugin on, and the signed-in GitHub CLI (gh) for pull request review only; it is built on experimental bb plugin APIs that may change between bb releases.


Overview

View source

Comment on a thread's changes line by line, then send the comments to its agent, which fixes the code and answers each one. It is diffity's review loop on your own working tree, inside bb.

What you get

  • A Review tab in each thread's side panel, one click away in the thread's header, with the diff of the thread's workspace: its uncommitted, staged or unstaged changes, the changes committed since the base branch, all changes since the base branch, one of the branch's commits, or a range such as main...feature. Split or unified, in bb's code theme, loading as you scroll, with Hide whitespace and an optional colour-blind palette.
  • Any file: search the workspace for a file, in the diff or not, and comment on its lines.
  • Comments on a line, a range of lines, a whole file or the whole diff, in Markdown, with an optional severity: must fix, suggestion, nit or question. Reply, edit, resolve, reopen or dismiss. Comments follow the code as it moves; one whose code changed is listed apart, with the code as it read then.
  • Suggested changes you apply with one click, and Revert for a file's uncommitted change or some of its hunks.
  • Viewed marks per file, shared with bb's own diff panel, that say when a file changed since you viewed it. Find across the diff, Go to a file or comment, and a palette command for every action.
  • Send to agent: pick open comment threads, add a note, and send them to the thread under review, queued behind its current turn. The agent answers in each thread from its own chat, and the tab shows every answer as it arrives, or "No reply" with a link back to the thread.
  • AI review, Summarize and Explain: an agent reviews or summarizes the diff, or explains a file or lines, in a thread under the one being reviewed that you can watch, and leaves its comments in the tab. Write @reviewer in a comment and the view's AI reviewer answers in the thread. Fix in a new thread sends the comments to a new thread with the agent you pick.
  • GitHub pull request review: fetch a pull request without switching your checkout, answer its review threads (an agent's answers there come back as drafts you post), mark files Viewed in step with GitHub's own Viewed marks, and submit your comments as one review with the verdict you pick.
  • A Reviews page listing every review with comments across projects, with the open count on its sidebar entry, and the count in each thread's Info tab.
  • Ignore patterns for lockfiles and generated files, in the plugin's settings and in the workspace's own .diffityignore.

How it works

The diff comes from bb's Git plugin, and the staged, unstaged and range views from git itself, both on the machine the thread's workspace is on. Comments are stored by the plugin on your bb server, per workspace and per view, so they survive closing the tab or bb. The agent answers through a bb diff-review command the plugin teaches it with a skill, and only the thread the comments were sent to can answer them.

What it costs

Nothing beyond bb 0.48 or newer: no account, no service and nothing else to install. Fixes, reviews and answers are made by agents in bb threads, on your own provider plans; AI runs start with Claude Code unless you pick another provider.

Limits

  • The Review tab draws its own diff; bb's built-in diff panel has no comment hook.
  • bb cannot make a thread read-only, so an AI run is only asked not to edit files; the tab lists any file that changed while it ran.
  • It needs bb's Git plugin, which is on unless you turned it off.
  • Pull request review needs the GitHub CLI, signed in, on the machine running bb.

More from Gustavo Ambrozio

ChatGPT Realtime ConnectionRun Voice Mode's voice chats on your ChatGPT subscription instead of a separately billed OpenAI API key. It hands Voice Mode the ChatGPT sign-in that the Codex CLI already keeps on the machine running the bb server, reads it again for every chat, and never renews or rewrites it. Only the plugins you allow, Voice Mode to begin with, receive the token; the bb app, the command line and agents in threads never do. This is an undocumented use of the subscription that OpenAI could stop accepting at any time, nobody has checked whether OpenAI's terms allow it, and voice chats count against your ChatGPT plan. Requires bb 0.46 or later, Voice Mode 0.1.9 or later, and the Codex CLI signed in with Sign in with ChatGPT on a plan that includes Codex.NewFirstMate CrewHand one agent your to-do list and it runs a crew of worker threads, each in its own git worktree, until the work lands. The first mate is a pinned thread in bb's own chat that writes each worker's instructions, supervises it, and brings back branches, pull requests, findings and only the decisions that are yours. A FirstMate tab shows the crew as a board of Queued, Working, Blocked, Parked, Done, Failed and Idle, with Steer, Interrupt, Relaunch and End on every card. A built-in watch tells the first mate within about five minutes when a pull request is merged, reviewed or changes check status. Requires bb 0.47 or later, git, and the logged-in gh CLI for the pull request watch; a capable model such as Claude Sonnet is recommended for the first mate.13GitHub BoardSee your GitHub issues, pull requests and discussions on one board, and hand any of them to an agent thread. Four columns cover what you wrote, what is open on repositories you own and what is assigned to you, and an issue that a pull request closes folds into that pull request's card. Pull request cards show CI checks and branch status, with an Update branch button wherever you can push. A detail panel shows the body, comments and images, and labels are added or removed from a right-click menu. Send to chat opens bb's new-thread composer on a card, with a prompt you set per column and per project, in the bb project that has the repository checked out. Add to chat puts the same prompt, the card's column template with the chat's project override, at the end of a chat's draft without sending it, from a menu of the chats on screen and your recent threads. Requires bb 0.47 or later, and the GitHub CLI (gh) installed and signed in on the machine running the bb server.9HeraldHear one spoken sentence when an agent needs you, and see every waiting thread in one list. When a thread asks a question, waits for a plan or a permission to be approved, finishes its turn or fails, the bb app says which thread it is and what it needs, on whatever page you are on. A Herald page in the sidebar lists every thread waiting on you with its reason and sentence, and the same sentence sits above that thread's composer with a Read again button until you answer. Settings choose which kinds of event are announced, the voice and speed, and where to speak: the desktop app, a browser tab, or the mobile app while it is open. By default the sentence is built from the event itself, with no model or external service; optionally, Claude Code, OpenAI Codex, Gemini CLI or a command of your own, installed and logged in on the Mac running bb, writes it instead, for one short model turn per announcement. The default voice needs bb running on a Mac, and elsewhere each device's own browser voice speaks. Requires bb 0.47 or later.19

More in Code & Reviews 59

Work with repositories, builds, changes, pull requests, issues, and reviews.

View all