Skip to content

Use case

Track every branch and pull request across your Claude Code and Codex chats

Pairbar is a macOS app that lays one sidebar over the Claude and Codex desktop apps, and its Tasks view groups your chats by the work they belong to. A task is every chat, from Claude and Codex, on your Mac or in the cloud, working on the same branch of a repository or in the same worktree. Tasks sit in sections (Needs you, Working, Ready to review, Done), each with its pull request and checks, and Pairbar suggests what would move each one on, waiting for your Approve before it does anything.

Last updated

NEEDS YOUWORKINGREADY TO REVIEWRate limitsAcme-Backend · claude/rate-limits☁︎Add a dark mode toggleAcme-Web · codex/dark-mode#7Fix login redirectAcme-Backend · claude/fix-loginFix#42Port the stylesAcme-Web · claude/port-stylesFinish#37Ask Claude to fix the failing checksHere's what Pairbar will do. Nothing changesuntil you approve. PR #42 · lint, unit-tests failed1Open a new Claude chat in thetask's worktree, prompt typed inThe CI checks on PR #42 failed: lint,unit-tests. Find out why with gh prchecks 42, fix the cause on this branch…Nothing is sent until you press Send.DeclineApprove
Tasks grouped by branch with their PR checks, a Fix suggestion chip, and its plan with Approve and Decline.

The problem

Once agents work in parallel, the unit of work stops being a chat. One branch can have a Claude chat that wrote the feature, a Codex thread that reviewed it and a cloud session that fixed a test. Both apps list chats by folder or by date, so the pieces of one piece of work are scattered across two sidebars, and the PR that ties them together lives in GitHub.

  • There's no single place that says "this branch: PR #42, checks failed, two chats, one of them waiting for you".
  • Merged work lingers in the chat list, next to work that still needs a review.
  • Worktrees pile up on disk after their branches are merged.

How Pairbar solves it

  1. Group by Tasks
    Choose Tasks in the view menu (Group by, on the right of the bar under the search field), in Settings → Chats & sidebar → Group by, or type View: Tasks in ⌘K. Pairbar remembers it.
  2. Read the sections
    Needs you (a chat is waiting for your answer or approval), Working (a chat is running), Ready to review (nothing running, and the branch has work or an open PR), Done (PR merged or closed, or you marked it done). Chats on main or another main branch get one group per project, under On main.
  3. Check the PR on the row
    Each task shows which apps have chats in it (☁︎ for cloud ones), its PR number in GitHub's colours and its checks: ✓ passed, ✕ failed, 🕘 running. Click › to unfold it and see the failing checks by name and every chat in the task.
  4. Open a suggestion's plan
    A small chip on the row (Fix, Review, Finish, Archive) opens a plan: "Here's what Pairbar will do. Nothing changes until you approve." It lists every step, with the prompt it will type in full.
  5. Approve or Decline
    Approve (⌘↩) runs the steps in order and then says what happened, with Undo where it can be undone. Decline closes it and nothing happens.
  6. Tidy up in one go
    When two or more tasks are merged or stale, the banner offers Fix all safe…: one plan with a checkbox per task that only marks tasks done and archives them in Pairbar.

What makes a task

ChatsAre
on the same branch of the same repositoryone task, whichever app they're in, local or cloud (a cloud chat's repository is matched to your checkout by name)
in the same worktree folderone task, whatever branch they report (Codex worktrees are often on a detached HEAD)
on main, master, develop, dev, staging or trunk, or on no branchnot a task: one group per project

Suggestions and what Approve does

WhenSuggestionOn Approve
its PR's checks failedAsk Claude (or Codex) to fix the failing checksa new chat in the task's worktree or branch with a prompt naming the PR and the failed checks. A Claude chat opens with the prompt typed in; for Codex the composer opens. Nothing is sent until you press Send
a review is requested, or it's ready to reviewGet a second opinion from the other appCodex starts a read-only review at once; Claude opens a new chat with the review prompt typed in
its PR is mergedMark done and archiveyour done mark and archiving; removing the worktree only if you tick it (Undo brings the task back and adds the worktree back)
no activity for 7 days and no PRArchive it, or Nudge: open the latest chatarchives it (Undo unarchives), or opens its newest chat
a chat needs youOpen the waiting chatjust jumps to it

Removing a worktree is never ticked for you. Pairbar refuses it while the worktree has uncommitted changes, checks again right before, never forces it and never deletes the branch. See the plan.

  • Stage chips (All, Needs you, Working, Ready, Done), Apps (Claude, Codex, both) and Project, each with the count it would show. A task is always shown whole: filtering on Claude keeps its Codex chats in it.
  • Sort by recently active, needs attention first, PR status, name or oldest; group by lifecycle or by project; choose when a task counts as stale (3, 7, 14 or 30 days).
  • Search matches a task's title, project or branch, or any of its chats.

Where PR status comes from

Claude records the PRs its chats open. For everything else Pairbar runs your GitHub CLI (gh pr list --head <branch>) in the task's folder in the background and keeps the answer for 10 minutes (2 minutes for tasks in Working and Ready to review). Without gh, there are no checks. Main branches are never looked up.

Without Pairbar

Without Pairbar, you piece the same picture together from git, GitHub and each app's own list:

ToolWhat it gives you
git worktree listevery worktree of a repository and the branch each has checked out
git branch -vvlocal branches with their upstream and how far ahead or behind they are
gh pr statusyour PRs and the current branch's, with check and review state
gh pr list --head <branch>the PR for one branch, the same lookup Pairbar makes
Each app's chat listchats by folder or date; you match them to branches yourself

Frequently asked questions

Does Pairbar act on a task without asking?
No. Every suggestion opens a plan that lists exactly what will happen, and nothing changes until you press Approve. Decline changes nothing.
Can a task contain chats from both Claude and Codex?
Yes. Chats on the same branch of the same repository, or in the same worktree, form one task whichever app they're in, including cloud chats matched to your checkout by repository name.
Will Pairbar delete my worktree or branch?
Only the worktree, and only if you tick Remove the worktree in a merged task's plan. It refuses while the worktree has uncommitted changes, never forces it and never deletes the branch, so Undo can add the worktree back.
Do I need the GitHub CLI?
For PR checks and for PRs Claude didn't record, yes: Pairbar uses your installed and logged-in gh. Without it, tasks still group your chats, just without checks.
Does archiving a task delete its chats?
No. Archiving only hides the task in the Tasks view. Its chats stay in the other groupings, and nothing is deleted.

Try Pairbar free for 7 days

One sidebar for the Claude and Codex desktop apps. Everything on for 7 days, no card needed; then $49/year ($39 first year with LAUNCH), $9/month or $129 lifetime (first 200 buyers). macOS 26 or later, Apple silicon.