Use Gemini from inside Claude Code for code reviews or to delegate tasks without leaving your existing /gemini:* workflow.
This plugin is for Claude Code users who want Gemini to be both the provider and the visible command surface inside Claude Code.
The repository and marketplace source slug may still contain codex-plugin-cc as a historical identifier, but the supported provider, runtime, and slash-command surface in this project are all Gemini for Claude Code.
/gemini:reviewfor a normal read-only Gemini-backed review/gemini:adversarial-reviewfor a steerable challenge review/gemini:rescue,/gemini:status,/gemini:tail,/gemini:result, and/gemini:cancelto delegate work and manage background jobs
- Gemini CLI access.
- Supported paths include signing into Gemini CLI with a Google account or providing
GEMINI_API_KEY/GOOGLE_API_KEY.
- Supported paths include signing into Gemini CLI with a Google account or providing
- Node.js 18.18 or later
Add the marketplace in Claude Code:
/plugin marketplace add ByteLandTechnology/gemini-ccInstall the plugin:
/plugin install gemini@gemini-ccByteLandTechnology/gemini-cc is the repository slug, while gemini-cc is the published marketplace name for this plugin and is declared in the repository-root .claude-plugin/marketplace.json.
Reload plugins:
/reload-pluginsThen run:
/gemini:setup/gemini:setup will tell you whether Gemini is ready. If Gemini CLI is missing and npm is available, it can offer to install Gemini for you.
If you prefer to install Gemini yourself, use:
npm install -g @google/gemini-cliIf Gemini CLI is installed but not authenticated yet, run:
geminiThen complete /auth, or set GEMINI_API_KEY / GOOGLE_API_KEY before rerunning /gemini:setup.
After install, you should see:
- the slash commands listed below
- the
gemini:rescuesubagent in/agents
One simple first run is:
/gemini:review --background
/gemini:status
/gemini:resultnpm run verify
npm run check
npm run validate:claude
npm run release:check
npm run release:bundle
npm run release:fullnpm run verify is the main maintainer preflight command and runs the test suite, the repository type-check, and release metadata validation.
npm run check is kept as an alias for npm run verify.
npm run release:auto -- --json previews the next automatic release by looking at Conventional Commits since the latest v* tag.
npm run validate:claude runs Claude's local marketplace validator against the repository root when Claude Code is installed locally.
npm run release:full runs the full local release preflight: verify, Claude validation, and release bundle staging.
npm run build type-checks the shipped runtime scripts and the checked-in release tooling. Running /gemini:* commands still requires a working Gemini CLI install and authentication state.
npm run release:bundle writes the staged marketplace bundle to dist/release/gemini-cc-v<version>/, plus a tarball, SHA-256 checksum, release notes, and a release manifest in dist/release/.
The release checklist is documented in RELEASE.md.
Release automation:
- Pull requests run
npm run verify. - Pushes to
maininspect Conventional Commits since the latestv*tag. feat:bumps the next release minor,fix:bumps patch, and anyBREAKING CHANGEortype!:bumps major.- When a release is needed, CI updates the checked-in version files plus
plugins/gemini/CHANGELOG.md, commitschore(release): v<version>, tagsv<version>, and pushes both back to GitHub. - The resulting
v*tag run rebuilds the bundle and publishes the GitHub Release assets.
Runs a normal Gemini-backed review on your current work.
Note
Code review especially for multi-file changes might take a while. It's generally recommended to run it in the background.
Use it when you want:
- a review of your current uncommitted changes
- a review of your branch compared to a base branch like
main
Use --base <ref> for branch review. Use --scope working-tree to force an uncommitted review or --scope branch to compare against the detected default branch. It also supports --scope auto, --wait, --background, and --stream. --stream forces foreground execution, conflicts with --background, and prints raw Gemini text as it arrives through the direct command path instead of the buffered tool wrapper. It is not steerable and does not take custom focus text. Use /gemini:adversarial-review when you want to challenge a specific decision or risk area.
Examples:
/gemini:review
/gemini:review --base main
/gemini:review --scope working-tree
/gemini:review --stream
/gemini:review --backgroundThis command is read-only and will not perform any changes. When run in the background you can use /gemini:status to check on the progress and /gemini:cancel to cancel the ongoing task.
Runs a steerable review that questions the chosen implementation and design.
It can be used to pressure-test assumptions, tradeoffs, failure modes, and whether a different approach would have been safer or simpler.
It uses the same review target selection as /gemini:review, including --base <ref> for branch review and --scope auto|working-tree|branch for explicit target selection.
It also supports --wait, --background, and --stream. --stream forces foreground execution, conflicts with --background, and prints raw Gemini text as it arrives through the direct command path instead of the buffered tool wrapper. Unlike /gemini:review, it can take extra focus text after the flags.
Use it when you want:
- a review before shipping that challenges the direction, not just the code details
- review focused on design choices, tradeoffs, hidden assumptions, and alternative approaches
- pressure-testing around specific risk areas like auth, data loss, rollback, race conditions, or reliability
Examples:
/gemini:adversarial-review
/gemini:adversarial-review --stream
/gemini:adversarial-review --base main challenge whether this was the right caching and retry design
/gemini:adversarial-review --scope branch look for rollback and migration risks
/gemini:adversarial-review --background look for race conditions and question the chosen approachThis command is read-only. It does not fix code.
Hands a task to Gemini through the gemini:rescue subagent.
Use it when you want Gemini to:
- investigate a bug
- try a fix
- continue a previous Gemini session
- take a faster or cheaper pass with a smaller model
Note
Depending on the task and the model you choose these tasks might take a long time and it's generally recommended to force the task to be in the background or move the agent to the background.
It supports --background, --wait, --stream, --resume, and --fresh. --stream forces foreground execution, conflicts with --background, bypasses the gemini:rescue subagent, and prints raw Gemini text as it arrives through the direct command path. If you omit --resume and --fresh, the plugin can offer to continue the latest rescue thread for this repo.
Examples:
/gemini:rescue investigate why the tests started failing
/gemini:rescue fix the failing test with the smallest safe patch
/gemini:rescue --stream investigate why the tests started failing
/gemini:rescue --resume apply the top fix from the last run
/gemini:rescue --model pro --effort medium investigate the flaky integration test
/gemini:rescue --model flash fix the issue quickly
/gemini:rescue --background investigate the regressionYou can also just ask for a task to be delegated to Gemini:
Ask Gemini to redesign the database connection to be more resilient.
Notes:
- if you do not pass
--modelor--effort, Gemini CLI chooses its own defaults. - if you say
spark, the plugin maps that toflashfor compatibility - follow-up rescue requests can continue the latest Gemini session in the repo
Shows running and recent Gemini jobs for the current repository.
It also supports --all, --wait, and --timeout-ms <ms> when you want to inspect older jobs or block until a specific job settles.
Examples:
/gemini:status
/gemini:status task-abc123
/gemini:status --allUse it to:
- check progress on background work
- see the latest completed job
- confirm whether a task is still running
Shows the stored job log for a Gemini run, with an optional live follow mode for background work. If you do not pass a job id, it prefers the latest active job for the current Claude session.
Examples:
/gemini:tail
/gemini:tail task-abc123
/gemini:tail --follow
/gemini:tail task-abc123 --follow --lines 80Use it to:
- inspect the live log for a background review or rescue run
- keep following appended output until the job finishes
- look back at tool progress, reasoning summaries, and final output blocks without opening the log file manually
Shows the final stored Gemini-backed output for a finished job.
When available, it also includes the current session ID plus a supported Gemini resume command such as gemini --resume latest or gemini --resume <session-id>.
Examples:
/gemini:result
/gemini:result task-abc123Cancels an active background Gemini job.
Examples:
/gemini:cancel
/gemini:cancel task-abc123Checks whether Gemini CLI is installed and authenticated. If Gemini CLI is missing and npm is available, it can offer to install Gemini for you.
You can also use /gemini:setup to manage the optional review gate.
/gemini:setup --enable-review-gate
/gemini:setup --disable-review-gateWhen the review gate is enabled, the plugin uses a Stop hook to run a targeted Gemini review based on Claude's response. If that review finds issues, the stop is blocked so Claude can address them first.
Warning
The review gate can create a long-running Claude/Gemini loop and may drain usage limits quickly. Only enable it when you plan to actively monitor the session.
/gemini:review/gemini:rescue investigate why the build is failing in CI/gemini:adversarial-review --background
/gemini:rescue --background investigate the flaky testThen check in with:
/gemini:status
/gemini:resultThe plugin now wraps Gemini CLI in headless mode. It uses the global gemini binary installed in your environment and exposes Gemini-native slash commands inside Claude Code.
Use Gemini CLI configuration, environment variables, and model flags for provider-level control. The plugin preserves --stream, --model, and --effort rescue flags through the companion runtime, and forwards model and effort selection on to Gemini CLI.
Delegated tasks and any review-gate run can also be resumed inside Gemini with the exact gemini --resume ... command shown by /gemini:result or /gemini:status.
No separate plugin-specific account is required. The plugin uses your local Gemini CLI authentication state and environment.
No. This plugin delegates through your local Gemini CLI on the same machine.
That means:
- it uses the same Gemini install you would use directly
- it uses the same local authentication state
- it uses the same repository checkout and machine-local environment
Yes. Because the plugin uses your local Gemini CLI, environment-based authentication such as GEMINI_API_KEY, GOOGLE_API_KEY, and GOOGLE_APPLICATION_CREDENTIALS still applies.
This project is derived from codex-plugin-cc by OpenAI, licensed under the Apache License 2.0.
Modifications and Gemini integration by ByteLand Technology Limited.