I had 89,037 messages scattered across 12 AI coding tools. These weren't just chat logs - they were my decision-making journals. Every architecture choice I made at 2am, every debugging session, every trade-off I accepted and why.
The mess looked like this:
~/.claude/projects/~/.local/share/~/.gemini/sessions/Every tool had its own format.
Want to find that auth flow discussion from last Tuesday? Impossible.
I developed mnemo to index everything into one local SQLite database with full-text search. No cloud, no accounts, everything stays on your machine.
brew install Pilan-AI/tap/mnemo
mnemo index
mnemo search "authentication flow"
Built dedicated parsers for each tool's native storage:
JSONL parsers: Claude Code, Codex, Antigravity
JSON parsers: OpenCode, Gemini CLI, Amp, Kiro, Cline, Roo Code, Kilo Code
SQLite readers: Cursor, Crush
Each adapter:
Everything lives in ~/.mnemo/mnemo.db:
FTS5 virtual table with BM25 ranking - no external search engine
WAL mode - concurrent reads never block
Read-only mode for hooks - inject operations can't be blocked by background indexing
Single-writer constraint (MaxOpenConns=1) - prevents "database is locked" errors
The database is portable. Copy it to another machine, all sessions come with it.
FinalScore = (BM25 + densityBonus + userBonus) × temporalDecay
Results grouped by session, not scattered messages. When you search "liquid design," you get the 5 most relevant conversations - not 50 lines from the same thread.
Pure-Go SQLite (modernc.org/sqlite)
→ Cross-compiles everywhere, no C toolchain, no CGO
Single static binary
→ Works on first run, no config files
Local-only processing
→ Data never leaves your machine, no telemetry
Claude Code plugin: Auto-context injection via UserPromptSubmit hook
OpenCode: Skills + hooks integration
Cursor/Claude Desktop: MCP server exposes mnemo_search, mnemo_context, mnemo_recent
Token overhead: ~0.1-0.3% per session.
The savings? Your AI remembers what you discussed last week.
Performance: Indexing 89K messages takes ~3 seconds
Portability: Single binary, runs on M-series Macs, Intel, Linux arm64/amd64, Windows
Simplicity: No npm install, no Python venv, no Docker
Now I can:
mnemo recent --days=7My AI coding sessions are now my searchable decision journal.
mnemo is the memory layer. Later this month, I'm launching Pilan - a native macOS app that adds knowledge graphs, pattern recognition, and session intelligence on top of mnemo.
If mnemo is the memory, Pilan is the brain.
Thanks to everyone who checked out mnemo's repo on GitHub. I'm honored to have 12 stars already!
The repo needs help with:
GitHub: github.com/Pilan-AI/mnemo
எண்ணென்ப ஏனை எழுத்தென்ப இவ்விரண்டும் கண்ணென்ப வாழும் உயிர்க்கு.
"Numbers and letters - these two are the eyes of all who live."
— Thiruvalluvar, Tirukkural 392