A Claude Code plugin that locks your documents in a dual-LLM review vise. Claude acts as the Primary Architect, Google's Gemini CLI acts as a Staff Engineer Reviewer, and they iterate back and forth until the design converges.
Like a craftsman's vise that holds a workpiece rigid while precision tools are applied, the append-only debate ledger prevents the LLMs from hallucinating or drifting while they hammer out architectural flaws.
The Gemini CLI authenticates via your Google account (OAuth), not API keys. If you have a Gemini subscription or access through Google One, the CLI uses that entitlement directly — no separate API billing, no per-token charges. This makes Vise essentially free to run on the reviewer side.
- Claude Code installed
- Python 3.9+
- Google Gemini CLI installed and authenticated:
npm install -g @google/gemini-cli gemini # run once interactively to complete OAuth - Verify Gemini works headlessly:
If that fails, check your auth or set
echo hi | gemini -m gemini-3-pro-preview -p ""
GEMINI_MODELto a working model ID.
From inside a Claude Code session:
/plugin marketplace add brooksc/vise
/plugin install vise@vise
/reload-plugins
Verify the skill is available by typing /vise: — you should see review in the autocomplete.
/vise:review spec.md # 3 debate cycles (default)
/vise:review docs/design.md 5 iterations # 5 cycles
Each cycle:
- Claude reads the doc, drafts changes, and posts questions to a debate ledger
- The bridge pipes the doc + ledger to
gemini -m gemini-3-pro-preview -p "..." - Gemini's review is appended to the ledger
- Claude reads Gemini's feedback, decides whether to accept or counter-argue, and loops
The loop stops when:
- Gemini signals
[NO_FURTHER_FEEDBACK](natural convergence) - The cycle cap is reached (Claude tie-breaks)
- Claude declares
[CONVERGENCE_ACHIEVED]
A .vise/ directory is created next to each target document:
docs/
├── design.md # your document
└── .vise/
├── design.discussion.md # the debate ledger
└── design.lock # advisory lock (never deleted)
Add .vise/ to .gitignore unless you want the debate ledgers committed.
| Env var | Default | Purpose |
|---|---|---|
GEMINI_MODEL |
gemini-3-pro-preview |
Override the Gemini model ID |
The plugin consists of two files in plugins/vise/skills/review/:
SKILL.md— The orchestration prompt that tells Claude how to run the debate loop, interpret exit codes, and manage the ledger.vise_bridge.py— A Python script that handles file I/O, pipes context to the Gemini CLI via stdin, enforces the cycle cap, detects convergence signals, and manages advisory locks.
/plugin uninstall vise@vise
/plugin marketplace remove vise
MIT