Gemini
RoboCo can run delivery agents on Google's Gemini CLI, authenticated by an OAuth login to your Google account rather than a metered API key — the same "subscription, not credits" posture as the Grok and Codex paths.
Gemini runs the developer/QA/documenter/PM delivery roles. It does not back the interactive Intake or Secretary chats — those stay on Anthropic even under the one-click Gemini mode, and an explicit per-agent pin to Gemini on either seat is refused at spawn. This is a deliberate V1 scope, not a bug.
Set it up once
Authenticate Gemini on the host with the official CLI's interactive login, then point RoboCo at the resulting directory:
1gemini # once, on the host — interactive OAuth login, creates ~/.geminiThen in .env:
1ROBOCO_HOST_GEMINI_DIR=/home/youruser/.gemini # the REAL host ~/.gemini to mount in2# ROBOCO_GEMINI_CLI_MODEL=gemini-2.5-pro # or gemini-2.5-flash / gemini-2.5-flash-liteFinally, on Settings → AI Providers, either click the Gemini mode button (whole fleet, delivery roles) or pin individual agents to a gemini-* model in Mix mode — see Choosing a provider for the full precedence ladder.
ROBOCO_HOST_GEMINI_DIR is mounted read-only at a staging path; the entrypoint copies it into a container-local, writable ~/.gemini so the CLI's own in-process token refresh can write back locally without ever touching your host credential. Google's refresh token, unlike Grok's or Codex's single-use one, is reusable — so each container can safely refresh its own copy independently. There is no orchestrator-side refresh loop for Gemini the way there is for Grok and Codex.
Guardrails via a policy file, not a CLI flag
The Gemini CLI has no CLI-flag equivalent to Grok's --disallowed-tools either. Tool scoping is expressed entirely through:
- A rendered TOML Policy Engine file (
~/.gemini/policies/roboco.toml) — deny-only rules keyed by tool name and command prefix. settings.jsonentries: headless OAuth auth mode, a fleet-wide subagent ban (experimental.enableAgents=false), and disabled auto-memory configuration.--approval-mode yolofor headless auto-approval, the same posture every provider's automated run needs.
Classified from the run's own structured result, not the transcript
Gemini has no dedicated CLI exit code for a quota/rate-limit hit, so RoboCo parses the run's own --output-format stream-json terminal error.type field and remaps it to the same park-and-resume signal Grok and Codex use — never the model's transcript prose. The CLI's own auth-failure exit code (41) passes straight through unmodified. Either condition parks the Gemini provider exactly like a Grok/Codex park, and the background probe-and-resume loop revives it once the condition clears.
Usage and cost still show up
Usage capture reads the run's own terminal result event for real per-model token counts — no session-file scraping — and prices each of the three GA models (gemini-2.5-pro / -flash / -flash-lite) at its own rate before folding into the same usage-tracking shape every other provider feeds. Gemini traffic lands on the same usage dashboard as Claude, Grok, and Codex.
Next
- Choosing a provider — the Gemini mode button, Mix-mode pins, and the full precedence ladder.
- Run on Grok and Run on Codex — the other two subscription-based CLI providers.
- What keeps a run alive — Gemini agents park-and-resume on a rate limit like any other provider.