294 lines
7.4 KiB
Markdown
294 lines
7.4 KiB
Markdown
# Claude-Mem for Cursor (No Claude Code Required)
|
|
|
|
> **Persistent AI Memory for Cursor - Zero Cost to Start**
|
|
|
|
## Overview
|
|
|
|
Use claude-mem's persistent memory in Cursor without a Claude Code subscription. Choose between free-tier providers (Gemini, OpenRouter) or paid options.
|
|
|
|
**What You Get**:
|
|
- **Persistent memory** that survives across sessions - your AI remembers what it worked on
|
|
- **Automatic capture** of MCP tools, shell commands, and file edits
|
|
- **Context injection** via `.cursor/rules/` - relevant history included in every chat
|
|
- **Web viewer** at http://localhost:37777 - browse and search your project history
|
|
|
|
**Why This Matters**: Every Cursor session starts fresh. Claude-mem bridges that gap - your AI agent builds cumulative knowledge about your codebase, decisions, and patterns over time.
|
|
|
|
## Prerequisites
|
|
|
|
### macOS / Linux
|
|
- Cursor IDE
|
|
- [Bun](https://bun.sh) (`curl -fsSL https://bun.sh/install | bash`)
|
|
- Git
|
|
- `jq` and `curl`:
|
|
- **macOS**: `brew install jq curl`
|
|
- **Linux**: `apt install jq curl`
|
|
|
|
### Windows
|
|
- Cursor IDE
|
|
- [Bun](https://bun.sh) (PowerShell: `powershell -c "irm bun.sh/install.ps1 | iex"`)
|
|
- Git
|
|
- PowerShell 5.1+ (included with Windows 10/11)
|
|
|
|
## Step 1: Clone Claude-Mem
|
|
|
|
```bash
|
|
# Clone the repository
|
|
git clone https://github.com/thedotmack/claude-mem.git
|
|
cd claude-mem
|
|
|
|
# Install dependencies
|
|
bun install
|
|
|
|
# Build the project
|
|
bun run build
|
|
```
|
|
|
|
## Step 2: Configure Provider (Choose One)
|
|
|
|
Since you don't have Claude Code, you need to configure an AI provider for claude-mem's summarization engine.
|
|
|
|
### Option A: Gemini (Recommended - Free Tier)
|
|
|
|
Gemini offers 1500 free requests per day, plenty for typical usage.
|
|
|
|
```bash
|
|
# Create settings directory
|
|
mkdir -p ~/.claude-mem
|
|
|
|
# Create settings file
|
|
cat > ~/.claude-mem/settings.json << 'EOF'
|
|
{
|
|
"CLAUDE_MEM_PROVIDER": "gemini",
|
|
"CLAUDE_MEM_GEMINI_API_KEY": "YOUR_GEMINI_API_KEY",
|
|
"CLAUDE_MEM_GEMINI_MODEL": "gemini-2.5-flash-lite",
|
|
"CLAUDE_MEM_GEMINI_RATE_LIMITING_ENABLED": true
|
|
}
|
|
EOF
|
|
```
|
|
|
|
**Get your free API key**: https://aistudio.google.com/apikey
|
|
|
|
### Option B: OpenRouter (100+ Models)
|
|
|
|
OpenRouter provides access to many models, including free options.
|
|
|
|
```bash
|
|
mkdir -p ~/.claude-mem
|
|
cat > ~/.claude-mem/settings.json << 'EOF'
|
|
{
|
|
"CLAUDE_MEM_PROVIDER": "openrouter",
|
|
"CLAUDE_MEM_OPENROUTER_API_KEY": "YOUR_OPENROUTER_API_KEY"
|
|
}
|
|
EOF
|
|
```
|
|
|
|
**Get your API key**: https://openrouter.ai/keys
|
|
|
|
**Free models available**:
|
|
- `google/gemini-2.0-flash-exp:free`
|
|
- `xiaomi/mimo-v2-flash:free`
|
|
|
|
### Option C: Claude API (If You Have API Access)
|
|
|
|
If you have Anthropic API credits but not a Claude Code subscription:
|
|
|
|
```bash
|
|
mkdir -p ~/.claude-mem
|
|
cat > ~/.claude-mem/settings.json << 'EOF'
|
|
{
|
|
"CLAUDE_MEM_PROVIDER": "claude",
|
|
"ANTHROPIC_API_KEY": "YOUR_ANTHROPIC_API_KEY"
|
|
}
|
|
EOF
|
|
```
|
|
|
|
## Step 3: Install Cursor Hooks
|
|
|
|
```bash
|
|
# From the claude-mem repo directory (recommended - all projects)
|
|
bun run cursor:install -- user
|
|
|
|
# Or for project-level only:
|
|
bun run cursor:install
|
|
```
|
|
|
|
This installs:
|
|
- Hook scripts to `.cursor/hooks/`
|
|
- Hook configuration to `.cursor/hooks.json`
|
|
- Context template to `.cursor/rules/`
|
|
|
|
## Step 4: Start the Worker
|
|
|
|
```bash
|
|
bun run worker:start
|
|
```
|
|
|
|
The worker runs in the background and handles:
|
|
- Session management
|
|
- Observation processing
|
|
- AI-powered summarization
|
|
- Context file updates
|
|
|
|
## Step 5: Restart Cursor & Verify
|
|
|
|
1. **Restart Cursor IDE** to load the new hooks
|
|
|
|
2. **Check installation status**:
|
|
```bash
|
|
bun run cursor:status
|
|
```
|
|
|
|
3. **Verify the worker is running**:
|
|
```bash
|
|
curl http://127.0.0.1:37777/api/readiness
|
|
```
|
|
Should return: `{"status":"ready"}`
|
|
|
|
4. **Open the web viewer**: http://localhost:37777
|
|
|
|
## How It Works
|
|
|
|
1. **Before each prompt**: Hooks initialize a session and ensure the worker is running
|
|
2. **During agent work**: MCP tools, shell commands, and file edits are captured
|
|
3. **When agent stops**: Summary is generated and context file is updated
|
|
4. **Next session**: Fresh context is automatically injected via `.cursor/rules/`
|
|
|
|
## Troubleshooting
|
|
|
|
### "No provider configured" error
|
|
|
|
Verify your settings file exists and has valid credentials:
|
|
```bash
|
|
cat ~/.claude-mem/settings.json
|
|
```
|
|
|
|
### Worker not starting
|
|
|
|
Check logs:
|
|
```bash
|
|
tail -f ~/.claude-mem/logs/worker-$(date +%Y-%m-%d).log
|
|
```
|
|
|
|
### Hooks not executing
|
|
|
|
1. Check Cursor Settings → Hooks tab for errors
|
|
2. Verify scripts are executable:
|
|
```bash
|
|
chmod +x ~/.cursor/hooks/*.sh
|
|
```
|
|
3. Check the Hooks output channel in Cursor
|
|
|
|
### Rate limiting (Gemini free tier)
|
|
|
|
If you hit the 1500 requests/day limit:
|
|
- Wait until the next day
|
|
- Upgrade to a paid plan
|
|
- Switch to OpenRouter with a paid model
|
|
|
|
## Next Steps
|
|
|
|
- Read [README.md](README.md) for detailed hook documentation
|
|
- Check [CONTEXT-INJECTION.md](CONTEXT-INJECTION.md) for context behavior details
|
|
- Visit https://docs.claude-mem.ai for full documentation
|
|
|
|
## Quick Reference
|
|
|
|
| Command | Purpose |
|
|
|---------|---------|
|
|
| `bun run cursor:install -- user` | Install hooks for all projects (recommended) |
|
|
| `bun run cursor:install` | Install hooks for current project only |
|
|
| `bun run cursor:status` | Check installation status |
|
|
| `bun run worker:start` | Start the background worker |
|
|
| `bun run worker:stop` | Stop the background worker |
|
|
| `bun run worker:restart` | Restart the worker |
|
|
|
|
---
|
|
|
|
## Windows Installation
|
|
|
|
Windows users get full support via PowerShell scripts. The installer automatically detects Windows and installs the appropriate scripts.
|
|
|
|
### Enable Script Execution (if needed)
|
|
|
|
PowerShell may require you to enable script execution:
|
|
|
|
```powershell
|
|
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
|
|
```
|
|
|
|
### Step-by-Step for Windows
|
|
|
|
```powershell
|
|
# Clone and build
|
|
git clone https://github.com/thedotmack/claude-mem.git
|
|
cd claude-mem
|
|
bun install
|
|
bun run build
|
|
|
|
# Configure provider (Gemini example)
|
|
$settingsDir = "$env:USERPROFILE\.claude-mem"
|
|
New-Item -ItemType Directory -Force -Path $settingsDir
|
|
|
|
@"
|
|
{
|
|
"CLAUDE_MEM_PROVIDER": "gemini",
|
|
"CLAUDE_MEM_GEMINI_API_KEY": "YOUR_GEMINI_API_KEY"
|
|
}
|
|
"@ | Out-File -FilePath "$settingsDir\settings.json" -Encoding UTF8
|
|
|
|
# Interactive setup (recommended - walks you through everything)
|
|
bun run cursor:setup
|
|
|
|
# Or manual installation
|
|
bun run cursor:install
|
|
bun run worker:start
|
|
```
|
|
|
|
### What Gets Installed on Windows
|
|
|
|
The installer copies these PowerShell scripts to `.cursor\hooks\`:
|
|
|
|
| Script | Purpose |
|
|
|--------|---------|
|
|
| `common.ps1` | Shared utilities |
|
|
| `session-init.ps1` | Initialize session on prompt |
|
|
| `context-inject.ps1` | Inject memory context |
|
|
| `save-observation.ps1` | Capture MCP/shell usage |
|
|
| `save-file-edit.ps1` | Capture file edits |
|
|
| `session-summary.ps1` | Generate summary on stop |
|
|
|
|
The `hooks.json` file is configured to invoke PowerShell with `-ExecutionPolicy Bypass` to ensure scripts run without additional configuration.
|
|
|
|
### Windows Troubleshooting
|
|
|
|
**"Execution of scripts is disabled on this system"**
|
|
|
|
Run as Administrator:
|
|
```powershell
|
|
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine
|
|
```
|
|
|
|
**PowerShell scripts not running**
|
|
|
|
Verify the hooks.json contains PowerShell invocations:
|
|
```powershell
|
|
Get-Content .cursor\hooks.json
|
|
```
|
|
|
|
Should show commands like:
|
|
```
|
|
powershell.exe -ExecutionPolicy Bypass -File "./.cursor/hooks/session-init.ps1"
|
|
```
|
|
|
|
**Worker not responding**
|
|
|
|
Check if port 37777 is in use:
|
|
```powershell
|
|
Get-NetTCPConnection -LocalPort 37777
|
|
```
|
|
|
|
**Antivirus blocking scripts**
|
|
|
|
Some antivirus software may block PowerShell scripts. Add an exception for the `.cursor\hooks\` directory if needed.
|