Problem: I use Claude Code as my daily driver for everything — coding, research, planning. I kept giving it more context: docs, call transcripts, project specs. Each piece made it smarter. But the most important context was always missing — the actual conversations where decisions happen. And those are scattered across 5+ apps.
What Traul does:
- Syncs 8 sources into one SQLite database with incremental sync (cursor-based, so subsequent syncs are fast)
- Hybrid search: FTS5 (BM25 keyword) + Ollama embeddings (semantic)
- Falls back to FTS-only if Ollama isn't running — no hard dependency on vector search
- Background daemon with per-source sync intervals
- Everything stays on your machine. No cloud, no external APIs for core functionality
Stack: TypeScript on Bun, SQLite (WAL mode) + FTS5 + sqlite-vec, Ollama + nomic-embed-text for embeddings, Commander.js for CLI. AGPL-3.0.
I found it useful for:
- Track a project across scattered conversations. I have an integration being discussed in Slack, Telegram, and five different group chats. Agent sees through all of them — who's blocking, whose court the ball is in, what the next steps are.
- Monitor your community. Asked my agent to look at our Discord and summarize what users are writing. Got main topics, sentiment, what people are unhappy about. Then separately — feature requests. Then separately — how attitude toward the product is changing over time.
- Monitor competitors. Hook up their Discord servers, track what their users are asking for, what's broken, what they're discussing.
- Find that one message you vaguely remember. In a discussion about Claude Code pricing I remembered a friend sent me a link about it. Asked the agent to search my chats — found the exact Telegram message.
- Prep for a call in seconds. Before a recruiter call, asked the agent to find info about this person. Found them in my email. I don't need to remember where exactly I communicated with someone — agent finds it.
- Stop being the search engine yourself. The whole "was it in Slack, Telegram, or the task tracker?" problem goes away. Agent tries different keywords, reads intermediate chunks, follows the chain, arrives at the result.