Skip to content

Guide

Set up agent profiles for second opinions, reviews and helper chats

Pairbar is a macOS app that lays one sidebar over the native Claude and Codex desktop apps, and it can start helper chats, second opinions and reviews when a chat asks for one. A profile is the preset for those chats: which app, which model and effort, what it may do, and when to use it. A chat names a profile (profile: "Implementer") and Pairbar fills in the rest, so chats never copy model names around, and changing a profile changes every later request that names it. Pairbar starts with five.

Last updated

About 5 minutes · 5 steps

Before you start

Steps

  1. Open Profiles
    Settings → Integrations → Profiles. Each profile has one line (app, model, effort, what it may do, cost) and when to use it.
  2. Check the defaults
    The five defaults are in the table below. Second opinions use Second opinion and reviews use Deep reviewer unless the chat names another; start_chat uses a profile only when it names one.
  3. Edit a profile
    Edit shows the name, then labelled options for the app, model, effort, what it may do, cost and agent, when to use it, and its skills. Each option shows its current value; Change… opens the choices, and Cancel discards the draft. A profile can name a Claude Code agent whose instructions come first, and skills its chats should use.
  4. Add your own
    Add profile (up to 30), for example a "Docs checker" on Claude with the small model that reads files only. Write when to use it plainly: agents read it in status to pick a profile.
  5. See it on the next request
    The approval sheet names the profile a request uses. If a profile no longer fits, Reset to the five defaults puts them back.

The five default profiles

ProfileApp · model · effortWhat it may doWhen to use it
Deep reviewerClaude · the strongest model · highread-onlyreviews of risky diffs, architecture critique, security reasoning
ImplementerCodex · the default model · mediumcan edita well-specified change with tests to run, best in a new worktree
Second opinionthe other app · the strongest model · highreads files onlyan independent view on a decision, from the other model family
Scoutwhichever app has more plan left · the small, fast model · lowreads files onlya quick look-up: where X is handled, summarise a log
WriterClaude · the default model · mediumcan editdocs, PR descriptions, release notes

The model is a tier Pairbar picks from the app's own list (Claude's default is its strongest; Codex's is its first listed model; the small one is Claude's Haiku or Codex's "mini"), or an exact model you choose.

How a request is filled in

  1. What the request says itself wins: its app, model and effort (checked against the apps' lists), and its access.
  2. Then the profile it names, else the tool's own: Second opinion for second_opinion, Deep reviewer for request_review.
  3. Second opinions and reviews always go to the other app than the asking chat's, whatever the profile's app. When the other app has less plan left than Keep this much of each plan for you and the asking chat's app has enough, the asking chat's app answers with its strongest model, and the ticket says so.
  4. A profile's access is a default, capped at what the asking chat may do itself. An access the request asks for itself is never lowered quietly: above the chat's own, it's refused (no_escalation).

Where profiles are kept

In ~/.config/pairbar/profiles.json, readable only by you, once you change one of the defaults. A file that doesn't read back is kept aside as profiles.json.corrupt-<date> and the defaults are used. The workflow planner is told your profiles too, and gives a step that fits one that profile's app, model and effort.

Troubleshooting

A review ran on Codex although Deep reviewer says Claude
Reviews and second opinions always go to the other app than the asking chat's. From a Claude chat, the review runs on Codex with the profile's model tier and effort.
The answer came from the same app as the asking chat
The other app had less plan left than Keep this much of each plan for you, so the asking chat's own app answered with its strongest model. The ticket says so.
A request naming Implementer was refused with `no_escalation`
The chat asked for edit itself, above what it may do (for example a Claude chat in plan mode). Without an explicit access, the profile's access would have been capped to the chat's own instead.
My profiles went back to the defaults
profiles.json didn't read back. Pairbar kept it aside as profiles.json.corrupt-<date> in ~/.config/pairbar; fix or re-create your profiles in Settings.

Frequently asked questions

Do agents see my profiles?
Yes. status lists each profile's name, app, model, effort, access and when to use it, so a chat can pick one by name.
Can a profile use a Claude Code agent?
Yes. A profile can name a Claude Code agent whose instructions come first, and skills its chats should use.
How many profiles can I have?
Up to 30. Reset to the five defaults puts back Deep reviewer, Implementer, Second opinion, Scout and Writer.

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.