Skip to main content

What it is

Normally you sign up, then connect an agent. A temporary profile inverts that. anona start gives an agent a working memory before any account exists. A person claims the result afterwards with anona login, and the memories the agent stored while it waited are theirs. This is path C of The four ways to connect, which is the one table of client against connection path — read it first if you have not chosen a path yet. A temporary profile is a memory workspace with no email address, no password and nobody owning it. The only thing that identifies it is an opaque token starting anona_tmp_, which the CLI keeps in ~/.anona/credentials.json (mode 600). The server keeps only a hash of it. The token is never printed, so that file is its only copy. That token works wherever an API key does, and on the remote /mcp endpoint, so an agent can use it without a browser or a human in the loop. On a temporary profile the MCP tools do not need a space_id: the profile has exactly one space and omitting the argument uses it. That space is default, and it is the only one the profile can hold: a write naming any other space (a CLI --space, a REST space_id, an upload, an MCP space_id) and POST /v1/spaces are refused with 403 temp_profile_single_space, so a typo cannot quietly create a second space. Claim the profile to create more. A signed-in account still has to name one, because an account may hold several and a memory written to the wrong space looks exactly like success.

The limits

Assume nothing will warn you before the 72 hours are up. There is no email address to send a warning to, so the CLI is the only channel: anona status prints the deadline whenever you ask, and anona mcp prints it once at startup inside the last 24 hours, on stderr — which many MCP clients never show a human. When the deadline passes the profile’s memories are deleted and the token stops working. Check anona status, or claim the profile.

Start to finish

1

Install the CLI

Either package works. They share one credential file, so you can start with one and claim with the other.
-U matters on pip. Without it, an existing older copy is left in place and reported as a success, so anona record fails with invalid choice. anona --help lists what you actually have. If pip answers externally-managed-environment it is refusing a system Python; use uvx below or pipx install anona.With nothing installed: uvx --from anona anona start, or npx @anona-labs/memory start. Both always run the current version, which makes them the shortest path on a machine that already has an old copy.
2

Start a profile

Note the expiry. If a profile is already stored, anona start prints its deadline and creates nothing.
3

Connect your client

The server is a stdio server named anona, launched as anona mcp. Register it the way your client does:Restart the client so it loads the tools. Then record something. The profile’s one space, default, is created with the profile, so a retrieve before any record returns an empty result rather than an error — and no call needs to name a space.
4

Or skip the client

A temporary profile is also usable straight from the shell, which is the path to take when a client cannot do MCP, or before a restart has loaded the tools:
On a temporary profile no --space is needed: its one space is default. See record, retrieve, reason.
5

Check the deadline

status reads only the local file. It cannot tell you the server still holds the profile.The CLI’s default is https://memory.anonalabs.com, not the api. host the rest of these docs use. Both reach the same API. What matters is keeping to one: the CLI ties a stored credential to the host it was issued for, and refuses a --base-url naming a different one rather than send the credential there. anona login --base-url ... is how you switch. So leave the CLI on its default. For your own REST calls, such as the curl below, api.anonalabs.com is the default and memory.anonalabs.com works too, and the token is valid on either.
6

Claim it

A browser opens on the sign-up page. Create an account there, or follow Sign in if you already have one; either way you come back to the approval screen. Read the client name, then choose Allow. That one approval claims the profile and signs in both the command line and anona mcp. Over SSH or in a container, anona login prints the URL instead; open it on the machine running the command, or add --no-browser to skip the attempt to open one.
7

Confirm

The temporary-profile lines are gone, replaced by the stored sign-in credential. The dashboard now shows the account with its real balance, and the confirmation email names the space.

Reminders on the MCP connection

An agent is told about the deadline by the server, not only by its setup prompt, so a later session that never saw the prompt still knows:
  • The MCP initialize reply carries instructions naming the deadline and saying that anona login claims the profile, and that an agent with a shell tool can run it itself.
  • A tool result carries a second text item, [Anona notice for the agent], about once an hour per profile, and every 15 minutes in the last 24 hours.
Both stop once the profile is claimed.

What claiming does

What happens depends on whether the account you sign in with is new. A new account takes over the profile’s workspace. anona login attaches it to the workspace that already holds the agent’s memories, and renames that workspace to the organization name you chose at signup. Nothing is copied. Afterwards it is an ordinary account, indistinguishable from one that signed up first.
  • The ceiling rises from 1,000 to 5,000 credits.
  • Credits already spent carry over. A profile that used 800 credits has 4,200 left, not 5,000. The allowance cannot be collected twice by claiming.
  • The memories are the same ones. Nothing is copied, so nothing is lost or duplicated.
  • The temporary token is destroyed. Whatever the agent was holding stops working, and you use the account’s own sign-in or an API key from here on.
  • A confirmation email names the space and your real balance.

Claiming into an account you already have

Sign in with your existing account and the profile’s space is copied into it as a new space. Your account stays where it is.
  • The copy is named after the profile’s space. That is usually default, and since your account most likely has its own default, the copy becomes default-claimed (then default-claimed-2, and so on). The confirmation email names it, and anona spaces list shows it. Pass that name as the space when you want those memories.
  • Your other spaces and your credits do not change. Copying calls no model, so it costs nothing, and the credits the profile spent are not charged to you.
  • Your plan’s space limit applies. If your account already has as many spaces as its plan allows, the claim is refused with claim_space_limit (HTTP 409) and nothing is copied. Delete a space or upgrade, then open the same sign-in link again before the 72 hours are up.
  • Webhooks on the profile are not copied. Set them up again on the new space if you want them.
The browser approval says which of the two will happen before you choose Allow. An account that has already done things (created an API key, recorded usage, invited a colleague, or subscribed) counts as existing, even if it was created recently.

Check the credit ceiling

With the CLI, read it with anona usage --json, which uses the stored token without exposing it. The figures in these replies are illustrative:
Without the CLI, the temporary token can read its own balance:
The token is in ~/.anona/credentials.json under temp_token. Treat it like an API key: anyone holding it can read and write the profile. Past the ceiling, metered calls are refused in the standard error envelope with a lowercase code; see error codes. Read it before and after claiming to see the effect. In the first production run, 11 credits used before the claim read 5000 limit / 11 used / 4989 remaining after it. The temporary token stops working once claimed, so after the claim make the same call with an API key from the dashboard.

Abandoning one

anona logout refuses to delete a live unclaimed profile, because the token exists nowhere else and deleting the file strands the profile and everything in it until the server removes it:
Signing in to a different server with anona login --base-url ... also replaces the stored profile. It prints a note first.

Failure modes