danzerzine/claude-council

A Claude Code mod that brings a second model into your chat when the first one gets tired, stuck or sloppy.
danzerzine/claude-council

Second opinions inside Claude Code: GPT as fresh eyes when you go in circles, Codex acceptance of every handover, and Codex+Claude review of each change.
Check the author's README for the marketplace and plugin name first. Commands may change as the repository evolves.
claude plugin marketplace add danzerzine/claude-council claude plugin install council
A Claude Code mod that brings a second model into your chat when the first one gets tired, stuck or sloppy.

A row above the prompt:
| Control | What it does |
| --- | --- |
| off / acceptance / review / review all | what runs after each turn: nothing; Codex acceptance of every handover; Codex and Claude bug review of every change; review of long answers with no edits too |
| fresh eyes | your next message goes to GPT as the question |
| deep review | the next change goes to Codex, Claude Opus and Gemini, once |
| whole exchange | the last fresh-eyes exchange in a side pane |
| ? | a short help under the band |
| hide | hides the band; /council show brings it back |
While a brief is written, GPT thinks or a reviewer checks, the band shows a spinner with a seconds counter, so you can tell the work is moving.
You need Claude Code 2.1.286 or later (mods, that is, function hooks) and the reviewers you plan to use on your PATH:
codex), signed in: fresh eyes, acceptance, review;claude): review;agy) for Gemini.git clone https://github.com/danzerzine/claude-council ~/claude-council
claude --plugin-dir ~/claude-council
To load it in every session, the desktop app included, add it to the env block of ~/.claude/settings.json:
{ "env": { "CLAUDE_CODE_PLUGIN_DIRS": "/Users/you/claude-council" } }
Everything starts off. Pick a mode in the band or with a command.
/council show the current mode
/council off|accept|auto|always after-turn checks (kept across sessions)
/council deep deep review for the next change only
/council ask <question> fresh eyes on a question
/council hide | show hide or bring back the band
/council lang en|ru interface language (English by default)
Fresh eyes asks the main agent, through a fork of the current chat, for a brief of up to 900 words: the goal as you first stated it, where the work went, what was tried and dropped, short verbatim samples of the real data, the measured numbers, and absolute paths to the project, its data and its logs. GPT runs read-only with live web search, opens what the brief points to and writes its answer for a human. The mod pastes that answer into the chat as a message and asks the agent to sort it without changing anything yet. When the agent's turn ends, its answer goes back to GPT; GPT's reply is pasted in turn, and the agent sums up.
Acceptance and review hook the end of the agent's turn (classic.Stop). Acceptance fires when the turn edited files, committed, or says it is done ("done", "fixed", "ready"…); review fires on edits and commits. The packet holds your messages (for acceptance, all of them in this chat, since the spec often sits several messages back), the agent's report and git diff HEAD for every touched file, capped at 40,000 characters. Reviewers run read-only: codex exec -s read-only and claude -p --permission-mode plan with a $2 budget ($4 for Opus). They answer with JSON findings:
A turn is checked at most twice (three times in deep review), so a disagreement can't loop forever.
GPT's answers and the reviewers' findings reach the agent marked as quotes from another model, not as your instructions: it checks them and never runs a command found in them. Briefs, answers and exchanges are kept in ~/.claude/council (readable by you only) for 14 days.
Reviewers run with COUNCIL_REVIEWER=1, and the mod stays quiet in any session that has it, so a reviewer's own Claude never reviews itself. It also does nothing in non-interactive claude -p runs.
? button.A review takes 20–90 seconds, mostly Codex. Fresh eyes takes a few minutes and runs in the background between turns. Both use your own Codex and Claude subscriptions or API keys.
cd ~/claude-council
claude plugin validate .
For type checking, run /plugin-types . once in Claude Code to write the API types into .claude/types, then npx -p typescript tsc -p ..
MIT