The gemini provider dispatches tasks to Google Gemini using the gemini CLI and the Agent Client Protocol (ACP) over stdio. The Bridge spawns the gemini process with the task prompt, streams output via ACP events, and writes structured output files on completion.
Provider name: gemini
Gemini supports two authentication modes:
Option A — Gemini API key
GEMINI_API_KEY=AIza...Option B — gemini auth login (interactive machines)
gemini auth loginThis opens a browser Google OAuth flow and stores credentials locally. No env var needed — the CLI picks it up automatically.
Linux / macOS
npm install -g @google/gemini-cli
# verify
gemini --versionOn Linux without root npm access:
npm config set prefix ~/.localthen add~/.local/binto PATH.
Windows (PowerShell)
npm install -g @google/gemini-cli
gemini --versionAfter installing, log in once if you are not using an API key:
gemini auth login| Variable | Required | Default | Description |
|---|---|---|---|
GEMINI_API_KEY |
if no CLI login | — | Google AI Studio / Vertex API key |
GEMINI_TIMEOUT_MINUTES |
no | 10 |
Hard timeout per task |
AGENTS_FOLDER |
no | ~ |
Root directory where agent workspace folders are created |
Linux / macOS — API key
PAIRING_TOKEN=your_pairing_token \
PROVIDERS=gemini \
GEMINI_API_KEY=AIza... \
AGENTS_FOLDER=/home/user \
./ctrlnode-bridge-linux-x64Linux / macOS — CLI login
# Login once interactively
gemini auth login
# Then run the Bridge (no API key needed)
PAIRING_TOKEN=your_pairing_token \
PROVIDERS=gemini \
AGENTS_FOLDER=/home/ubuntu \
./ctrlnode-bridge-linux-x64Windows (PowerShell)
$env:PAIRING_TOKEN = "your_pairing_token"
$env:PROVIDERS = "gemini"
$env:GEMINI_API_KEY = "AIza..."
.\ctrlnode-bridge.exe.env file
PAIRING_TOKEN=your_pairing_token
PROVIDERS=gemini
GEMINI_API_KEY=AIza...
AGENTS_FOLDER=/home/ubuntuWhen the Bridge activates a task workspace, it automatically adds the workspace path to the Gemini trustedFolders.json configuration so the CLI does not prompt for trust confirmation mid-task.
- The Bridge spawns
geminias a subprocess for each task dispatch. - Communication happens over ACP (Agent Client Protocol) via stdin/stdout — the same protocol used by Copilot.
- Task events are forwarded to CTRL NODE in real time.
- On completion the Bridge writes an output markdown file and reports the final status.
PROVIDERS=gemini,claude-sdk
GEMINI_API_KEY=AIza...
ANTHROPIC_API_KEY=sk-ant-...