Back to Claude Mem

Gemini Provider

docs/public/usage/gemini-provider.mdx

13.21.26.2 KB
Original Source

Gemini Provider

Claude-mem supports Google's Gemini API as an alternative to the Claude Agent SDK for extracting observations from your sessions. Memory runs off-plan on your Gemini key, so observation extraction never shares your Claude plan usage.

<Warning> **Rate limits without billing**: Gemini applies model-specific limits to projects without billing. Enable billing on your Google Cloud project for higher limits, and review Google's current quota and billing terms before doing so. </Warning>

Why Use Gemini?

  • Runs off-plan: Observation extraction happens on your Gemini key, not your Claude plan
  • Same quality: Gemini extracts observations using the same XML format as Claude
  • Errors throw clearly: 429s, 5xx, and network failures throw — leaving messages pending so they can be retried
  • Hot-swappable: Switch providers without restarting the worker

Getting an API Key

  1. Go to the Google AI Studio API Key page
  2. Sign in with your Google account
  3. Accept the Terms of Service and privacy policies
  4. Click the Create API key button
  5. Choose a Google Cloud project or create a new one
  6. Copy and securely store the generated API key
<Tip> **No billing required** to get started. Enabling billing can unlock higher rate limits; review Google's current quota and billing terms first. </Tip>

Configuration

Settings

SettingValuesDefaultDescription
CLAUDE_MEM_PROVIDERclaude, geminiclaudeAI provider for observation extraction
CLAUDE_MEM_GEMINI_API_KEYstringYour Gemini API key
CLAUDE_MEM_GEMINI_MODELgemini-flash-latest, gemini-flash-lite-latest, gemini-3.5-flash, gemini-3.1-flash-lite, gemini-3-flash-previewgemini-flash-latestGemini model to use
CLAUDE_MEM_GEMINI_BILLING_ENABLEDtrue, falsefalseSkip rate limiting if billing is enabled on Google Cloud

Using the Settings UI

  1. Open the worker URL printed on startup
  2. Click the gear icon to open Settings
  3. Under AI Provider, select Gemini
  4. Enter your Gemini API key
  5. Optionally select a different model

Settings are applied immediately—no restart required.

Manual Configuration

Edit ~/.claude-mem/settings.json:

json
{
  "CLAUDE_MEM_PROVIDER": "gemini",
  "CLAUDE_MEM_GEMINI_API_KEY": "your-api-key-here",
  "CLAUDE_MEM_GEMINI_MODEL": "gemini-flash-latest",
  "CLAUDE_MEM_GEMINI_BILLING_ENABLED": "true"
}

Alternatively, set the API key via environment variable:

bash
export GEMINI_API_KEY="your-api-key-here"

The settings file takes precedence over the environment variable.

Available Models

ModelRPM without billingNotes
gemini-flash-latest10Default. Google alias that always tracks the current GA Flash model
gemini-flash-lite-latest15Google alias that always tracks the current GA Flash-Lite model
gemini-3.5-flash10Pinned GA Flash model
gemini-3.1-flash-lite15Pinned GA Flash-Lite model
gemini-3-flash-preview5Preview model, lower rate limit
<Note> The older `gemini-2.5-*` and `gemini-2.0-*` model IDs were removed: Google returns `404 NOT_FOUND` ("no longer available to new users") for these when called with a freshly created API key. The `-latest` aliases are recommended because they never go stale as Google rotates GA models. </Note>

Provider Switching

You can switch between Claude and Gemini at any time:

  • No restart required: Changes take effect on the next observation
  • Conversation history preserved: When switching mid-session, the new provider sees the full conversation context
  • Seamless transition: Both providers use the same observation format

Switching via UI

  1. Open Settings in the viewer
  2. Change the AI Provider dropdown
  3. The next observation will use the new provider

Switching via Settings File

json
{
  "CLAUDE_MEM_PROVIDER": "gemini"
}

Error Behavior

If Gemini is selected and the API errors, claude-mem logs the failure and re-throws so the message stays pending for later retry. There is no Claude SDK fallback — earlier docs claimed automatic Claude fallback, but the wiring was never actually engaged in production (#2087). To switch providers, change CLAUDE_MEM_PROVIDER in settings.

Throwing conditions:

  • Rate limiting (HTTP 429)
  • Server errors (HTTP 5xx)
  • Network issues (connection refused, timeout)
  • 4xx errors other than 429
  • Missing API key

Troubleshooting

"Gemini API key not configured"

Either:

  • Set CLAUDE_MEM_GEMINI_API_KEY in ~/.claude-mem/settings.json, or
  • Set the GEMINI_API_KEY environment variable

Rate Limiting

Google applies different rate limits depending on whether billing is enabled:

Without billing (API key only):

ModelRPMTPM
gemini-flash-latest / gemini-3.5-flash10250K
gemini-flash-lite-latest / gemini-3.1-flash-lite15250K
gemini-3-flash-preview5250K

Claude-mem enforces these limits automatically with built-in delays between requests. Processing may be slower but stays within limits.

With billing enabled:

ModelRPMTPM
gemini-flash-lite-latest / gemini-3.1-flash-lite4,0004M
gemini-flash-latest / gemini-3.5-flash1,0001M
gemini-3-flash-preview1,0001M
<Tip> **Higher throughput**: Enabling billing can unlock much higher rate limits. Review your Google Cloud quota and billing settings first. Claude-mem can then use the higher configured limits instead of its conservative no-billing throttle. </Tip>

If you hit rate limits:

  • The failed message remains pending and can be retried after the rate limit resets
  • Or switch back to Claude as your primary provider

Observation Quality

If observations seem lower quality with Gemini:

  • Note that Claude typically produces slightly higher quality observations
  • Consider using Gemini to keep memory off-plan and Claude for important projects

Next Steps