{"id":46613050,"url":"https://github.com/jjerrychoi/apex-memory","last_synced_at":"2026-03-07T19:02:58.581Z","repository":{"id":342748506,"uuid":"1175020130","full_name":"JJerryChoi/apex-memory","owner":"JJerryChoi","description":"Persistent memory MCP server for AI coding agents. Ultra-lightweight (46 kB), cloud sync, works with Claude Code, Cursor, Windsurf. npm install apex-memory","archived":false,"fork":false,"pushed_at":"2026-03-07T12:02:08.000Z","size":226,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-07T13:37:34.153Z","etag":null,"topics":["ai","ai-memory","claude-code","cline","coding-agents","cursor","mcp","mcp-server","memory","model-context-protocol","persistent-context","persistent-memory","sqlite","typescript","windsurf"],"latest_commit_sha":null,"homepage":"https://jjerrychoi.github.io/apex-memory/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JJerryChoi.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-07T05:42:38.000Z","updated_at":"2026-03-07T12:02:11.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/JJerryChoi/apex-memory","commit_stats":null,"previous_names":["jjerrychoi/apex-memory"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/JJerryChoi/apex-memory","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JJerryChoi%2Fapex-memory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JJerryChoi%2Fapex-memory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JJerryChoi%2Fapex-memory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JJerryChoi%2Fapex-memory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JJerryChoi","download_url":"https://codeload.github.com/JJerryChoi/apex-memory/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JJerryChoi%2Fapex-memory/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30226781,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T19:01:10.287Z","status":"ssl_error","status_checked_at":"2026-03-07T18:59:58.103Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-memory","claude-code","cline","coding-agents","cursor","mcp","mcp-server","memory","model-context-protocol","persistent-context","persistent-memory","sqlite","typescript","windsurf"],"created_at":"2026-03-07T19:02:57.599Z","updated_at":"2026-03-07T19:02:58.572Z","avatar_url":"https://github.com/JJerryChoi.png","language":"TypeScript","funding_links":["https://github.com/sponsors/JJerryChoi"],"categories":[],"sub_categories":[],"readme":"# apex-memory\n\n[![CI](https://github.com/JJerryChoi/apex-memory/actions/workflows/ci.yml/badge.svg)](https://github.com/JJerryChoi/apex-memory/actions/workflows/ci.yml)\n[![npm version](https://img.shields.io/npm/v/apex-memory.svg)](https://www.npmjs.com/package/apex-memory)\n[![npm downloads](https://img.shields.io/npm/dm/apex-memory.svg)](https://www.npmjs.com/package/apex-memory)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n**Persistent memory for AI coding agents.**\n\nGive your AI coding agent memory that survives across sessions. apex-memory is an [MCP](https://modelcontextprotocol.io) server that lets agents save decisions, patterns, bugs, and context — then recall them exactly when needed.\n\n- **One install, works everywhere** — MCP-native, works with Claude Code, Cursor, Windsurf, and any MCP-compatible editor\n- **Ultra-lightweight** — 26.6 kB package, starts in milliseconds, no ML models or vector databases\n- **Zero infrastructure** — local SQLite database, no servers, no accounts\n- **Built for coding agents** — categories like `decision`, `architecture`, `bug`, `pattern` designed for real development workflows\n- **Smart memory management** — importance scoring (1-5), access tracking, and auto-decay keep your memory store relevant\n- **Full-text search** — find any memory instantly with FTS5-powered search\n- **Cloud sync** — sync memories across machines with the Pro tier (v0.3.0)\n\n## Quick Start\n\n### Claude Code\n\n```bash\nclaude mcp add apex-memory -- npx apex-memory\n```\n\nThat's it. Your agent now has persistent memory.\n\n### Cursor\n\nAdd to your MCP settings (`.cursor/mcp.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"apex-memory\": {\n      \"command\": \"npx\",\n      \"args\": [\"apex-memory\"]\n    }\n  }\n}\n```\n\nSee the [Cursor setup guide](docs/guides/cursor.md) for full details and troubleshooting.\n\n### Windsurf\n\nOpen `~/.codeium/windsurf/mcp_config.json` (via `Cmd+Shift+P` → \"Windsurf: Open MCP Config\") and add:\n\n```json\n{\n  \"mcpServers\": {\n    \"apex-memory\": {\n      \"command\": \"npx\",\n      \"args\": [\"apex-memory\"]\n    }\n  }\n}\n```\n\nSee the [Windsurf setup guide](docs/guides/windsurf.md) for full details and troubleshooting.\n\n### VS Code + GitHub Copilot\n\nIn your project root, create `.vscode/mcp.json`:\n\n```json\n{\n  \"servers\": {\n    \"apex-memory\": {\n      \"command\": \"npx\",\n      \"args\": [\"apex-memory\"]\n    }\n  }\n}\n```\n\nSee the [VS Code setup guide](docs/guides/vscode.md) for full details and troubleshooting.\n\n### Cline\n\nOpen the MCP Servers panel in Cline's sidebar → **Edit MCP Settings**, then add:\n\n```json\n{\n  \"mcpServers\": {\n    \"apex-memory\": {\n      \"command\": \"npx\",\n      \"args\": [\"apex-memory\"],\n      \"disabled\": false,\n      \"autoApprove\": []\n    }\n  }\n}\n```\n\nSee the [Cline setup guide](docs/guides/cline.md) for full details and troubleshooting.\n\n### Other MCP Clients\n\napex-memory works with any MCP-compatible client. Point it at:\n\n```bash\nnpx apex-memory\n```\n\nThe server communicates over stdio using the standard MCP protocol. See the [generic MCP setup guide](docs/guides/generic-mcp.md) for examples with VS Code, Continue.dev, and custom clients.\n\n### New to apex-memory?\n\nFollow the **[Getting Started tutorial](docs/guides/getting-started.md)** — install, configure, and save your first memory in under 2 minutes. Includes a CLAUDE.md integration snippet and copy-paste editor configs in [`docs/editors/`](docs/editors/).\n\n## Tools\n\napex-memory gives your agent 18 tools:\n\n| Tool | Description |\n|------|-------------|\n| `save_memory` | Save knowledge, decisions, patterns, or context with categories, tags, and importance scoring (1–5) |\n| `search_memories` | Full-text search across all memories (supports AND, OR, NOT, phrases) |\n| `recall` | Retrieve recent memories filtered by project, category, or tags |\n| `update_memory` | Update an existing memory's content, category, tags, or importance in place |\n| `delete_memory` | Remove a specific memory by ID |\n| `decay_memories` | Archive old low-importance memories that were never accessed — keeps the store clean |\n| `start_session` | Begin a coding session tied to a project |\n| `end_session` | End a session with a summary of what was accomplished |\n| `list_sessions` | View past coding sessions |\n| `memory_stats` | Get statistics about stored memories and sessions |\n| `export_memories` | Export all memories and sessions as JSON — useful for backup, migration, or sharing context across machines |\n| `import_memories` | Import memories and sessions from a JSON export — restore backups or merge context from another machine |\n| `export_to_claudemd` | Export key memories as a CLAUDE.md-ready context block — inject project memory directly into your agent's instructions |\n| `apex_memory_sync` | Manually trigger a cloud sync — push local changes and pull remote (Pro) |\n| `apex_memory_login` | Register this machine with apex-memory cloud and get a Pro upgrade link |\n| `apex_memory_status` | Show cloud sync status: workspace ID, subscription tier, last sync time |\n| `apex_memory_auto_capture` | Automatically capture session context (decisions, files, errors, solutions) at session end |\n| `session_summary` | Review all memories captured in a session — use at session start to restore prior context |\n\n## How It Works\n\nWhen your agent encounters something worth remembering — an architectural decision, a tricky bug fix, a user preference — it calls `save_memory`:\n\n```\nsave_memory({\n  content: \"User prefers functional components over class components in React\",\n  category: \"preference\",\n  tags: [\"react\", \"components\"],\n  project: \"frontend-app\"\n})\n```\n\nNext session, the agent recalls context before starting work:\n\n```\nrecall({ project: \"frontend-app\" })\n```\n\nOr searches for something specific:\n\n```\nsearch_memories({ query: \"authentication AND JWT\" })\n```\n\n### Categories\n\nOrganize memories by what they represent:\n\n| Category | Use for |\n|----------|---------|\n| `decision` | Architectural and design decisions |\n| `pattern` | Code patterns and conventions |\n| `bug` | Bugs encountered and their fixes |\n| `architecture` | System design and structure |\n| `preference` | User and team preferences |\n| `learning` | Lessons learned |\n| `context` | Project context and background |\n| `general` | Everything else |\n\n### Sessions\n\nTrack coding sessions to group related memories:\n\n```\nstart_session({ project: \"api-server\" })\n// ... agent works, saves memories with the session_id ...\nend_session({ session_id: \"...\", summary: \"Refactored auth middleware to use JWT\" })\n```\n\n## Cloud Sync (Pro)\n\nSync memories across machines with a Pro subscription ($9/workspace/month).\n\n**1. Register and get a Pro upgrade link:**\n\n```\napex_memory_login({\n  server_url: \"https://apex-memory-sync.your-account.workers.dev\",\n  email: \"you@example.com\"\n})\n```\n\nThis registers your workspace, stores an API key locally, and returns a checkout URL to activate Pro.\n\n**2. Check your sync status:**\n\n```\napex_memory_status()\n```\n\nShows workspace ID, subscription tier, and last sync timestamp.\n\n**3. Sync manually at any time:**\n\n```\napex_memory_sync()\n```\n\nPushes local changes to the cloud and pulls remote changes. Memories are merged across machines.\n\n\u003e Auto-sync also runs on agent startup when Pro is active — no manual trigger needed.\n\n## Auto-Capture\n\nAuto-capture saves session context automatically at the end of every coding session — no manual `save_memory` calls needed.\n\n```\napex_memory_auto_capture({\n  project: \"api-server\",\n  summary: \"Refactored auth middleware to use JWT refresh tokens\",\n  session_id: \"...\",\n  decisions: [\"Use RS256 signing for cross-service token validation\"],\n  files_worked_on: [\"src/auth/middleware.ts\", \"src/auth/tokens.ts\"],\n  errors_encountered: [\"JWT expired during refresh cycle\"],\n  solutions_found: [\"Added 30s clock skew tolerance to token validation\"]\n})\n```\n\nAt the start of your next session, use `session_summary` to recall what was captured:\n\n```\nsession_summary({ session_id: \"...\" })\n```\n\nAuto-capture is enabled by default. To disable, set `auto_capture.enabled = false` in `~/.apex-memory/config.json`.\n\n## Storage\n\nAll data is stored locally in `~/.apex-memory/memory.db` — a SQLite database with WAL mode and FTS5 full-text search. No data leaves your machine.\n\n## Pricing\n\n**Free and open source.** The core MCP server is MIT-licensed and fully functional — local storage, unlimited memories, unlimited sessions, no restrictions.\n\n**Pro tier — $9/workspace/month.** Everything in Free, plus:\n\n- **Sync across machines in under 1 second** — memories are always current wherever you work\n- **Automatic cloud backup** — your memory store is continuously backed up, zero maintenance\n- **Access from any editor on any machine** — Claude Code, Cursor, Windsurf, all sharing one memory store\n\n[Pricing details](docs/pricing.md) · [Upgrade guide](docs/guides/pro-upgrade.md)\n\n**Support the project.** If apex-memory is useful to you, consider [sponsoring on GitHub](https://github.com/sponsors/JJerryChoi).\n\n## Why apex-memory?\n\n### vs. MCP memory servers\n\n| | apex-memory | shieldcortex | cortex-mcp | kiro-memory | claude-recall |\n|---|---|---|---|---|---|\n| **Package size** | **26.6 kB** | 75.9 MB | 1.1 MB | 3.6 MB | 862 kB |\n| **Install time** | Instant | Slow (ML deps) | Fast | Fast | Fast |\n| **Cloud sync** | **Yes (Pro)** | No | No | No | No |\n| **Importance scoring** | Built-in | No | No | No | No |\n| **Auto-decay** | Built-in | Yes | No | No | No |\n| **Session tracking** | Built-in | No | No | No | No |\n| **Works with any MCP client** | Yes | Yes | Yes | Yes | Claude-only |\n| **License** | MIT | MIT | MIT | AGPL-3.0 | ISC |\n| **Dependencies** | 3 | 8 (incl. HuggingFace) | 3 | 16 | 5 |\n\n**apex-memory is 32x smaller than the next smallest competitor** and starts in milliseconds. No ML models, no vector databases, no bloat — just fast, reliable memory backed by SQLite FTS5.\n\n### vs. general-purpose memory\n\n| | apex-memory | Mem0 | Letta | OneContext |\n|---|---|---|---|---|\n| **Built for coding agents** | Yes | General purpose | General purpose | General purpose |\n| **MCP-native** | Yes | No | No | No |\n| **Zero infrastructure** | Yes (SQLite) | Requires server | Requires server | Cloud-only |\n| **Open source** | MIT | Partial | Yes | No |\n\napex-memory is purpose-built for the coding agent workflow. It's not a general-purpose memory layer — it's the memory system your AI coding agent should have had from day one.\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjerrychoi%2Fapex-memory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjjerrychoi%2Fapex-memory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjjerrychoi%2Fapex-memory/lists"}