If you use more than one AI coding tool, you have probably noticed two things.
First, every tool forgets. Close the session and the decisions, the quirks of your codebase and the "never do it this way" rules are gone.
Second, every tool wants its own rules file: CLAUDE.md, AGENTS.md, Cursor rules, and so on. You end up copying the same rules into several places, and they drift apart.
I wanted one place for both. So I made Aletheia: a free, local memory and rules hub for AI coding tools.
What it does
- Keeps memory in one SQLite database on your machine.
- Lets any tool read it over MCP, REST or the command line.
- Writes your rules once and syncs them into each tool's own instruction file.
- Exports and imports, so you can move between tools.
- Has a small local web app to search, edit, pin and review what was stored.
No account. No telemetry. It listens on 127.0.0.1 only.
Try it in three commands
You need Bun 1.1 or newer.
npm install -g aletheia-mem
aletheia-server
# open http://127.0.0.1:37790
That is the whole setup. There are no runtime dependencies to install.
Setting up a tool
Aletheia can write the config for the tools it knows. By default it only shows you what it would do:
aletheia install --list # what it can set up, per tool
aletheia install claude-code # dry run: prints every file it would change
aletheia install claude-code --write
Without --write nothing is written. With it, every changed file gets a timestamped backup first.
Two details I care about
Secrets stay out. Before anything is stored, capture hooks redact secrets and anything inside <private> blocks.
Memory is treated as untrusted. A stored note could contain text like "ignore your instructions". So when Aletheia hands memory back to a model, it wraps it in a marked block and tells the model it is data, not instructions. Tags inside notes are neutralised so a note cannot close the block early.
Honest status
It is alpha. The memory engine and the installers pass their tests. But I have not yet opened a real host app with a generated config, so I do not claim it "works with" any specific tool. I also measure retrieval, not answer accuracy, and I say so in the README.
I built it with Claude Code: agents did most of the implementation in separate git worktrees, one task per commit, and I wrote the specs, reviewed the results and decided what counted as done.
Help wanted
The most useful thing you can do is try it with the tool you use and tell me what happens. Open an issue with the tool, its version, the command you ran and what the tool did.
- Repo: https://github.com/mohamed-ashraf-elsaed/aletheia-mem
- npm: https://www.npmjs.com/package/aletheia-mem
- Docs: https://mohamed-ashraf-elsaed.github.io/aletheia-mem/
What would you want your tools to remember?
Top comments (0)