cavemem은 코딩 에이전트가 세션이 바뀌어도 이전 작업 맥락을 검색할 수 있게 해주는 로컬 영구 메모리 도구다. Claude Code, Cursor, Gemini CLI, OpenCode, Codex를 지원하며, 세션 경계에서 훅이 관찰 내용을 캡처해 로컬 SQLite에 저장하고 MCP 도구로 다시 검색한다.
핵심 구조
session event -> redact <private> -> compress -> SQLite + FTS5
^
MCP queries on demand저장 전 <private>...</private> 구간을 제거하고, caveman 문법으로 관찰 내용을 압축한다. 코드 블록, URL, 경로, 식별자, 버전 번호는 보존하면서 일반 문장을 짧게 줄이는 방식이다.
주요 기능
| 기능 | 설명 |
|---|---|
| 세션 간 메모리 | 이전 코딩 세션의 결정, 파일, 실패, 해결책을 저장한다 |
| 압축 저장 | caveman 문법으로 prose 토큰을 줄인다 |
| MCP 검색 | search, timeline, get_observations 도구로 점진 검색한다 |
| 하이브리드 검색 | SQLite FTS5 키워드 검색과 로컬 벡터 인덱스를 함께 쓴다 |
| 로컬 우선 | 기본 동작에 네트워크나 클라우드 저장소가 필요 없다 |
| 웹 뷰어 | http://localhost:37777에서 읽기 전용으로 세션을 탐색한다 |
설치
npm install -g cavemem
cavemem install
cavemem install --ide codex
cavemem status
cavemem viewer별도 데몬을 상시 실행하는 구조가 아니라, 훅이 동기적으로 기록하고 백그라운드 worker가 임베딩을 채우는 방식이다.
agentmemory와의 차이
agentmemory처럼 코딩 에이전트에 영구 기억을 붙이는 도구지만, cavemem은 더 가볍고 로컬 압축에 초점을 둔다. 복잡한 거버넌스와 대규모 검색 품질보다 “여러 코딩 CLI가 같은 로컬 작업 이력을 빠르게 되찾는다”는 문제에 맞춰져 있다.
사용 대상 및 케이스
- Codex, Claude Code, Cursor를 번갈아 쓰며 같은 프로젝트를 개발하는 사용자
- 이전 세션의 결정과 실패 원인을 에이전트가 매번 다시 묻지 않게 하고 싶은 팀
- 클라우드 메모리 서비스 없이 로컬 SQLite 기반 메모리를 쓰려는 개발자
- caveman 계열 압축 문법으로 세션 기록 비용을 줄이고 싶은 사용자
관련 문서
- caveman — 출력 토큰을 줄이는 Claude Code 스킬
- agentmemory — AI 코딩 에이전트를 위한 영구 메모리 엔진
- auto-memory — AI 코딩 에이전트에 세션 간 기억 능력을 추가하는 CLI
- agentic-memory — AI 에이전트가 경험을 기억하고 활용하는 지식 계층
참고 자료
- JuliusBrussee/cavemem — GitHub 공식 저장소