$ local-first memory for AI agents

Memory you can read.Every recall scored. Every correction versioned. Every byte on your machine.

Memoria Viva — a living memory for your agents, on your machine.

npm install -g bellamente && bella

npm · pipx · uvx · direct binaries (Windows x64, Linux x64) · SHA256 checksums

Add to Claude Code

claude mcp add bellamente -- bella mcp

MIT licensedcoverage-gated CIR@1 84% / MRR 0.92 on the built-in bench1:1 test-to-source ratio

 bella — 127.0.0.1
$ bella
bellamente listening on 127.0.0.1:8080

$ curl -s :8080/memories -H 'content-type: application/json' \
    -d '{"memories":[{"content":"Jeff prefers dark mode"}]}' | jq -c '.memories[0] | {id,version,action}'
{"id":"a7Kd…","version":1,"action":"created"}

$ curl -s :8080/search -H 'content-type: application/json' \
    -d '{"q":"what theme does Jeff like?"}' | jq -c '{hit:.results[0].memory, similarity:.results[0].similarity, trace:.traceId}'
{"hit":"Jeff prefers dark mode","similarity":0.94,"trace":"9fQ2…"} 
INSPECT

The trace is the product

Every recall is durably logged: what was searched, what matched, at what score, in how many milliseconds — and what fell below the floor.

GET /inspect → scores, latency, provenance
CORRECT

Nothing silently overwritten

Edits create new versions with the old ones kept in the chain. Forgetting is reversible and audited. Hard delete is the only eraser, and it says so.

PATCH /memories/:id → v2 (v1 kept)
LOCAL

Nothing leaves your machine

Embedded Postgres + pgvector, local embedding models, loopback binding by default. No cloud to trust, no account to make, no telemetry to audit — the database is a file in your app directory and you can open it.

bind 127.0.0.1 · 0 telemetry · 1 binary

Native MCP server for Claude Code, Cursor, and friends

bella mcp speaks stdio MCP — nine tools over the same embedded store and the same trace log. Your agent remembers across sessions, and you can read exactly what it recalled and why.

9 tools · same store as the HTTP API · every recall traced

claude mcp add bellamente -- bella mcp

Drop-in memory for any OpenAI-compatible client

Change one base URL. Bellamente sits between your agent and your local model, injecting relevant memories into the request and writing a trace of exactly what it did. No SDK. No code changes. No network egress. Recall failures degrade to a memory-less answer instead of failing the chat turn.

Latest