Research Council
A Claude Code plugin that orchestrates deep research across two coding agents — Claude Code and Codex CLI (OpenAI) — running in parallel with cross-pollination refinement and final synthesis.
Note: Gemini CLI was previously included as a third agent but was removed due to persistent flakiness — frequent quota errors, sandbox limitations requiring workarounds, and an internal retry loop that hangs indefinitely on rate limits. The two-agent setup (Claude + Codex) is more reliable and still produces high-quality cross-pollinated research.
How it Works
Run the /research-council:deep-research slash command inside Claude Code:
/research-council:deep-research Next.js vs SvelteKit for production web apps in 2026: performance, DX, ecosystem maturity, and deployment options
In some setups, the unqualified alias /deep-research may also work. Prefer the namespaced form above for consistency.
Each agent uses the most powerful model from its provider with thinking/reasoning turned all the way up (see Models Used). A --test flag is available that swaps in small, cheap models for testing the pipeline.
The plugin runs a 3-phase pipeline:
- Independent Research — Both agents research the topic simultaneously, each iterating with web searches until they're satisfied with depth and coverage
- Cross-Pollination Refinement — Each agent reads both reports and refines its own, using the other as a springboard for new investigation (not copying). Agents are prompted to be skeptical — they independently verify peer claims via web search rather than accepting them at face value
- Synthesis — Claude reads all refined reports and produces a single final report organized by theme
The key step is cross-pollination. Different AI providers have different training data, search behaviors, and analytical tendencies. When Agent A reads Agent B's report it provides an opportunity to discover angles it missed, contradictions to resolve, and gaps neither agent independently covered. This produces research that's substantially deeper than any single agent could achieve alone, or than simply merging two independent reports.
flowchart TD
A["/research-council:deep-research <topic>"] --> B["Phase 1: Independent Research"]
subgraph Phase1["Phase 1 — Independent Research"]
direction LR
C1["Claude researches topic"]
C2["Codex researches topic"]
end
B --> C1 & C2
C1 --> R1["claude-report.md"]
C2 --> R2["codex-report.md"]
R1 & R2 --> D["Phase 2: Cross-Pollination"]
subgraph Phase2["Phase 2 — Cross-Pollination Refinement"]
direction LR
D1["Claude reads both, refines"]
D2["Codex reads both, refines"]
end
D --> D1 & D2
D1 --> E1["claude-refined.md"]
D2 --> E2["codex-refined.md"]
E1 & E2 --> F["Phase 3: Synthesis"]
subgraph Phase3["Phase 3 — Final Synthesis"]
F1["Claude synthesizes all refined reports"]
end
F --> F1
F1 --> G["final-report.md"]
Prerequisites
You need both coding CLIs installed and authenticated:
Claude Code
# Should already be installed if you're reading this
claude --version
Codex CLI (OpenAI)
npm install -g @openai/codex
codex login
jq (JSON processor)
# macOS
brew install jq
# Linux
sudo apt install jq
Installation
From the command line
claude plugin marketplace add hamelsmu/research-council
claude plugin install research-council@research-council
From within Claude Code
/plugin marketplace add hamelsmu/research-council
/plugin install research-council@research-council
Upgrading
claude plugin update research-council@research-council
Manual installation (for development)
git clone https://github.com/hamelsmu/research-council.git
# Then in Claude Code:
claude --plugin-dir /path/to/research-council
Usage
Full research (production models, up to 10 iterations per agent)
/research-council:deep-research What are the leading approaches to nuclear fusion energy and how close are they to commercialization?
Test mode (cheap models, 2 iterations — for testing the pipeline)
/research-council:deep-research --test What is the history of the Panama Canal?
Cancel an active session
/research-council:cancel-research
Monitor progress
While research is running, Claude's UI shows a spinner. Open another terminal to watch progress:
tail -f research/*/progress.log
Output
Reports are saved to research/<id>/: