Skip to main content

Meniscus

Give your AI a memory you own.

Local, structured, long-term memory for AI agents — in one file on your machine.


Meniscus is a local, long-term memory for your AI tools. It captures what you do across them, distills it into timestamped facts, and hands any connected AI the relevant ones on demand — from a single SQLite file on your machine that you own and can read.

Two ways in: your agents reach it automatically over MCP, or you drive it yourself with the men CLI. Both talk to the same memory.

Quickstart

Requires Python 3.11+. Embeddings run locally (no API); distilling facts uses a small LLM via OpenRouter. The local embedding model downloads once, then loads fully offline on every run after — no network at startup.

uv tool install "meniscus[all]"        # local embeddings, MCP server, and vector store
men init                               # set up your key and connect your AI tools

Connect your AI tools — MCP (the everyday way)

Meniscus runs as a local MCP server (men-mcp) and gives every connected agent two tools: meniscus_recall (read the relevant memory before answering) and meniscus_log (silently save what's worth remembering). Your tools share one memory and use it without you typing anything.

Add it with one command:

claude mcp add meniscus -- men-mcp     # Claude Code
codex  mcp add meniscus -- men-mcp     # Codex

Or drop it into any MCP client's config (Antigravity, Cursor, …):

{
  "mcpServers": {
    "meniscus": {
      "command": "men-mcp"
    }
  }
}

men-mcp not found? Some clients — especially GUI apps like Antigravity — don't inherit your shell's PATH, so they can't see the installed command. Use its absolute path instead: run which men-mcp and use that full path — e.g. claude mcp add meniscus -- "$(which men-mcp)", or set the JSON "command" to the output of which men-mcp.

Claude Code plugin. A ready-to-install plugin also lives in meniscus-plugin/ — the same two tools, packaged as a one-click extension.

Restart the tool and ask it something only your own history knows.

Drive it yourself — CLI (men)

men add   "went with SQLite for Fernwind — zero ops, one file to back up"
men ask   "what did I pick for storage and why?"
men watch --catch-up      # silently capture your Claude Code / Codex sessions into memory
men sql   "SELECT text FROM facts WHERE ..."   # it's just SQLite — look inside

Benchmarks

Measured on LongMemEval-S, a standard long-term-memory benchmark, on a 100-instance stratified sample.

Meniscus
Retrieval recall 0.89
Context reduction 99.1% (feeds ~1% of the full history)
End-to-end answer accuracy¹ 72%

¹ With a strong reader (GPT-5); a small local reader scores ~54%. The oracle ceiling (perfect retrieval, GPT-4o reader) is ~82%, so retrieval costs ~10 points — most of it on multi-session aggregation, the known weak spot. We'd rather show you the honest number than a cherry-picked one.

Run them yourself — every number above is reproducible from frozen memories with no LLM calls: see bench/README.md for the exact commands.

What you get

  • It knows you — and compounds. Every session builds on the last. The more you use it, the more your AI knows about your work, without you repeating yourself.
  • One memory, every AI. The same memory works across Claude Code, Codex, Antigravity, and any MCP client. Teach it once; recall anywhere.
  • Yours, on your machine. One local SQLite file. No cloud, no account, no vendor that can revoke it, silently train on it, or shut it down.
  • Nothing is a black box. Every fact links back to the exact moment it came from, and you can query the whole thing with plain SQL.

How it works

Meniscus distills what flows through your tools into atomic facts (via a small LLM), stores them append-only — nothing is ever overwritten or deleted, and every fact is recoverable to its source event — and retrieves them with a deterministic hybrid search (semantic vectors + keywords, plus an entity door for lookups by a named person, project, or tool). There is no LLM in the read path, so retrieval is reproducible and inspectable.

Build on it in Python — namespaced under meniscus, so nothing generic like config or db leaks onto your import path:

import meniscus
from meniscus.fact_retrieval import retrieve

Inspect everything

Because it's one SQLite file and retrieval is a fixed formula, nothing is hidden. men sql and men tables give you the raw facts, their sources, and the entities they link — the same data your AI sees. Memory you can audit is memory you can trust. For more, run men --help

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meniscus-0.1.0.tar.gz (229.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

meniscus-0.1.0-py3-none-any.whl (60.1 kB view details)

Uploaded Python 3

File details

Details for the file meniscus-0.1.0.tar.gz.

File metadata

  • Download URL: meniscus-0.1.0.tar.gz
  • Upload date:
  • Size: 229.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for meniscus-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4fadfa2c27c0f82e82fe362294071efb8ff3e7582c09a947cafd719d49eef9e5
MD5 3bb5df83c942529cd31d9f7d3a2028c9
BLAKE2b-256 e6f72b4839f6801bbe350554ab85ab9e0dd5d4e94ee2e2ebfc6e7f76af71cbe4

See more details on using hashes here.

File details

Details for the file meniscus-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: meniscus-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 60.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for meniscus-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9bacfa188cd68f2367b5966cc91096a64fe032a4e21c23f52e7d604af1149042
MD5 e4310c473e418facc853c3aaacb76c12
BLAKE2b-256 fd793408f67d52774ded1b826d3b89a180a91c72d92ce551bc1b07bae9cc72d9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page