- Category
- AI Agents
- Rank
- No. 990Tools index
- Pricing
- Open Source
- Type
- TOOL
- Builder
- juliusbrussee
- GitHub
- 677 stars
- Latest release
- v0.2.1
- Date
About
Cross-agent persistent memory for coding assistants. Compressed storage, fast retrieval, local by default.
What it does
Cavemem records coding-assistant session events through IDE hooks, removes marked private content, compresses prose, and stores observations in SQLite. Assistants later retrieve compact search results or timelines through MCP, then request full observation bodies only when needed. A local browser viewer exposes the same history in readable form.
Why it's ranked here
The design addresses memory without forcing every query to load entire transcripts. Keyword and vector retrieval share a tunable ranker, while progressive fetching controls context size. Privacy controls operate before storage, and export plus idempotent import support manual transfer. Its value still depends heavily on each IDE's hook coverage.
What's good
Compression preserves code blocks, URLs, paths, identifiers, and version numbers while shortening surrounding prose. Search combines SQLite FTS5 with a local vector index. Private tags, secret-shaped value redaction, directory exclusions, and tool filters provide several capture boundaries. The viewer binds locally and protects its API with a bearer token.
Tradeoffs
Capture support is uneven. Cursor, Gemini CLI, Antigravity, and IBM Bob can only query memories recorded elsewhere. Codex and GitHub Copilot lack a session-end event, while Augment lacks prompt-submission capture. Windows capture through Claude Code depends on a resolvable shell and can fail silently. Cross-device movement is a manual export, copy, and import process.
How to use it well
Use it when several supported coding assistants revisit the same projects and recurring context deserves searchable retention. Install capture on an IDE with hooks, inspect wiring and embedding progress, then let agents search before fetching full observations. Configure exclusions before normal use. It does not provide automatic cloud synchronization, and query-only integrations cannot populate their own history.
Technical notes+
The root package.json defines a private pnpm monorepo, requires Node.js 20 or newer, and uses TypeScript, tsup, Vitest, and Biome. packages/core/src/ranker.ts normalizes BM25 and cosine inputs before blending and sorting them. packages/config/src/glob.ts implements cached, segment-based glob matching with Windows separator normalization. packages/config/src/home.ts resolves state through CAVEMEM_HOME, an existing legacy directory, explicit XDG data storage, or platform defaults. packages/embedding/tsup.config.ts emits ESM and declarations while keeping the optional transformer dependency external. packages/storage/vitest.config.ts excludes the Bun-specific test from Node-based Vitest runs.
Observed
- License
- MIT
- Primary language
- TypeScript
- Packaging
- Private pnpm monorepo with a globally installable npm CLI package
- Runtime
- Node.js 20 or newer
- Interfaces
- Command-line interface, stdio MCP server, exported TypeScript library surface, and read-only local web viewer
- Storage and search
- SQLite with FTS5 keyword search and a local vector index
- IDE coverage
- Capture and query for Claude Code, OpenCode, Codex, GitHub Copilot, and Augment Code; query-only for Cursor, Gemini CLI, Antigravity, and IBM Bob
- Testing
- Vitest configurations are present, including separate embedding tests and exclusion of a Bun-specific storage test
Read from README.md, package.json, packages/embedding/tsup.config.ts, packages/storage/vitest.config.ts, packages/embedding/vitest.config.ts, packages/core/src/ids.ts, packages/core/src/index.ts, packages/core/src/types.ts, packages/hooks/src/index.ts, packages/config/src/docs.ts, packages/config/src/glob.ts, packages/config/src/home.ts, packages/core/src/ranker.ts, packages/config/src/index.ts, packages/storage/src/index.ts.
What it can do
Store coding session context across multiple AI agents
Coding conversation history and context data → Persistent memory storage accessible by different agents
Compress and optimize memory storage
Raw conversation and code data → Compressed memory files with reduced storage footprint
Retrieve relevant context for coding assistance
Query or coding task → Related historical context and code examples
Maintain local memory database
Agent interactions and code-related data → Local database of persistent coding knowledge
Share memory context between different coding assistants
Memory data from one coding agent → Accessible context for other coding agents
Enable fast search through coding history
Search terms or code patterns → Quickly retrieved relevant past interactions
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
