When codex-plugin-cc dropped, my first thought was - I need this for Gemini. So I built it.
It’s derived from openai/codex-plugin-cc, but adapted for Gemini CLI’s ACP path instead of Codex app-server.
That protocol difference is basically the whole story.
The idea
What I liked about codex-plugin-cc wasn’t just that Claude could call another model. It was that the integration felt real. Not like a thin wrapper, not like a shell-out glued onto a prompt, but like an actual runtime boundary.
I wanted that same kind of integration for Gemini.
How the Gemini side works
In this plugin, the Gemini side is more session-oriented:
- spawn
gemini --acp(or--experimental-acpon older CLI versions) - initialize
- create or load a session
- set mode / model
- send prompts
- stream
session/update - handle filesystem / permission callbacks
- cancel when needed
Compared to Codex app-server, it’s a thinner protocol surface. That means more of the workflow logic ends up living in the plugin.
For example, review in this repo is implemented on top of the generic ACP task flow rather than through a native review protocol primitive.
What it does
Current commands:
/gemini:review/gemini:adversarial-review/gemini:task/gemini:rescue/gemini:status/gemini:result/gemini:cancel
So the plugin is meant to cover three main use cases:
- review
- arbitrary task delegation
- rescue / investigation work
Why I built it this way
I mostly didn’t want to make “yet another wrapper.”
If I was going to do this, I wanted the transport/runtime part to be the interesting part.
ACP gave me a better fit for:
- streamed progress
- explicit session handling
- callbacks for file access / permissions
- background-style task flows
- cancellation
Built with Claude Code + Codex
I built the whole thing with Claude Code + Codex, which felt appropriately silly.
Anyway, if you want to try it:
Top comments (0)