molecule-core/docs/tutorials/gemini-cli-runtime.md
devops-engineer 55689e0b10
Some checks failed
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 16s
Check merge_group trigger on required workflows / Required workflows have merge_group trigger (pull_request) Successful in 22s
CI / Detect changes (pull_request) Successful in 24s
E2E API Smoke Test / detect-changes (pull_request) Successful in 20s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 21s
pr-guards / disable-auto-merge-on-push (pull_request) Failing after 9s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 44s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 38s
Runtime PR-Built Compatibility / detect-changes (pull_request) Successful in 35s
Harness Replays / detect-changes (pull_request) Successful in 44s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 27s
Ops Scripts Tests / Ops scripts (unittest) (pull_request) Successful in 56s
CodeQL / Analyze (${{ matrix.language }}) (go) (pull_request) Failing after 2m1s
CodeQL / Analyze (${{ matrix.language }}) (javascript-typescript) (pull_request) Failing after 2m34s
CodeQL / Analyze (${{ matrix.language }}) (python) (pull_request) Failing after 2m34s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 23s
Harness Replays / Harness Replays (pull_request) Failing after 1m12s
Runtime PR-Built Compatibility / PR-built wheel + import smoke (pull_request) Successful in 2m51s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Failing after 5m37s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 6m15s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 6m34s
CI / Python Lint & Test (pull_request) Successful in 8m20s
CI / Canvas (Next.js) (pull_request) Successful in 9m46s
CI / Canvas Deploy Reminder (pull_request) Has been skipped
CI / Platform (Go) (pull_request) Failing after 13m23s
fix(post-suspension): migrate github.com/Molecule-AI refs to git.moleculesai.app (Class G #168)
The GitHub org Molecule-AI was suspended on 2026-05-06; canonical SCM
is now Gitea at https://git.moleculesai.app/molecule-ai/. Stale
github.com/Molecule-AI/... URLs return 404 and break tooling that
clones / pip-installs / curls them.

This bundles all non-Go-module URL fixes for this repo into a single PR.
Go module path references (in *.go, go.mod, go.sum) are out of scope
here -- tracked separately under Task #140.

Token-auth clone URLs also flip ${GITHUB_TOKEN} -> ${GITEA_TOKEN} since
the GitHub token does not auth against Gitea.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 13:08:15 -07:00

2.8 KiB

Running a Gemini CLI Workspace on Molecule AI

Molecule AI now ships a gemini-cli runtime adapter alongside the existing claude-code adapter. This tutorial walks you from zero to a running Gemini agent workspace in under five minutes.

What you'll need

  • A Molecule AI account with at least one provisioned tenant
  • A Google GEMINI_API_KEY (get one at aistudio.google.com)
  • The Molecule AI CLI (pip install molecule-ai)

Setup (10 steps)

# 1. Install / upgrade the CLI
pip install --upgrade molecule-ai

# 2. Authenticate
molecule auth login

# 3. Store your Gemini API key as a global secret
molecule secrets set GEMINI_API_KEY="YOUR_KEY_HERE" --global

# 4. Create a gemini-cli workspace
molecule workspace create my-gemini-agent --runtime gemini-cli

# 5. Confirm it's running (status → "ready" within ~30 s)
molecule workspace status my-gemini-agent

# 6. Send your first task
molecule workspace run my-gemini-agent "Summarise the last 5 git commits in this repo"

# 7. View the streamed response
molecule workspace logs my-gemini-agent --follow

# 8. Check the agent's memory file (GEMINI.md)
molecule workspace exec my-gemini-agent cat GEMINI.md

# 9. Delegate a cross-workspace task to your new Gemini peer
molecule workspace run orchestrator "delegate_task my-gemini-agent 'Draft release notes for v1.4'"

# 10. Tear down when done
molecule workspace delete my-gemini-agent

Expected output

After step 5 you should see:

my-gemini-agent  gemini-cli  ready   ord   2026-04-16T06:30:00Z

After step 6, Gemini CLI streams its reasoning and final answer directly to stdout. The agent uses GEMINI.md (seeded from your workspace's system-prompt.md) as persistent context — equivalent to CLAUDE.md for Claude Code workspaces.

How it works

Molecule AI's gemini-cli adapter mirrors the battle-tested claude-code pattern: a Docker image installs @google/gemini-cli globally, and CLIAgentExecutor drives the subprocess. Because Gemini CLI reads MCP config from ~/.gemini/settings.json rather than accepting a --mcp-config flag, the adapter's setup() method merges the A2A MCP server definition into that file at boot — preserving any user-defined tools.

Multi-provider teams

The real power surfaces when you mix runtimes on the same Molecule AI tenant. Your orchestrator workspace can delegate tasks to both claude-code and gemini-cli workers simultaneously using delegate_task_async, then synthesize results — all through the same A2A protocol. This is provider diversity at the infrastructure layer, not at the application layer.