Akyuu
Every agent and harness I use keep their own notes, and none of them talk to each other. They each have their own memory banks, and those get desynchronised, leading to different agents knowing mismatched facts about me and my projects.
I’ve been working on a tool for this called Akyuu, named for Hieda no Akyuu from Touhou Project, the archivist who never forgets anything she sees. Akyuu is written in Haskell and MIT licensed.
Idea and design
My idea took much inspiration from Nix (and Git). Memories in Akyuu are content
addressed, and are immutable - they aren’t edited directly, only superseded by
new versions. Memories can have refs, which give them a stable name - a ref like
me/profile might document things your agent knows about you. Thus, the ref
always points at the newest version of that memory, and older ones are
accessible by hash until they are garbage-collected. The GC keeps the last few
versions of each ref and anything live memories still link to.
With immutability comes safety - agents can’t silently overwrite each other’s edits. Supersedes say which version they replace, and if it fails, an agent can read the updated version and decide what to do in response.
When working on tasks or conversing, agents can log events into “episodes,” as in episodic memory. These narrate what happened during a task. When a task or conversation concludes, these can then be consolidated into facts, akin to the human mind forming long term memories.
These memories are represented in a directed acyclic graph, or DAG. Memories relate to each other: they can be about, derived from, referencing or refining another memory.

This image shows what a populated memory graph can look like. I’ve removed the textual content for obvious reasons.
What it does (as of 0.2.0.0)
Akyuu is primarily intended to be used over MCP. Agents can connect to it
and use akyuu tools: context, note, append, log, amend, check, and so on. The context command pulls the “most important” memories into the context
window, so each chat starts with the most information already supplied.
There is also a command-line, and a read only web UI with a graph view and a wiki interface. This is so you can browse the memories as a sort of “second brain” - everything your agents know can be used as a knowledge bank that you can also access.
It searches the full text of memories using fuzzy-matching, and optionally a local embedding model to search by meaning.
One agent can write something down while you’re coding, and every other agent can then recall that. Memories are immutable plain-text, and can be versioned in git, so you can read it, back it up however you’d like, and diff between versions.
It’s built for single-user use, currently. As such, there aren’t access controls and anything you connect to the MCP can write to the store. The webview is read only and only listens on localhost.
It can also be configured using home-manager in Nix.
Try it
I have used this quite extensively - it’s my daily driver and I’ve had Claude use it for everything I’ve done lately.
You can try it without installing with Nix:
nix run github:lillycham/akyuu -- --help
Akyuu is also on my NUR repo.
On AI use: I designed and wrote most of the core of the project. The memory format, store, refs, cache were mine, with some scaffolding and tests written with the aid of Claude Code. Claude implemented most of the rest under my design and review, and I allowed Claude to find issues with it through use and solve them. This post was also edited with AI assistance.