Skip to main content

OpenRouter Provider

Claude-mem supports OpenRouter as an alternative provider for observation extraction. OpenRouter provides a unified API to access 100+ models from different providers including Google, Meta, Mistral, DeepSeek, and many others.
Memory runs off-plan: With OpenRouter (or the claude-mem observer, which runs on this provider), observation extraction happens off your Claude plan — so memory work never shares your plan usage.
claude-mem observer: When you sign in during npx claude-mem install and choose the claude-mem observer, claude-mem configures this provider for you automatically with a provisioned key — no manual setup needed. The rest of this page covers bringing your own OpenRouter key.

Why Use OpenRouter?

  • Runs off-plan: Observation extraction never shares your Claude plan usage
  • Access to 100+ models: Choose from models across multiple providers through one API
  • Free model options: Several high-quality models are available at no charge
  • 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
  • Multi-turn conversations: Full conversation history maintained across API calls

Free Models on OpenRouter

OpenRouter actively supports democratizing AI access by offering free models. These are production-ready models suitable for observation extraction.
Default Model: Claude-mem uses xiaomi/mimo-v2-flash:free by default—a 309B parameter mixture-of-experts model that ranks #1 on SWE-bench Verified and excels at coding and reasoning tasks.

Free Model Considerations

  • Rate limits: Free models may have stricter rate limits than paid models
  • Availability: Free capacity depends on provider partnerships and demand
  • Queue times: During peak usage, requests may be queued briefly
  • Max tokens: Most free models support 65,536 completion tokens
All free models support:
  • Tool use and function calling
  • Temperature and sampling controls
  • Stop sequences
  • Streaming responses

Getting an API Key

  1. Go to OpenRouter
  2. Sign in with Google, GitHub, or email
  3. Navigate to API Keys
  4. Click Create Key
  5. Copy and securely store your API key
Free to start: No credit card required to create an account or use free models. Add credits only if you want to use premium models.

Configuration

Settings

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 OpenRouter
  4. Enter your OpenRouter API key
  5. Optionally select a different model
Settings are applied immediately—no restart required.

Manual Configuration

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

Model fallbacks

CLAUDE_MEM_OPENROUTER_MODEL also accepts a list of model ids. The first is the one normally used; the rest are handed to OpenRouter’s native models fallback array, which tries them in order when the one before it errors.
A comma- or space-separated string works too, so "vendor/a, vendor/b" means the same thing as the two-entry array. Fallbacks are sent only to openrouter.ai. A custom CLAUDE_MEM_OPENROUTER_BASE_URL gateway speaks plain OpenAI, which has no models field, so it receives the first id and ignores the rest. Alternatively, set the API key via environment variable:
The settings file takes precedence over the environment variable.

Model Selection Guide

Free Models

Recommended: xiaomi/mimo-v2-flash:free
  • Best-in-class performance on coding benchmarks
  • 256K context window handles large observations
  • 65K max completion tokens
  • Mixture-of-experts architecture (15B active parameters)
Alternatives:
  • google/gemini-2.0-flash-exp:free - 1M context, Google’s flagship
  • deepseek/deepseek-r1:free - Excellent reasoning capabilities
  • meta-llama/llama-3.1-70b-instruct:free - Strong general purpose

Premium Models (Higher Quality/Speed)

Premium models draw on your OpenRouter credit — still off-plan, so they never touch your Claude plan usage.

Context Window Management

The full conversation history is sent to the model on each request. claude-mem does not apply any client-side truncation or message-count cap — the provider and model own their own context window. If you need to bound context for a specific model, choose a model with an appropriate context length or manage limits at the OpenRouter/provider level.

Usage Tracking

Logs include detailed usage information:

Provider Switching

You can switch between providers 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: All 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

Error Behavior

If OpenRouter 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 500, 502, 503)
  • Network issues (connection refused, timeout)
  • 4xx errors other than 429
  • Missing API key

Multi-Turn Conversation Support

OpenRouter agent maintains full conversation history across API calls:
This enables:
  • Coherent multi-turn exchanges
  • Context preservation across observations
  • Seamless provider switching mid-session

Troubleshooting

”OpenRouter API key not configured”

Either:
  • Set CLAUDE_MEM_OPENROUTER_API_KEY in ~/.claude-mem/settings.json, or
  • Set the OPENROUTER_API_KEY environment variable

Rate Limiting

Free models may have rate limits during peak usage. If you hit rate limits:
  • The agent throws and leaves the message pending — it will be retried later
  • Consider switching to a different free model
  • Add credits for premium model access

Model Not Found

Verify the model ID is correct:
  • Check OpenRouter Models for current availability
  • Use the :free suffix for free model variants
  • Model IDs are case-sensitive

High Token Usage

If a session accumulates a large conversation history, requests can grow. To keep per-request size down:
  • Choose a model suited to your usage volume
  • Consider a model with a larger context window if you hit provider-side limits

Connection Errors

If you see connection errors:
  • Check your internet connection
  • Verify OpenRouter service status at status.openrouter.ai
  • The agent throws and leaves the message pending for later retry

API Details

OpenRouter uses an OpenAI-compatible REST API: Endpoint: https://openrouter.ai/api/v1/chat/completions Headers:
Request Format:

Comparing Providers

Recommendation: The claude-mem observer (chosen at install) is the easiest way to run memory off-plan. Bringing your own key? Start with the free xiaomi/mimo-v2-flash:free model. If you need higher quality or encounter rate limits, switch to a premium model or the Claude provider.

Next Steps