Skip to main content
An agent with a shell can use Anona through the CLI without being taught every flag in advance. Three things make that work: a reference the CLI prints about itself, a skill that teaches the habits, and output built for a program to read.

MCP first, the CLI as the fallback

Where to start: anona

An agent that has just found the command can run anona with no arguments. It prints a short orientation and exits 0: how to get a credential, the three memory commands, and that anona guide is the reference to read before anything unfamiliar. It touches no credential and sends nothing, so it is safe to run first. (anona --quiet with no command still exits 2.)

anona guide

anona guide prints a compact reference generated from the CLI’s own parser: what the CLI is for, the credential order, the global options, every command with every flag and its help, an example and the shape of its --json output, the exit codes, and the common errors with their fixes. Because it is generated from the parser, it describes the copy that is installed, and cannot list a flag that copy lacks. anona guide --json is the same as one document:
Each entry in commands has name, path, help, positionals, options (each with flags, help, takes_value, metavar, choices, required) and subcommands; a runnable command also has example and json_output. A group such as spaces lists its verbs under subcommands, named in full ("spaces list", path ["spaces", "list"]). exit_codes entries are {"code", "name", "meaning"} and common_errors entries are {"error", "fix"}. Tell an agent to read it before composing an unfamiliar command, rather than guessing a flag. A guessed flag exits 2 with nothing sent, which is cheap, but a guessed meaning (a filter that silently matches nothing) is not. anona <command> --help answers for one command.

The anona-cli skill

The Agent Skills installer ships an anona-cli skill that teaches an agent the CLI’s habits: check anona guide --json before an unfamiliar command, which credential applies and how to set one up, how to read each exit code (3 is not a failure to retry, 7 after a write means check before re-sending, 8 means poll), that a destructive command needs --yes and the user’s say-so, and how to scope a write to one end user. The anona-memory skill uses the CLI as its fallback when MCP tools are absent.

Rules an agent should follow

  • Always --json, and branch on the exit code, never on the text.
  • Name the space: --space or ANONA_SPACE_ID, except on a temporary profile, whose only space is default.
  • 3 from record is not a failure: the server accepted the write and extracted nothing. Re-record once, with a sentence of context.
  • Never re-run a write after 7 without checking: it may have been stored.
  • 8 means still running: poll with anona jobs get JOB_ID.
  • Never add --yes on your own: spaces delete, memories delete, documents delete, jobs cancel and the settings reset commands refuse without it, and the user should confirm first.
  • Signing in is the person’s step: anona login needs someone at a browser. An agent may run anona start for a temporary profile and say so.

Give an MCP client memory with the CLI

anona mcp is a stdio MCP server that uses the MCP login from anona login, so a client needs no URL, no header and no API key:
The tools are available the next time the client starts. For a client that runs its own OAuth, skip the CLI and point it at the remote server directly:
anona mcp handles one message at a time. It reads a request, waits for the answer, then reads the next. A slow reason can take up to 120 seconds, and for that long every other request from the same client waits behind it. If your agent issues parallel memory calls, expect them to queue.