Skip to main content

Cursor + OpenRouter Setup

Use your OpenRouter key so memory notes run off-plan on your OpenRouter credit. You do not clone the repo.
Never send a personal sk-or- key to https://cmem.ai/api/inference. For your own OpenRouter account, leave the base URL empty (or https://openrouter.ai/api/v1). CMEM Pro uses the cmem.ai inference URL with a CMEM Pro key, not your OpenRouter key.

Install

  1. Create a key at OpenRouter API Keys.
  2. Run:
Pick Cursor, then pick your OpenRouter key as the memory provider.
npm install -g claude-mem is the library only. Always install with npx claude-mem install.

Settings by hand (optional)

Leave CLAUDE_MEM_OPENROUTER_BASE_URL unset for OpenRouter itself. Then re-run npx claude-mem install so Cursor hooks and the worker are in place. Do not restart a healthy worker.

Restart Cursor

Close and reopen Cursor so hooks load.

Verify

Health: curl -s "http://127.0.0.1:${CLAUDE_MEM_WORKER_PORT}/api/health". Open the worker URL from install to see notes.

Models

Set CLAUDE_MEM_OPENROUTER_MODEL if you do not want the default. Free model ids on OpenRouter often end in :free — check the model list.

Other OpenAI-shaped servers

The OpenRouter provider is a generic OpenAI-compatible client. Set CLAUDE_MEM_OPENROUTER_BASE_URL to DeepSeek, LM Studio, or any gateway that speaks /chat/completions. The model id is sent as-is.
Base URL resolution: When CLAUDE_MEM_OPENROUTER_BASE_URL is empty (default), requests go to OpenRouter unchanged. When set, claude-mem POSTs to <base_url>/chat/completions — you can supply either a base like https://api.deepseek.com/v1 (the /chat/completions path is appended automatically) or a full .../chat/completions URL (kept as-is). Trailing slashes are normalized, and the base URL must be an http/https URL; a hand-edited value that is not one makes requests fail until it is fixed. A query string or fragment on the base URL is preserved while the /chat/completions suffix stays in the request path, so https://my-gateway.example.com/v1?key=abc resolves to https://my-gateway.example.com/v1/chat/completions?key=abc. Set the URL in settings.json or the worker environment; the settings UI displays it read-only and the HTTP settings API cannot change it. The environment variable OPENROUTER_BASE_URL is honored as a fallback. With the claude-mem observer the base URL is managed by npx claude-mem install.

DeepSeek

LM Studio (local)

IO Intelligence (io.net)

Model ids are org/name pairs from the IO Intelligence model list, for example deepseek-ai/DeepSeek-R1-0528 or zai-org/GLM-4.6.

Troubleshooting

Key not configured — cat ~/.claude-mem/settings.json should show provider openrouter and your key. Model not found — check the id at OpenRouter Models. Worker idle — read ~/.claude-mem/logs/worker-YYYY-MM-DD.log. Do not restart a healthy worker.

Next steps