mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-11 14:40:52 -07:00
- Sisyphus: auto-resume timer with schedule_work tool - Confucius: built-in sub-agent for knowledge consolidation before compression - Hippocampus: in-memory short-term memory via background micro-consolidation - Bicameral Voice: proactive knowledge alignment on user input - Archive compression mode for long-running sessions - Onboarding dialog for first-time Forever Mode setup - Refresh system instruction per turn so hippocampus reaches the model - Auto-start A2A HTTP server when Forever Mode + Sisyphus enabled - Bridge external messages into session and capture responses - Display A2A port in status bar alongside Sisyphus timer
Forever Bridge — Google Chat via Pub/Sub
Zero-dependency Node.js service that runs Gemini CLI in forever mode on a GCE VM, receiving Google Chat messages via Cloud Pub/Sub and responding via Chat REST API.
No npm install needed. Auth uses the GCE metadata server; Pub/Sub and Chat
use raw REST APIs. Just node main.mjs.
Architecture
Google Chat Space
↓ Pub/Sub topic
Cloud Pub/Sub (pull)
↓
main.mjs (poll loop)
├── process-manager.mjs → npx gemini-cli --forever -r -y -m gemini-3-flash-preview
│ └── A2A JSON-RPC on localhost:3100
└── Chat REST API → Google Chat Space (response)
Files
| File | Purpose |
|---|---|
main.mjs |
Pub/Sub poller, Chat API client, A2A forwarder, health check, entrypoint |
process-manager.mjs |
Spawns/restarts Gemini CLI with exponential backoff |
Usage
# On a GCE VM with appropriate service account:
export GOOGLE_API_KEY="your-gemini-api-key"
export PUBSUB_SUBSCRIPTION="projects/my-project/subscriptions/chat-sub"
node main.mjs
Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
GOOGLE_API_KEY |
Yes | — | Gemini API key |
PUBSUB_SUBSCRIPTION |
Yes | — | projects/PROJ/subscriptions/SUB |
A2A_PORT |
No | 3100 |
Agent A2A port |
GEMINI_MODEL |
No | gemini-3-flash-preview |
Model |
HEALTH_PORT |
No | 8081 |
Health check port |
POLL_INTERVAL_MS |
No | 1000 |
Pub/Sub poll interval |
GCP Prerequisites
- Chat API + Pub/Sub API enabled
- Service account with
Pub/Sub Subscriber+Chat Botroles - Google Chat app configured with Cloud Pub/Sub connection type
- Pub/Sub subscription created for the Chat topic