← All plugins
claude-mem
v13.14.0Memory compression system for Claude Code - persist context across sessions
CodexClaude Code1 MCP serverstdio
by Alex NewmanApache-2.090.2kupdated 3 hours ago
Source
git clone https://github.com/thedotmack/claude-memClone the source, then follow the repository's marketplace instructions for your runtime. The repository root is the plugin root.
Layout
claude-mem/
├── .codex-plugin/plugin.json├── .claude-plugin/plugin.json└── .mcp.json
MCP servers1
mcp-searchstdio
- command
- node
- args
- -e const f=require('fs'),p=require('path'),o=require('os'),c=require('child_process');const h=o.homedir();const C=process.env.CLAUDE_CONFIG_DIR||p.join(h,'.claude');const E=process.env.CLAUDE_PLUGIN_ROOT||process.env.PLUGIN_ROOT||'';const d=process.cwd();const S=n=>{const q=n.split('-')[0].split('.');return[parseInt(q[0],10)||0,parseInt(q[1],10)||0,parseInt(q[2],10)||0]};const W=(a,b)=>{const x=S(a),y=S(b);return(y[0]-x[0])||(y[1]-x[1])||(y[2]-x[2])||((a.indexOf('-')<0?0:1)-(b.indexOf('-')<0?0:1))||(a<b?1:a>b?-1:0)};const L=x=>{try{return f.readdirSync(x).filter(n=>/^\d/.test(n)).map(n=>p.join(x,n)).filter(z=>{try{return f.statSync(z).isDirectory()&&!f.existsSync(p.join(z,'.orphaned_at'))}catch{return false}}).sort((a,b)=>W(p.basename(a),p.basename(b)))}catch{return[]}};const K=[E,p.join(d,"plugin"),d,...L(p.join(h,".codex/plugins/cache/claude-mem-local/claude-mem")),...L(p.join(h,".codex/plugins/cache/thedotmack/claude-mem")),...L(p.join(C,"plugins/cache/thedotmack/claude-mem")),p.join(C,"plugins/marketplaces/thedotmack/plugin")].filter(Boolean);let R=null;for(const k of K){const r=f.existsSync(p.join(k,'plugin','scripts'))?p.join(k,'plugin'):k;if(f.existsSync(p.join(r,'scripts',"mcp-server.cjs"))){R=r;break}}if(!R){process.stderr.write("claude-mem: mcp server not found\n");process.exit(1)}const ch=c.spawn(process.execPath,[p.join(R,'scripts',"mcp-server.cjs")],{stdio:'inherit',windowsHide:true});for(const s of ['SIGTERM','SIGINT','SIGHUP'])process.on(s,()=>{try{ch.kill(s)}catch{}});ch.on('exit',(code,sig)=>{if(sig){process.removeAllListeners(sig);try{process.kill(process.pid,sig)}catch{process.exit(1)}}else process.exit(code==null?0:code)})
Manifests2
.codex-plugin/plugin.json
{
"name": "claude-mem",
"version": "13.14.0",
"description": "Memory compression system for Claude Code - persist context across sessions",
"author": {
"name": "Alex Newman",
"url": "https://github.com/thedotmack"
},
"homepage": "https://github.com/thedotmack/claude-mem#readme",
"repository": "https://github.com/thedotmack/claude-mem",
"license": "Apache-2.0",
"keywords": [
"claude",
"claude-code",
"claude-agent-sdk",
"mcp",
"plugin",
"memory",
"compression",
"knowledge-graph",
"transcript",
"typescript",
"nodejs"
],
"skills": "./plugin/skills/",
"mcpServers": "./plugin/.mcp.json",
"hooks": "./plugin/hooks/codex-hooks.json",
"interface": {
"displayName": "claude-mem",
"shortDescription": "Persistent memory and context compression across coding sessions.",
"longDescription": "claude-mem captures coding-session activity, compresses it into reusable observations, and injects relevant context back into future Claude Code and Codex-compatible sessions.",
"developerName": "Alex Newman",
"category": "Productivity",
"capabilities": [
"Interactive",
"Write"
],
"websiteURL": "https://github.com/thedotmack/claude-mem",
"defaultPrompt": [
"Find what I already learned about this codebase before I start a new task.",
"Show recent observations related to the files I am editing right now.",
"Summarize the last session and inject the most relevant context into this one."
],
"brandColor": "#1F6FEB"
}
}.claude-plugin/plugin.json
{
"name": "claude-mem",
"version": "13.14.0",
"description": "Memory compression system for Claude Code - persist context across sessions",
"author": {
"name": "Alex Newman"
},
"repository": "https://github.com/thedotmack/claude-mem",
"license": "Apache-2.0",
"keywords": [
"claude",
"claude-code",
"claude-agent-sdk",
"mcp",
"plugin",
"memory",
"compression",
"knowledge-graph",
"transcript",
"typescript",
"nodejs"
],
"homepage": "https://github.com/thedotmack/claude-mem#readme"
}