Skip to main content
An MCP server gives an agent the ability to remember. It does not give it the habit. You still end up typing “remember that” and “what did we decide about the deploy” every session. Agent Skills close that gap. A skill is a Markdown file the agent loads when its description matches what you are doing, so recall at the start of a task and recording at the end become part of how the agent works.

Install

The installer detects the agents already on your machine, copies the skills in, stores your key at ~/.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.
Install one instead of both with --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 record, retrieve, reason and list_spaces, the skill uses them and there is nothing to configure.
See MCP for OAuth, the local stdio server, and Hermes.
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.
Your organization needs at least one API key for MCP OAuth sign-in to work. Signing in authenticates you, but the service still reaches memory through one of your organization’s keys, so an organization that has never created one gets 403 no_api_key on its first tool call. Creating a key once in the dashboard is enough; it does not have to go in any config file.

Which space

The skill picks one per session, in this order:
  1. ANONA_SPACE_ID, set by --space or in your environment.
  2. The git repository name, lowercased, when working in a repo.
  3. default.
A write creates the space. A read does not, so 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:
That writes 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.
Sign in with OAuth when prompted. See MCP for the same flow in other clients.
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 in skills/ 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.