12 Jun 2026

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 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 onen 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?

With the advent of coding agents something changed in how AI apps are packaged: we actually get to keep our data! The ChatGPT and Claude apps are good at what they are and are mobile friendly, but in those apps all your AI conversations are stored remotely on OpenAI or Anthropic’s cloud. It’s your data, your conversations, the answers to your questions, but you have zero control over it and very limited abilities to do anything with it. Their search functionalities are quite basic, and as a result, if you’re anything like me you have tons of repeated threads in those apps where you ask questions you know you’ve already asked, but it’s easier to ask anew than to find the original.

They all have their own proprietary memory systems which can help you find more info from their history, but they aren’t very well done, and are limited to the history in those apps. These days we use AI in a lot of apps! And on a lot of machines!

Historious doesn’t fully solve this problem yet because exporting your chat sessions from those providers is hard to make consumer friendly, but it does manage to avoid that problem for the ones it does support.

Because with the rise of coding agents that need to run on your actual hardware to have access to all your information, we’ve switched to 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 can control. 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 very comfortable facing the elephant in the room (that your work is probably distributed across other 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 it’s 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 figure out how to get your machines to talk to each other you can shuttle sessions back and forth between the two machine’s respective historious databases. Currently SSH is the most fleshed out transport layer but HTTP also works so effectively if you have network connectivity you can remotely search one historious instance from another machine and sync your history between your machines.

The reason for this is that the historious cli is just the first instantiation of what I hope will be a much larger product. I want this thing to be one head of a multi-headed hydra for all my agent data. Because in recent years that data is basically becoming a record of everything I’ve done and thought about seriously recently. That means it’s both extremely valuable and also quite 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 more user friendly GUI 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 it’s learnings.