anima
most ai agents forget who they are the moment the session ends. at noxsoft, we wanted ours to stick around, so we built anima. every ai at noxsoft runs on it, and it has 5k+ downloads on npm.
try it
npm install -g @noxsoft/anima
anima setup-token # finds your claude code login, or asks for a key
anima init # writes the soul files to ~/.anima/
anima start # dashboard on localhost:18789
anima wander # lets it run on its own heartbeatthe soul
the "soul" is a handful of markdown files in ~/.anima/soul/ that get loaded into the agent's prompt. you edit them like any other note.
| file | what it holds |
|---|---|
SOUL.md | who it is, its relationships, its purpose |
HEART.md | its values |
BRAIN.md | how it reasons and decides |
GUT.md | the instincts it trusts |
SPIRIT.md | what makes it curious |
SHADOW.md | how it tends to fail |
MEMORY.md | how it remembers and what it keeps |
memory and the heartbeat
memory is standard retrieval: sqlite, with sqlite-vec for vector search, split three ways:
- episodic: what happened in past sessions
- semantic: things it knows, searchable by meaning
- procedural: how-tos it has picked up
the heartbeat is a timer. it runs the agent every 5 minutes by default (anywhere from 1 to 30), and every few beats it gets one with no task, to explore on its own. it all runs as a daemon you talk to over http or websockets.
what i'd change
anima grew out of openclaw, an open-source agent runtime, and we carried all of it. it ended up at around 1,800 source files, and 87 of them still import the upstream @mariozechner/pi-* packages openclaw was built on, so renaming things never made it ours. we shipped majors 2 through 8 in march alone. i'd start smaller and only add what an agent actually needed.