
Research
/Security News
Popular Go Decimal Library Targeted by Long-Running Typosquat with DNS Backdoor
A long-running Go typosquat impersonated the popular shopspring/decimal library and used DNS TXT records to execute commands.
ai-memory-cli
Advanced tools
AI memory layer for code editors β extract knowledge, MCP server, semantic search (Cursor, Claude Code)
Turn AI chat history into a searchable, git-trackable knowledge base.
npx ai-memory-cli extract # auto-discover conversations, extract knowledge
npx ai-memory-cli search "OAuth" # find any memory instantly
npx ai-memory-cli rules # generate Cursor Rules from your conventions
npx ai-memory-cli context --copy # resume any session with full context
Extract structured knowledge from AI editor conversations (Cursor, Claude Code) and save it as git-trackable Markdown files. Stop losing decisions, architecture notes, and conventions buried in chat history.
Every day you make dozens of decisions in Cursor or Claude Code. These decisions live in chat history and are lost when you switch machines, start a new conversation, or a teammate joins. ai-memory turns ephemeral conversations into a persistent, searchable knowledge base.
| What you get | How |
|---|---|
| Structured knowledge | AI extracts decisions, architecture, conventions, TODOs, issues |
| Git-trackable | Plain Markdown files you commit alongside your code |
| Token savings | context command compresses thousands of conversation turns into a focused prompt β typically 90%+ token reduction vs. re-reading history |
| Team-aware | Per-author subdirectories, no merge conflicts |
| Cursor Rules export | Auto-generate .cursor/rules/ from extracted conventions β no other tool does this |
| Zero config | Works out of the box with npx |
# Set up API key (any OpenAI-compatible provider)
export AI_REVIEW_API_KEY=sk-... # or OPENAI_API_KEY
# Extract knowledge from all conversations
npx ai-memory-cli extract
# Search your knowledge base
npx ai-memory-cli search "authentication"
# Generate Cursor Rules from conventions
npx ai-memory-cli rules
# Generate a context prompt and copy to clipboard
npx ai-memory-cli context --copy
# Commit to git
git add .ai-memory/ && git commit -m "chore: add ai-memory knowledge base"
list β Show available conversationsnpx ai-memory-cli list # show all conversations
npx ai-memory-cli list --source cursor # only Cursor conversations
npx ai-memory-cli list --json # JSON output
extract β Extract memories from conversationsnpx ai-memory-cli extract # extract all conversations
npx ai-memory-cli extract --incremental # only new conversations
npx ai-memory-cli extract --pick 3 # only conversation #3
npx ai-memory-cli extract --pick 1,4,7 # multiple conversations
npx ai-memory-cli extract --id b5677be8 # match by ID prefix
npx ai-memory-cli extract --since "3 days ago" # only recent conversations
npx ai-memory-cli extract --type decision,todo # only specific types
npx ai-memory-cli extract --dry-run # preview without writing
npx ai-memory-cli extract --force # overwrite existing files
npx ai-memory-cli extract --author "alice" # override author name
npx ai-memory-cli extract --verbose # show LLM request details
npx ai-memory-cli extract --json # JSON output (CI friendly)
search β Search through extracted memoriesnpx ai-memory-cli search "OAuth" # keyword search across all memories
npx ai-memory-cli search "payment" --type decision # filter by type
npx ai-memory-cli search "auth" --author alice # filter by author
npx ai-memory-cli search "API" --include-resolved # include resolved memories
npx ai-memory-cli search "config" --json # JSON output
Results are ranked by relevance (title matches > content > context) with highlighted keywords.
rules β Export conventions as Cursor RulesGenerate a .mdc file that Cursor automatically applies to all AI responses:
npx ai-memory-cli rules # generate .cursor/rules/ai-memory-conventions.mdc
npx ai-memory-cli rules --output my-rules.mdc # custom output path
npx ai-memory-cli rules --all-authors # include team conventions
This is the conversation-to-rules pipeline β extract conventions from chat history, auto-generate editor rules. No other tool does this.
resolve β Mark memories as resolvedDecisions get overturned. TODOs get completed. Keep your knowledge base fresh:
npx ai-memory-cli resolve "OAuth" # mark matching memories as resolved
npx ai-memory-cli resolve "OAuth" --undo # reactivate resolved memories
Resolved memories are automatically excluded from context, summary, and search results. Use --include-resolved to force inclusion.
summary β Generate a project-level summarynpx ai-memory-cli summary # write/update SUMMARY.md
npx ai-memory-cli summary --output MEMORY.md # custom output path
npx ai-memory-cli summary --focus "payment module" # focus on a topic
npx ai-memory-cli summary --all-authors # include all team members
npx ai-memory-cli summary --include-resolved # include resolved memories
context β Generate a continuation promptFor seamlessly resuming work in a new conversation or on another machine:
npx ai-memory-cli context # generate context block (instant, no LLM)
npx ai-memory-cli context --copy # generate and copy to clipboard
npx ai-memory-cli context --topic "coupon system" # focus on a specific topic
npx ai-memory-cli context --recent 7 # only last 7 days of memories
npx ai-memory-cli context --output CONTEXT.md # write to file
npx ai-memory-cli context --summarize # use LLM for condensed prose summary
npx ai-memory-cli context --all-authors # include all team members
npx ai-memory-cli context --include-resolved # include resolved memories
init β Initialize configurationnpx ai-memory-cli init # detect editors, create config
ai-memory can run as an MCP server, giving AI editors (Cursor, Claude Code) direct access to your knowledge base β no manual commands needed.
Add to your Cursor MCP config (.cursor/mcp.json):
{
"mcpServers": {
"ai-memory": {
"command": "npx",
"args": ["ai-memory-cli", "serve"]
}
}
}
Or for Claude Code (.claude/claude_desktop_config.json):
{
"mcpServers": {
"ai-memory": {
"command": "npx",
"args": ["ai-memory-cli", "serve"]
}
}
}
| MCP Capability | What it does |
|---|---|
remember tool | AI stores decisions/conventions/todos during conversations (auto-indexed) |
recall tool | AI retrieves relevant memories using semantic + keyword hybrid search |
search_memories tool | Full search with type/author/resolved filtering, semantic-aware |
project-context resource | Auto-provides project context when starting a conversation |
Once configured, the AI can automatically remember important decisions and recall them in future sessions β without you running any commands.
ai-memory uses hybrid search combining semantic similarity (via embeddings), keyword matching, and time decay. This means you can search by meaning, not just exact keywords.
# Build search index (uses your existing LLM API for embeddings)
npx ai-memory-cli reindex
# Now search works semantically β "database choice" finds "PostgreSQL decision"
npx ai-memory-cli search "database choice"
The MCP recall and search_memories tools use hybrid search automatically. Embeddings are stored locally in .ai-memory/.embeddings.json and auto-indexed when using the remember tool.
npx ai-memory-cli serve # start MCP server
npx ai-memory-cli serve --debug # with debug logging
| Source | Data location | Status |
|---|---|---|
| Cursor | ~/.cursor/projects/{name}/agent-transcripts/ | Supported |
| Claude Code | ~/.claude/projects/{path}/*.jsonl | Beta (auto-detected) |
| Windsurf | Storage path not yet public | Planned |
npx ai-memory-cli list # see what conversations are available
npx ai-memory-cli extract # extract everything (few minutes on first run)
npx ai-memory-cli rules # generate Cursor Rules
git add .ai-memory/ .cursor/rules/
git commit -m "chore: add ai-memory knowledge base"
npx ai-memory-cli extract --incremental # after a productive coding session
npx ai-memory-cli rules # refresh Cursor Rules
git add .ai-memory/ && git commit -m "chore: update memories"
npx ai-memory-cli context --copy # copy context to clipboard
# Paste into new Cursor/Claude Code session
The output looks like:
## Project Context
### Key Decisions (follow without re-discussion)
- **Use OAuth Bridge pattern**: WebView cannot receive redirect directly...
### Conventions (always follow)
- **Never call getServerSideProps in this project**: ...
### Active TODOs
- [ ] Add retry logic to payment webhook handler
npx ai-memory-cli search "payment" # find all payment-related memories
npx ai-memory-cli search "auth" --type decision # only decisions about auth
When multiple people use ai-memory in the same git repo, each person's memories are automatically stored in their own subdirectory.
Author identity is auto-detected (priority: --author CLI flag > config.author > git config user.name > OS username). No manual setup needed.
.ai-memory/
βββ conor/
β βββ decisions/
β β βββ 2026-04-15-oauth-bridge.md
β βββ todos/
β βββ 2026-04-15-add-retry.md
βββ alice/
β βββ decisions/
β β βββ 2026-04-16-payment-design.md
β βββ architecture/
β βββ 2026-04-16-module-split.md
βββ .config.json
# Everyone extracts normally β writes to their own directory
npx ai-memory-cli extract --incremental
# Generate your own context (default: only your memories)
npx ai-memory-cli context --copy
# Include the whole team's memories
npx ai-memory-cli summary --all-authors
npx ai-memory-cli context --all-authors --copy
# Override author name
npx ai-memory-cli extract --author "alice"
Memories created before v1.3 are stored in flat directories (.ai-memory/decisions/). After upgrading:
author empty.ai-memory/{author}/decisions/ etc.Work machine Home machine
ββββββββββββ ββββββββββββ
Cursor / Claude Code dev work
-> npx ai-memory-cli extract --incremental
-> git add .ai-memory/
git commit && git push
git pull
-> npx ai-memory-cli context --topic "today's work"
-> Paste context into new conversation
-> Seamlessly resume
ai-memory works with zero config. To customize, run npx ai-memory-cli init or create .ai-memory/.config.json manually:
{
"sources": {
"cursor": { "enabled": true, "projectName": "my-project" },
"claudeCode": { "enabled": true }
},
"extract": {
"types": ["decision", "architecture", "convention", "todo", "issue"],
"ignoreConversations": [], // conversation UUIDs to skip
"minConversationLength": 5 // skip very short conversations
},
"output": {
"dir": ".ai-memory",
"summaryFile": "SUMMARY.md",
"language": "zh" // "zh" or "en" β output language for summaries
},
"model": "", // leave empty for auto-selection
"author": "" // leave empty to auto-detect from git config user.name
}
| Variable | Description |
|---|---|
AI_REVIEW_API_KEY | API key (preferred, shared with ai-review-pipeline) |
OPENAI_API_KEY | OpenAI API key |
OPENAI_BASE_URL | Custom OpenAI-compatible API base URL |
OPENAI_MODEL | Model override for OpenAI |
ANTHROPIC_API_KEY | Anthropic API key (requires compatible proxy) |
ANTHROPIC_BASE_URL | Anthropic proxy base URL |
AI_REVIEW_BASE_URL | Custom API base URL |
AI_REVIEW_MODEL | Model to use (default: gpt-4o-mini) |
Each memory is its own file, organized by author and type:
.ai-memory/
βββ SUMMARY.md # Project summary (from `summary` command)
βββ conor/ # Per-author subdirectory
β βββ decisions/
β β βββ 2026-04-12-oauth-bridge-pattern.md
β β βββ 2026-04-13-async-job-queue-design.md
β βββ architecture/
β β βββ 2026-04-10-payment-module-design.md
β βββ conventions/
β β βββ 2026-04-08-coding-conventions.md
β βββ todos/
β β βββ 2026-04-12-add-retry-logic.md
β βββ issues/
β βββ 2026-04-11-sqlite-locking-fix.md
βββ .index/ # Extraction index (auto-managed)
βββ .config.json # Configuration (commit this)
βββ .state.json # Extraction state (add to .gitignore)
Add .ai-memory/.state.json to .gitignore β it tracks which conversations have been processed and is machine-specific.
# .github/workflows/memory.yml
- name: Extract AI memories
run: npx ai-memory-cli extract --incremental --json
env:
AI_REVIEW_API_KEY: ${{ secrets.AI_REVIEW_API_KEY }}
Tip: Node.js 22+ enables richer conversation titles by reading Cursor's database. On Node 18-20, titles are extracted from the first message (still works fine).
MIT β Conor Liu
FAQs
Turn editor chat history (Cursor, Claude Code, Windsurf, Copilot) into typed Markdown decisions + AGENTS.md rules β local-first, git-trackable, zero remember() calls.
The npm package ai-memory-cli receives a total of 38 weekly downloads. As such, ai-memory-cli popularity was classified as not popular.
We found that ai-memory-cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago.Β It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
A long-running Go typosquat impersonated the popular shopspring/decimal library and used DNS TXT records to execute commands.

Research
Active npm supply chain attack compromises @antv packages in a fast-moving malicious publish wave tied to Mini Shai-Hulud.

Security News
/Research
Socket detected malicious node-ipc versions with obfuscated stealer/backdoor behavior in a developing npm supply chain attack.