Install
~/.anona/config.env with mode 600, and registers the MCP
server with Claude Code when the claude CLI is on your PATH. It edits no shell
profile and writes nothing outside the directories it prints.
Skills load at session start. Restart your agent once after installing, or the
skill is on disk and invisible.
The two skills
anona-memory
The agent’s own memory. Recalls what is already known before a task, records
what the task settled after it.
anona-memory-sdk
Building on Anona. The SDK and API surface, scoping rules, error codes and
framework adapters, so generated code compiles the first time.
--skill:
Options
An existing install is moved under
~/.anona/backups/ rather than deleted, and
deliberately not left beside the skill: an agent reads every directory under
skills/, so a backup parked there would load as a second skill claiming the
same name.
How the skill reaches your memory
Three transports, tried in order. You only need one.1
MCP tools
If the host exposes See MCP for OAuth, the local stdio server, and Hermes.
record, retrieve, reason and list_spaces, the
skill uses them and there is nothing to configure.2
REST with curl
Otherwise the skill reads
ANONA_API_KEY from the environment or from
~/.anona/config.env and calls https://api.anonalabs.com directly. This
is what makes the skill work in a harness with no MCP support at all.3
Neither
The skill says so once, in one line, and does the task without memory. A
memory layer that blocks the work is worse than no memory layer.
Which space
The skill picks one per session, in this order:ANONA_SPACE_ID, set by--spaceor in your environment.- The git repository name, lowercased, when working in a repo.
default.
space_not_found on a space
nothing has been written to yet means empty, not broken.
Serving several people through one space? The skill passes
user_id when you
give it one, and the match is strict in both directions: a scoped read never
returns an unscoped memory. See Scoping.What gets recorded
Preferences, decisions and their reasons, fixes that cost time, constraints the code does not state, and outcomes. One fact per memory. Not recorded: secrets, anything already in the repository, narration of the session, or anything still a hypothesis. The skill carries the judgment call and worked examples of both sides.Claude Desktop and claude.ai
Those two do not read a skills directory. They take a ZIP upload under Customize > Skills, so build one:anona-memory.zip and anona-memory-sdk.zip into the current
directory, with the skill folder as the archive root, which is what the upload
expects. Both skills stay inside the caps that surface enforces on name and
description, 64 and 200 characters.
Then give them tools. There is no shell there, so the curl fallback cannot
run: add Anona as a custom connector under Settings > Connectors.
The Claude Code that runs inside Claude Desktop is a different surface, and it
reads
~/.claude/skills/ normally. The installer at the top of this page
already covers it. The ZIP is only for the chat surface.Supported agents
The installer knows Claude Code, Codex, OpenCode, Cursor and Hermes, and takes
--dir for anything else. The community npx skills CLI covers 75+ harnesses
from the same repository:
Source
The skills live inskills/
in the SDK repository. Read them before you install them; they are four Markdown
files and a shell script.
Next steps
MCP
The transport the skill prefers, with OAuth and stdio.
Python SDK
The programmatic client the second skill documents.