Introducing /external-advisor: A Second Opinion from GPT, Gemini and Grok Inside Claude Code | Mridul Kumar

Introducing /external-advisor: A Second Opinion from GPT, Gemini and Grok Inside Claude Code

14 September, 20269 minutes read
TL;DR
  • The problem Claude reviewing Claude’s code shares Claude’s blind spots. Same weights, same misses.
  • The fix A skill that runs a model from a different lineage over the same work: GPT, Gemini, Grok or Composer.
  • No API key It drives the Cursor, Antigravity or Codex CLI you already pay for, in read-only mode.
  • Four modes Critique what Claude just did, review a diff or a PR, argue through a decision, or research with sources.

Why /advisor Wasn't Enough

Claude reviewing Claude's code is grading its own homework. The same habits that wrote the bug are the ones reading it back, so it looks fine both times.

Claude Code has a built-in tool for this, /advisor. It pairs your main model with a second, usually stronger one and consults it at key decision points. I use it and it's worth turning on, but it can't fix the homework problem.

Every Advisor Is Still a Claude

The advisor has to be at least as capable as your main model, and every model that qualifies is a Claude. Sonnet with an Opus advisor gets you a bigger model from the same family, carrying the same blind spots. You get more capability out of that, but the assumptions don't move, and those were what I needed to change.

It Reads Your Whole Conversation

The advisor always gets the full transcript, including every step of the reasoning that produced the code. Mid-task that's the right call, since it needs to know what you've already tried. For review it works against you, because a reviewer who's read your transcript ends up grading the argument rather than the code.

It Comes Without Tools

The advisor runs on Anthropic's infrastructure and hands back guidance, and that's the whole surface. Shelling out to a CLI gets you a second agent with a toolbox instead, one that reads your files directly and searches the web with whatever that vendor ships. Codex's search defaults to what OpenAI calls cached mode, running against “an OpenAI-maintained index”. None of that was mine to set up.

Built-in /advisor/external-advisor
Who advisesFable, Opus or SonnetGPT, Gemini, Grok, Composer
Constraintmust be ≥ as capable as the main modelany model, any lineage
What it readsthe full conversation, alwaysper mode: transcript, or only the diff
What tools it haswhatever Anthropic runs it withthe harness’s own: files, web, subagents
Who triggers itClaude decides, or you askyou do, explicitly
Where it runsserver-side, Anthropic APIa local CLI
What it coststokens or usage creditsyour existing Cursor / Google / OpenAI plan

I still use /advisor, and this for an extra layer of coverage.


Four Ways to Ask

How much of your context to send changes with the job. Too little and the model can't help; too much and it just agrees with you.

MODE SELECT

Critiques the work your agent just did

WHAT IT SEES

  • +The session transcript, distilled automatically
  • +Your visible messages and every tool call
  • +The repository

WHAT IT NEVER SEES

  • Claude’s internal reasoning. Thinking blocks are stored with the text stripped, so it never leaves your machine.

SAY THIS TO CLAUDE

sanity-check the generated plan with /external-advisor, advise modedouble check what we just built, use /external-advisor

Naming the mode is the reliable way in, but you don't have to. Claude reads the request, picks a mode, and tells you which one it went with. So these work too:

double check this claim before it goes in, use /external-advisortake a look at this diff, use /external-advisoris there a better option for this section? use /external-advisorlook up the breaking changes in react router 8, use /external-advisor

What Actually Happens When You Ask

The skill is a Node script Claude shells out to. It builds a briefing on disk, runs one of your local CLIs against it, and hands back a JSON envelope. There’s no daemon and no API key, just the CLI login you already have.

ONE RUN, END TO ENDCLICK ANY STEP
PACKET

The briefing is written to disk

The runner writes one packet file, then hands the CLI only its path.

runs/portfolio-v2-417eb5a7/2026-09-07T09-12-40-1x5fd4df-review/packet.md
  • The briefing itself never goes on the command line, only the path to it.
  • The exact input stays on disk, so you can read what the model was asked.
  • The agent reads your repository directly too.
PRIVACY

Whatever lands in that packet goes to the provider behind the CLI you picked, Google for Antigravity or OpenAI for Codex. Both keep a copy. In advise mode the packet is your session, so it’s worth knowing before the first run.


What It Looks Like in Practice

Okay, now the fun part. Ask Claude to review a PR with the external advisor and it does both. The external run starts in the background first, and Claude does its own pass over the diff while that one thinks.

That order keeps the two reviews independent. Reading the other model’s findings first would anchor Claude to them.

Here’s it working on this very section. Two advisors, and GPT catching a scope problem Gemini missed.

Claude Makes the Call

When the answer comes back it doesn’t go straight into the chat. Cross-model review has a high false-positive rate, and a confident finding about a call site or a missing guard is often refuted by two minutes of reading the actual file. So Claude treats every finding as a claim rather than a fact, and tells you which ones it checked and which are the advisor’s word alone.

found by bothhigh confidence, act on it
only the external modelcheck it against the files before relaying it
only Claudekeep it, the advisor has blind spots of its own

When a file you’ve already checked contradicts the answer, Claude can reopen that same advisor session with resume and push back, instead of briefing a fresh run from scratch.


Adding Your Own Harness

Cursor, Antigravity and Codex are in there because those are the accounts I had. Nothing stops you adding another. It means answering a few questions about that CLI: how to run it read-only, how to hand it the request, and how to read the reply. The shortest of the three I wrote came to 58 lines. OpenCode, Gemini CLI and Amp are the ones I’d try next.

None of the safety is part of that job. The write guard, the throwaway checkout and the timeouts sit above whatever you plug in, so anything new gets them for free. It can’t skip the check for whether your files moved, because it was never the thing running that check.


Getting It Running

You need Node, and at least one of the three CLIs signed in. The runner itself has no dependencies, just Node’s standard library.

Install
git clone https://github.com/alphainfinitus/claude-code-external-advisor
cd claude-code-external-advisor
./install.sh

The script drops the skill into place and runs a health check. If you haven’t got any of the three CLIs yet, it prints the install line for each one.

Then, in Claude Code, once: set up the external advisor. It walks you through picking a model for each mode, says what advise sends to the vendor before you use it, and writes the config. From then on you just ask.

Thanks for reading. I hope it’s helpful in your own endeavours.

References

THE PROJECT

THE HARNESSES IT DRIVES

CLAUDE CODE

What each CLI’s read-only mode actually blocks is vendor behaviour, and it changes between releases. Run doctor to see what the skill currently measures on your own machine.

GIFs via Tenor.