{"slug": "katami", "title": "Katami", "summary": "Developer Stanko released katami, an open-source memory tool that brings Hermes-like memory extraction and recall to Claude Code, Codex, pi, and OpenCode by hooking into each harness to intercept messages, agent responses, and tool calls. Katami spawns a small agent every dozen or so messages to extract memories from the transcript, categorizes and stores them in a local database, and uses fast local CPU AI models to select and inject only the most relevant memories as context, with a mesh-based sync that shares memories across multiple machines. The tool is designed so users do not have to repeat their preferences in every new agent session.", "body_md": "Over the last few months I've built a couple of tools to help me work with our\nnew AI friends. My favorite one so far is [katami](https://github.com/monorkin/katami)\n*(Japanese かたみ for \"keepsake\")*.\n\nThe best way to explain what katami does is with an example:\n\n``` bash\n$ mkdir hey2\n$ cd hey2\n$ cargo init\n$ katami claude\n> Can you set this project up for me?\n> It will be a server with a CLI connected to MySQL, Redis\n> and Elasticsearch\n\nI'll set this project up with a hey2-core crate for logic and a hey2 crate\nfor the CLI using usage-rs, configure AGENTS.md with a CLAUDE.md shim,\n.agents/skills and a docs folder, add a .mise.toml file and set up mbx\njust like in your other projects.\n...\n```\n\n**Didn't catch that?** Claude, *without being prompted*, in a brand-new\nproject, knew how I want the project structured, what tools and libraries I use,\nand how I like them configured.\n\nThe kicker: I didn't tell it to remember how to set up projects, and it's not\nin my global CLAUDE.md file either. **Claude, through katami, learned what I\nlike and remembered it.**\n\nI built it so that I wouldn't have to repeat myself in every Claude session I started.\n\nKatami brings Hermes-like memory extraction and recall to Claude Code, Codex, pi,\nand OpenCode. *You can switch harnesses and machines and keep the same\nmemories.*\n\n**Katami hooks into your harness.** It sets up a few temporary hooks which allow\nit to intercept your messages, the agent's responses, and tool calls.\n\nIt extracts memories by checking the transcript for things you revealed about yourself. Every dozen or so messages, it spawns a small agent and asks it to comb through those messages and extract memories. The memories it finds are then categorized in a few ways and stored in a local database.\n\n``` bash\n$ katami memory list\nid        updated     kind          uses  last used   title\ncwfbzcq2  2026-09-02  card           188  2026-10-06  /home/stanko/Work/basecamp/hey2\nkfz0scd8  2026-09-02  card           143  2026-09-30  Stanko\ndje5yqzr  2026-09-08  observation     91  2026-10-06  Uses HEY email CLI\nhhe3cghc  2026-09-13  observation     63  2026-10-06  Codex review workflow\nrxtsz6tx  2026-09-24  status          14  2026-09-30  Current state of /home/stanko/Work/monorkin/katami\n```\n\nIt doesn't blindly stuff memories into your agent's context. Using fast local AI models that run on the CPU, it searches for and selects the most relevant memories for the conversation and injects them as extra context for your agent when it's about to respond.\n\nKatami also periodically curates its memories: drops unused ones, combines related ones, and builds fact cards.\n\nThis is what a memory looks like:\n\n``` bash\n$ katami memory show kfz0scd8\n# Stanko (card)\nentity: person:Stanko\nupdated: 2026-09-30T08:05:13Z\n\n## Preferences\n\n### Communication\n- Use plain language: avoid vague umbrella terms like \"gate\" for CI checks or scope validation; use specific plain words for what each thing is\n- Be explicit about outcomes: say \"tests ran and reported failures\" not \"passing\" — lead with the result first, analysis after\n- Preserve full output for accountability: don't truncate failure lists or logs for readability (e.g., avoid `tail -150`) — there should be no guessing about what happened\n\n### Git operations\n- Require explicit permission before force-push; use `--force-with-lease` when approved\n```\n\nRecently we started using agent sheds at work. A shed is a mini-PC that's on 24/7 and hosts an agent that you give tasks to. So I extended katami to work across multiple machines. It uses a mesh, so there's no server to manage. Any extracted memories are shared across all machines.\n\nThat's it. I love this tool. It makes any old agent feel more human. It allows them to learn and adapt. Every new session feels like another conversation with a digital friend, rather than meeting an intelligence that's just been spawned into existence.", "url": "https://wpnews.pro/news/katami", "canonical_source": "https://stanko.io/katami-sxj77rR0FDZf", "published_at": "2026-10-11 08:01:12+00:00", "updated_at": "2026-10-11 09:22:16.513973+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "artificial-intelligence", "developer-tools"], "entities": ["katami", "Stanko", "Claude Code", "Codex", "pi", "OpenCode", "Hermes", "monorkin"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/katami", "markdown": "https://wpnews.pro/news/katami.md", "text": "https://wpnews.pro/news/katami.txt", "jsonld": "https://wpnews.pro/news/katami.jsonld"}}