Give your agent memory and knowledge. One file, three lines, no server, no API key. v0.1 in active development.
Project description
rmbr
Give your agent memory and knowledge. One file, three lines, no server, no API key.
rmbr ("remember", vowels deleted) is an embedded, local-first memory + retrieval engine for AI agents and LLM apps — what SQLite is to Postgres, rmbr aims to be to hosted memory services.
⚠️ Status: pre-release, under active development. The design is finalized (see docs/PLAN.md and docs/ARCHITECTURE.md); implementation of v0.1 is in progress. Nothing below is installable yet.
Why
Agents need two things constantly: memory (remember things across sessions) and retrieval (look up relevant knowledge mid-task). Today that means signing up for a hosted memory service or assembling a vector database + embedding API + framework glue. rmbr is the embedded alternative:
- One file. Your agent's entire memory and knowledge base is a single
.dbfile. Commit it to git, ship it in an installer,scpit to a server, hand it to a teammate. - Three lines.
pip install rmbr, import, remember. No account, no config, no service. - No server. Runs inside your process, like SQLite.
- No API key. Embeddings run locally via a small ONNX model by default. Nothing phones home, ever. Cloud embedding providers (OpenAI/Voyage/Cohere) are strictly opt-in.
- Works with every LLM. rmbr never calls an LLM — it returns relevant text, you feed it to Claude, GPT, Gemini, or a local model. Zero model lock-in by construction.
Planned API (v0.1)
from rmbr import Memory, Index, Policy, serve_mcp
# Agent memory — the headline
mem = Memory("agents.db", namespace="researcher")
mem.remember("user prefers dark mode and short answers")
mem.recall("user preferences") # relevant memories, fast
# Multi-agent access control — deny-by-default
policy = Policy()
policy.allow("supervisor", read="*") # supervisor sees all lanes
mem = Memory("agents.db", namespace="coder", policy=policy)
# Knowledge / RAG — same engine
idx = Index("agents.db")
idx.add_files("docs/")
hits = idx.search("how do I deploy?", k=5) # hybrid BM25 + vector search
hits[0].text, hits[0].score, hits.timings # per-stage latency, always visible
# Expose memory to external agents (Claude Code, Cursor, any MCP client)
serve_mcp("agents.db", namespace="coder", read_only=True)
Library-only by design — no CLI to learn. (python -m rmbr exists solely so MCP clients can launch the server.)
Multi-agent isolation, honestly stated
- Namespaces keep agents' memories separate and are enforced on every call — but they are organizational, not cryptographic. Any code with access to the file can open the file. That's true of every embedded database; we say it out loud.
- Hard isolation = separate
.dbfiles per trust boundary, plus OS file permissions. - MCP serving is namespace-pinned: the exposed tools have no namespace parameter, so an external agent structurally cannot query outside its lane.
Performance claims policy
This README will never contain a performance number that isn't produced by bench/run.py — reproducible by anyone, recall pinned, against named competitors on identical hardware. Until those runs are published, we make no speed claims, only design commitments: local embeddings (no network round trip), content-hash embedding cache (never embed the same text twice), semantic query cache, and in-RAM HNSW vector search.
Roadmap
- v0.1 —
Memory+Policy+Index(hybrid search), embedding + semantic caches, MCP support, 3-OS CI (Linux/Windows/macOS), benchmark harness vs Chroma and LanceDB - Later — async API surface expansion, more chunkers, additional embedding providers
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rmbr-0.0.1.tar.gz.
File metadata
- Download URL: rmbr-0.0.1.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc890f846dfb54615e1f63c688a0f96466e89c48affdda15c9e7fb637ebbd2d7
|
|
| MD5 |
6014f9d06d98a1a3d89ca04772c52d89
|
|
| BLAKE2b-256 |
442ed711cb67ed72294e372e4fd615f17d5a7c0a7cc825b7469bdafb0cc97725
|
File details
Details for the file rmbr-0.0.1-py3-none-any.whl.
File metadata
- Download URL: rmbr-0.0.1-py3-none-any.whl
- Upload date:
- Size: 4.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/7.0.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7329354acbb595e6bf3cbe7bfc24cd123f36ca8a93f6c743d9aa10daecd87261
|
|
| MD5 |
7e311f66357083e4d9bf58a6d1ed9664
|
|
| BLAKE2b-256 |
acb3be4df2e1e5ae9e70008319eaf5260b3c907fbecc4172549eb2951d92c2d3
|