Open source  ·  MIT  ·  local-first

Memory for agents
that shows its work.

Alice is an open-source, local-first memory and continuity layer for AI agents. One command, one SQLite file, eleven MCP tools. No account, no API key, no server.

shell
$ uvx alice-memory mcp --data-dir ~/.alice

Python 3.12+ and nothing else. Roughly 7 seconds cold, under a second warm.

Alice gives an AI agent a memory that survives the session: what it learned, what was decided, what is still open.

It runs on your machine as an MCP server over stdio, reading and writing one local SQLite file.

When a memory is corrected, later recall reflects the correction and can explain why it changed.

  1. It remembers without being told.

    An agent connected to Alice records what it learns during a session and recalls it in a later one, unprompted. This loop is verified end to end on the published artifact, not on a development branch.

  2. Retrieval is hybrid, and falls back on purpose.

    Full-text and vector search run together, fused by reciprocal rank. If no embeddings endpoint is configured, Alice drops to full-text alone rather than failing.

    query full-text (FTS5) vector (cosine) rank fusion ranked optional — with no embeddings endpoint, retrieval runs on full-text alone
    Both retrievers run; the fusion is by reciprocal rank. The vector leg is optional by design.
  3. Corrections are first class.

    When a memory is superseded, later recall reflects the correction and can explain why. Memories carry provenance and an audit chain, so an agent can say where a belief came from instead of just asserting it.

  4. Work resumes where it stopped.

    Alice tracks open loops (blockers, waiting-fors) and writes resumption briefs: here is where work stopped, and what should happen next. The next session starts from there, not from a transcript.

81.2%

mean over three independent full runs
LongMemEval_s  ·  500 questions  ·  zero errors  ·  tag v0.12.0

80.0 80.5 81.0 81.5 82.0 mean 81.2 80.8 · 404 81.0 · 405 81.8 · 409
Three independent full runs: 80.8, 81.0 and 81.8 — 404 to 409 of 500 questions. Each run completed all 500 questions with zero errors.

We ran it three times because running it once is a screenshot.

Per-question evidence for all three runs is committed to the repo, alongside the reader, judge and embedding configuration and a script to reproduce the result. It measures the published v0.12.0 tag, not the current release.

The weakest category and the noisiest subset are printed in the limits section below, not in a footnote.

One claim on this page, corrected in place

withdrawn Every release ships with artifact digests verified from independent sources.
stands Every release since v0.15.1 ships with artifact digests verified from independent sources.

why The wider claim covered historical releases nobody had re-verified. Narrowed rather than deleted, and left visible — the same rule the release notes follow, and the same thing Alice does to a memory when it is superseded.

Read the per-question evidence

You run agents in an MCP-capable host: Claude Desktop, an IDE, Hermes (Nous Research), or OpenClaw. You want them to stop starting from zero, and you want the memory to live in a file you own rather than in someone else’s database.

Default

Start on SQLite.

One user, one machine, one file. The eleven core MCP tools run against it, and there is nothing else to operate. In this mode, memory review happens through the tools themselves.

  • alice_memory_review
  • alice_memory_correct

When you outgrow it

Move to Postgres.

Postgres with pgvector adds a web review console, a place to approve, correct and forget memories at a desk rather than through tool calls.

If you are one person with one machine, you do not need it yet.

Our release notes print limitations at the top, not the bottom. When one of them turned out to be false, it was struck through and withdrawn in place, with the evidence, rather than quietly deleted. The same rule applies to this page, so here is the list.

01

Multi-session recall is the weakest benchmark category, at roughly 63%.

If your workload leans hard on stitching facts together across many sessions, that is the number to look at, not the headline mean.

02

The abstention subset is noisy.

The 30-question abstention subset moves between runs, so we do not quote it to one decimal place.

03

The HTTP /v1 surface is loopback-only.

It authenticates but does not yet authorize, so it is documented as loopback-only. Keep it on your local machine; do not put it on a network.

04

There is no OpenClaw plugin. withdrawn

OpenClaw does not support MCP. Connecting Alice would need a plugin built against their SDK.

why Wrong. This was written from OpenClaw’s published docs without running OpenClaw. It ships an MCP client, and Alice connects over stdio with one config entry and no plugin: openclaw mcp probe reports alice: 11 tools. Withdrawn in place rather than deleted, under the same rule as the claim in section 03.

05

Security posture, stated exactly.

Automated scanning plus internal adversarial review, with findings triaged and fixed. No third-party audit has been performed, and we will not use the word until one has.

The full list lives in the known-limitations doc in the repo.

1 Run the server.

shell
$ uvx alice-memory mcp --data-dir ~/.alice

Or, without uv:

shell
$ pip install alice-memory && alice-memory mcp --data-dir ~/.alice

Python 3.12+ is the only requirement. No Docker, no Node, no Postgres, no account, no API key. It serves eleven MCP tools over stdio against a single SQLite file in the directory you chose.

2 Point your host at it.

Add to your MCP client config:

claude_desktop_config.json
{
  "mcpServers": {
    "alice": {
      "command": "uvx",
      "args": ["alice-memory", "mcp", "--data-dir", "/ABSOLUTE/PATH/TO/.alice"]
    }
  }
}

3 Then talk to your agent.

That is the whole setup. Configure an embeddings endpoint if you want vector search; without one, retrieval runs on full-text alone.

4 Give the agent instructions. optional

The difference between an agent that can use memory and one that does. The repo ships a skill pack per host, telling the agent when to reach for memory instead of leaving it to guess. Copy the directory, not the file:

shell
$ cp -R agent-skills/openclaw/alice-project-memory ~/.openclaw/skills/
$ cp -R agent-skills/hermes/alice-memory ~/.hermes/skills/

A skill grants no tools on its own. It tells the agent how to use the ones the MCP server already provides.

Small print the PyPI package is alice-memory. The name alice-core on PyPI belongs to an unrelated project.

Copied