Skip to main content
TYBA’s review panel does not talk to GitHub. Everything it shows comes out of git running in the session’s worktree: the commit timeline, the per-file summary, the hunks. There is no PR, no login, no network. That is what makes the review work before a PR exists — which is exactly when you need it.

How to open it

Git icon

In the header, when the active session is in a repository.

Chip bar

Uncommitted changes or Review worktree diff.

Workspace menu

Review diff — only for a session with a worktree.
It opens as a workspace side view: a panel next to the tab column, with a draggable divider and an expand button. The mechanics are in The side view.
There is no diff tab. There used to be, and when an old layout loads, diff tabs simply disappear. Today the diff is a side view — one per workspace.

What you see

In the left column, Commits: the session’s timeline, short sha and subject, newest to oldest. Below it, the per-file summary in three sections: The last two are the important part: what the agent left uncommitted shows up too. An agent that stopped halfway hides nothing from you.

The base

The committed diff is base_sha..HEAD, and the base_sha was pinned when the worktree was born (Worktrees). The header shows base <sha> ‥ HEAD. That is why the review stays readable after two hours: whatever landed on main meanwhile does not show up here.

Hunks on demand

The per-file summary comes from --numstat. The real diff is only fetched when the file opens — one click on the file row. Some are born collapsed: The two arrows in the section header expand or collapse every file in that section at once.
A failure loading a file’s hunks does not retry on its own. You get failed to load the diff with a retry next to it. Automatic retry against a broken repo would be an infinite loop of git processes.

Unified and side by side

Unified and Side by side in the header. Syntax highlighting runs on the client and skips hunks over 2,000 lines — in those, the text shows up without color. Binary shows as bin in place of the count, and binary file — no text diff in the body.

Stage, unstage, discard

Hover over the file row:
Discard is a red action and asks for two clicks. The first arms it (Discard?), the second executes — and the arming expires on its own after 3 seconds.Tracked comes back with git restore. Untracked goes away with git clean -ffd — including a nested repository the agent may have left behind. There is no undo.
Unstaging a renamed file unstages the whole pair (the old path along with it); otherwise the next commit would lose the file from history.

What does not exist

Comment on a line

Hover over a diff line and click the green + in the gutter. Write what needs to change. The comment stays anchored to the line, in green. With at least one saved, the footer gains Send N comments to the agent — which is another page.
The comments are not persisted. They live in the panel: closing the review discards everything you did not send. They do not go to git, and they do not become a GitHub review.

Open the file

The arrow icon opens the file as text — in the GUI editor configured in Settings, or, on macOS with no editor, via open -t.
Never open <file> nor xdg-open: that would execute a script the agent left in the worktree with one click. On Windows and on Linux with no editor configured, the button errors out asking you to configure one — on purpose.

Explore another branch

The selector next to the base enters explore mode: pick a branch and the panel shows its diff against the base, read-only. Committed only — staged and worktree belong to your directory, not to the branch you are looking at. There is fetch and checkout in the same selector. Leaving explore mode returns to the session’s review.

Conflict in the worktree

If there is a merge, rebase or cherry-pick in progress, the panel gains a banner at the top with the conflicted files and, per file: keep <branch>, take <branch>, open in editor, mark resolved (git add). Plus a Resolve with agent, which drops the conflict into the lap of whoever created it.

Refresh

The core’s watcher only sees the git dir — index, HEAD, refs. Editing a file in the worktree generates no event. So, with the panel open, a light poll also runs every 5 seconds.
The panel closes itself when focus moves to another session. It shows the staged and worktree of that session’s repo: left open with another one focused, it would lure you into staging — or discarding — in the wrong repo.

Session without a worktree

The panel opens for any session whose directory is a git repository. There the base is HEAD: Committed comes up empty and you see only staged and worktree. Local merge and opening a PR need a worktree and will fail.

See also

Commit and push

The commit bar, the message suggestion, and what push refuses.

PR comments to the agent

What the agent receives when you hit send.