The beginning of historious
A weekend vibe project I’ve been spending a lot of time on lately has turned out to be more useful than expected in practice, so I wanted to share a bit about what it is, why it works, and why I like it.
The project is called Historious, and it’s an indexer and search engine over all your coding agent’s histories, across all your machines, built to be used by both humans and agents. It’s also open source and completely free. You can grab a copy at http://github.com/nikvdp/historious.
What it is?
Technically, it’s a CLI that can do fun things with your coding agent histories. Currently this means Claude Code, Codex, pi coding agent, OpenCode, OpenClaw, Hermes, Cursor and more all become indexed and trivially searchable, by you, or your agents. It’s got a simple but brutally effective fzf-based tui that lets you do fuzzy full-text and semantic search over all your history, both with fancy schmancy semantic/vector search and old-school BM25 style full-text search, with reciprocal ranked fusion to rerank them. Or in less jargon-y terms: historious is good at finding your stuff.
Thing is, in 2026 your coding agents aren’t running on just one machine anymore. So how do you get all your coding agent history in one place so you can search all your history not just your local machine’s history? Historious has this covered too: it uses a jsonl based transport format that can be imported and exported over stdin/stdout. Which (in human) means: if your machines can ssh to each other they can sync their histories with each other.
The best part though is that it all runs locally, and it’s agent friendly. So it effectively becomes a memory system because you can just ask your agent how you did something before, tell it to use historious, and it’ll actually be able to find it, regardless of which coding agent you happened to be using when you did it originally.
Ok, but so what?
The first generation of AI apps like ChatGPT and Claude apps are good at what they do (answering questions) and are mobile friendly, but all your conversations are stored remotely on OpenAI or Anthropic’s cloud. I don’t like that.
It’s your data, your conversations, and the answers to your questions. Your ability to access your own data shouldn’t be mediated by a bigco. Worse still, the labs’ native apps have very limited abilities to do anything interesting with all the data you’ve been accumulating. The built-in search functions in the big labs’ apps are quite basic, to the point where if you’re anything like me, you have tons of repeated threads in those apps from re-asking questions you know you’ve already asked, because it’s easier to ask anew than to find the original.
With the advent of coding agents something has changed in how AI apps are packaged though: we actually get to keep our data! The rise of coding agents (and their more normie friendly incarnations such as Claude Cowork) and their need to actually run things on your hardware to have access to all your tools, has led to the lab’s apps storing the history locally. Which means we can actually index and aggregate it! Historious actually reads in the native events and tool calls from all of the various coding agents and saves them in a normalized, open (sqlite based) format that you have full control over. You’re in charge of your own data! Across all your machines!
Can’t Claude Code and Codex do this on their own?
To some degree, yes! But their incentives are not our incentives. While the Claude Code and Codex apps do have inbuilt search that lets them search over their own chats, as of this writing they are not particularly serious about it. Worse, they definitely won’t let you search across platforms: Anthropic wants to keep you in Anthropistan and OpenAI in GPTopia, and neither is showing much inclination to work towards cross-ecosystem interoperability, which is unpleasant if you’re like me and your work is distributed across both platforms.
Technical Goodness
Historious is very much a “vibe engineered” project, but that doesn’t mean there isn’t a lot of cool technical stuff happening under the hood. Everything uses a normalized jsonl based event format and content addressed storage semantics. That’s jargon-y, but basically means that you don’t get duplicates. Every event from every coding agent gets stored under its own unique hash, so you can sync all your sessions from all your machines and they will all get stored exactly one time. And it’s transport agnostic: so if you can get a network connection established between your machines you can shuttle sessions back and forth between the two machine’s respective historious databases. Currently SSH is the most well tested transport layer for this, but you could also use HTTP or anything else that can stream data.
The reason for this is that the historious cli is just the first instantiation of what I hope will be a much larger product. The dream is that this thing will become one head of a multi-headed hydra for all my agent data. In the last few years the traces in that data are becoming the most authoritative record of everything I’ve worked on or thought about seriously, making it both extremely valuable (to me) and extremely sensitive. I want full control over who has a copy of it. But I also want the ability to make good use of it!
A GUI version is on the way, and I want to make more skills that show off some of the things you can do with historious. One example is to use automations or scheduled tasks to have an agent do digests. I have a morning summary routine now that writes up everything I did yesterday in a kind of diary and leaves me notes about which parts are unfinished and how to pick up where I left off now. Took all of 10 minutes to get set up once historious had all the data and has been very helpful! Going forward I plan to integrate it into a harness agnostic Anthropic style “dreaming” system and have my agents proactively mine my chat transcripts for failures or inefficiencies and then autonomously improve my local skills and AGENTS.md files with its learnings.