Your AI assistant, but it can phone a friend — an MCP server that consults a council of other AI CLIs. Ban-safe (no API keys, no token extraction), local cost cap, and it ships the eval that tests its own claim.
claude mcp add cli-bridge-mcp -- uvx cli-bridge-mcp{
"mcpServers": {
"cli-bridge-mcp": {
"command": "uvx",
"args": ["cli-bridge-mcp"]
}
}
}MCP Servers overview
<!-- mcp-name: io.github.JoaoBerne/cli-bridge-mcp -->
<div align="center">
<img src="https://raw.githubusercontent.com/JoaoBerne/cli-bridge-mcp/main/assets/banner.gif" width="860" alt="cli-bridge — your assistant borrows the powers of every AI CLI you already have: huge-context reads, vision, parallel builds, cross-vendor checks">
**English** · [Français](docs/i18n/README.fr.md) · [简体中文](docs/i18n/README.zh-CN.md) · [Español](docs/i18n/README.es.md) · [Português (BR)](docs/i18n/README.pt-BR.md) · [日本語](docs/i18n/README.ja.md) · [Deutsch](docs/i18n/README.de.md)
</div>
# cli-bridge







**Your assistant is only as good as the one model you opened.** cli-bridge is a
[Model Context Protocol](https://modelcontextprotocol.io) server that lets it borrow the *other* AI
CLIs you already run — a bigger context, vision, a free second opinion from a *different vendor*, or a
delegated build that comes back as a reviewable diff.
> **No API keys · no token extraction · no Node · no daemon · stdlib + `mcp` only.**
### In one sentence
You're talking to one AI assistant. You've also installed and logged into others — Claude Code,
Codex, Gemini, opencode, Ollama. **cli-bridge connects them**: when your assistant needs something
it can't do alone, it asks one of the other CLIs and hands you the result.
### The problem it solves
Whatever assistant you're using has hard limits. It can't read a 2M-token repo in one pass, can't
see a screenshot, can't hand you a generated image, and can't check its own work without bias — but
*some other CLI on your machine can do each of those*. cli-bridge is the bridge between them: it
spawns the official CLI as a subprocess (exactly as you'd run it by hand — no keys, no token
extraction) and returns the answer to your assistant.
The result: one assistant whose ceiling on every axis is the *best* tool in your toolbox, not the
one you happened to open.
---
## The 10-second demo
You're in Claude. Claude can't hand you an image. Codex can — natively with `gpt-image-2`, or by
writing a script that renders one. For a precise layout like a social card, have it script and run it:
```
ask_build(lane="gpt", task="generate a 1200×630 social card to assets/card.png — write a script that renders it, then run it", zone="assets")
→ Codex writes assets/card.png · you get the path back, never a binary blob (artifact-return)
```
Your assistant just gained an ability it doesn't have. That's the whole idea — now scale it to
giant-context reads, vision, parallel grunt-work, and independent cross-vendor verification.
_(Codex generates the image with **`gpt-image-2`**, a real text-to-image model built into the CLI —
counted against your ChatGPT plan's usage, no separate API key (image generation needs a **paid**
plan; it's not on the Free tier). It comes back as a **path**, not a blob, because binaries travel by
artifact-return, not the text channel. A build lane can also *render* charts, diagrams or SVGs by
writing code, when that's the better fit.)_
### …and it delegates real work, safely
`cli-bridge build <lane> "<task>"` hands the job to another model running in a **throwaway git
worktree**, then gives you back a **diff** — your repo is never touched until you apply it yourself.
<p align="center">
<img src="https://raw.githubusercontent.com/JoaoBerne/cli-bridge-mcp/main/assets/demo-borrow.gif" width="860" alt="cli-bridge build: opencode adds a function in a throwaway worktree and returns a reviewable diff; the real repo stays clean">
</p>
---
## What you get — the four levers
cli-bridge isn't one feature, it's **four abilities your assistant gains**. Get these and every tool
below slots into place:
1. **Borrow** — reach a capability your assistant lacks (vision, a 1M-token context window, a file a
coding agent generates, a model that's simply better at *this*).
2. **Spread** — when one subscription hits its limit, keep going on another lane you already pay for.
3. **Offload** — fan laborious, parallel grunt-work across cheap/free lanes while you build elsewhere.
4. **Verify** — have a *different vendor family* check the work, because a model can't catch its own
blind spots. This is the one thing a single-vendor tool structurally cannot do.
---
## What this unlocks
Each block: one sentence of *when you reach for it*, the exact call, and *what you get back*.
### Borrow abilities your assistant doesn't have
Every CLI has a different superpower, and each runs non-interactively — so cli-bridge can spawn it.
Borrow the one your host lacks (it must be installed + logged in):
| Superpower | Which CLI has it | Borrow it when |
|------------|------------------|----------------|
| **Images** | Codex (`gpt-image-2`, **no API key** — paid ChatGPT plan, not Free) | your host can't draw |
| **Huge context** | Gemini (1M-token window) | a file/repo won't fit your host's context |
| **Fresh knowledge** | Gemini (Google-Search grounding) · Grok (live web/X) ⚗️ | beat a stale cutoff: *"what's the current API of `<lib>`?"* |
| **Vision** | `images=[…]` on Codex · opencode · Ollama · Apple · Gemini ⚗️ | analyse a screenshot or diagram |
| **A free second opinion** | opencode · Ollama · Apple (local, $0) · Gemini (scarce free tier) | a $0 cross-check |
| **Generated files** | any build lane → artifact-return | get a chart / PDF / diagram back **by path** |
| **Video** ⚗️ | Grok (Imagine) — *if your installed CLI exposes it* (Veo isn't exposed by any official Gemini CLI extension) | you need a generated clip |
```
ask_build(lane="gpt", task="generate a 1200×630 social card to assets/card.png", zone="assets") # Codex image → file by path, no API key (paid ChatGPT plan)
ask_gemini(task="find the bug across ./src — read the files you need", cwd="path/to/repo") # 1M-token context
ask_gemini(task="what's the current recommended API for <lib>? check the latest docs") # fresh knowledge (Search grounding)
ask_apple(task="what's wrong in this UI?", images=["screenshot.png"]) # vision, on-device, $0, offline
```
**Vision, honestly:** `images=[…]` is no longer one vendor's feature. Five lanes take it and each
lane declares its own shape as data, so you always just pass paths — an argv flag (`apple --image`,
`gpt -i`, `opencode -f`) or a path folded into the prompt (`gemini @path`, `ollama` bare); a sixth
lane is one field, not a code path. Caveat: whether the image is actually *read* depends on the
**model** behind the lane, not the lane — on the same test image one free model transcribed every
line and another answered *"model lacks vision"*. Full table in [`docs/TOOLS.md`](docs/TOOLS.md).
⚗️ = experimental / depends on the installed CLI's current build (e.g. Grok Build is beta) — verify with `doctor --deep`.
### Never stop working when you hit a limit
When your main subscription caps out mid-task. `ask_cascade` falls through to another lane you already
pay for, skipping any lane that's cooled down after a quota/auth/timeout error.
```
ask_cascade(task="finish wiring this endpoint") # cheapest→strongest; a cooled-down lane is skipped
ask_best(task="…", mode="deep") # let the router pick the most suitable available lane
```
### Offload the grunt work — in parallel, and cheap
When the work is laborious but not hard (refactors, migrations, test coverage). Fan it out, journaled
so a server restart resumes instead of restarting; delegate a build and keep working.
```
batch_run(tasks=[...], dry_run=true) # cost envelope first — nothing is spawned
batch_run(tasks=[...], max_calls=20, max_credits=2.0) # then run under a hard budget (resumable)
ask_build(lane="opencode", task="add the landing page", zone="frontend", mode="direct", async=true) # delegate, keep building
job_tail(job_id="…") · build_steer(job_id="…", instruction="use Tailwind, not inline CSS")
```
### Break self-confirmation — the 2026 problem one vendor can't solve
When you need to *trust* a result. A model reviewing its own work (or a sibling's) just confirms its
own blind spots. cli-bridge puts a **different model family** in the reviewer's seat.
```
workflow(preset="jury", task="is this migration safe?", author_lane="gpt") # cross-family vote, fail-closed
workflow(preset="verify_repair", task="add retry with backoff",
builder_lane="gpt", verifier_lane="gemini") # A builds, B reviews, loop to green
security_review(base="origin/main") · review_diff(base="origin/main") # OWASP, severity-ranked
```
### Get a real second opinion
When you've reached a conclusion and want it pressure-tested, or several models side by side.
```
challenge(task="I'm dropping the cache layer — here's why: …") # one skeptic attacks it
consensus(task="which migration strategy is safest here?") # N answer, peer-rank the best
workflow(preset="fanout_compare", task="fix this failing test", lanes=["gpt","gemini","opencode"])
```
---
## The toolbox
~30 tools, grouped by intent — the headline ones:
- **Consult** (read-only): `ask_<lane>` (one model), `ask_all` (every free lane in parallel + a disagreement score), `ask_cascade` (resilient fall-through), `ask_best` (router), `consensus`, `challenge`.
- **Build** (opt-in write): `ask_build` — `mode=isolated`→diff · `mode=direct`→zone-guarded · `async`→steerable, behind an executable Definition-What people ask about cli-bridge-mcp
What is JoaoBerne/cli-bridge-mcp?
+
JoaoBerne/cli-bridge-mcp is mcp servers for the Claude AI ecosystem. Your AI assistant, but it can phone a friend — an MCP server that consults a council of other AI CLIs. Ban-safe (no API keys, no token extraction), local cost cap, and it ships the eval that tests its own claim. It has 2 GitHub stars and was last updated today.
How do I install cli-bridge-mcp?
+
You can install cli-bridge-mcp by cloning the repository (https://github.com/JoaoBerne/cli-bridge-mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is JoaoBerne/cli-bridge-mcp safe to use?
+
JoaoBerne/cli-bridge-mcp has not been audited yet by our security agent. Review the original repository on GitHub before using it in production.
Who maintains JoaoBerne/cli-bridge-mcp?
+
JoaoBerne/cli-bridge-mcp is maintained by JoaoBerne. The last recorded GitHub activity is from today, with 0 open issues.
Are there alternatives to cli-bridge-mcp?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy cli-bridge-mcp to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/joaoberne-cli-bridge-mcp)<a href="https://claudewave.com/repo/joaoberne-cli-bridge-mcp"><img src="https://claudewave.com/api/badge/joaoberne-cli-bridge-mcp" alt="Featured on ClaudeWave: JoaoBerne/cli-bridge-mcp" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!