Local-first · Evidence-backed

Your documents.A memory you can verify.

Mneme indexes your local files, retrieves what matters, and returns answers you can trace back to the source.

Local indexFiles stay in your workspace
Source-linked answersTrace every claim back
Python CLI + TUIBuilt for developers
mneme · local workspace
Mneme terminal interface showing a question, a source-linked answer, and evidence markers
A real terminal workflow: index · retrieve · inspect
01
Local indexDiscovery, parsing, and retrieval happen on your machine.
02
Source citationsAnswers point to files, pages, and snippets you can inspect.
03
Explicit data boundaryOnly retrieved snippets leave when you use a configured LLM endpoint.

How it works

From scattered files to inspectable memory.

Mneme keeps the workflow legible: start with the documents you already have, then follow the path from a question to the evidence behind the answer.

01

Add files

Point Mneme at notes, reports, code, or exports.

/files add ./docs
02

Build memory

Local parsing and indexing turn documents into retrievable chunks.

index fingerprint: 8c3f…
03

Ask across documents

Search meaning, exact terms, and connected context in one question.

/mode graph
04

Inspect the evidence

Open the cited file, page, or chunk before you trust the conclusion.

[S1] report.pdf · p.12

Capabilities

The useful part is what you can check.

The internals support a clear result: find the right passage, follow the relationships around it, and keep the boundary under your control.

01

Find what matters

Search that catches meaning and exact language.

Hybrid Retrieval
Sentence Transformers · ChromaDB · BM25 · RRF

Semantic retrieval helps with concepts; lexical retrieval keeps names, IDs, and precise phrases in view.

Explore Hybrid Retrieval →
02

Follow the connections

Cross-document questions with a visible path.

Graph RAG
Entities · relationships · index fingerprint

Relationship expansion helps connect meeting notes, decisions, and the source passages that explain a change.

Explore Graph RAG →
03

Stay in control

A boundary you can state precisely.

Safety by design
Local cache · bounded inputs · configured endpoint

Local indexing stays local. When an LLM-backed feature is used, retrieved snippets go only to the endpoint you configure.

Read the safety boundaries →

Evidence demo

An answer is only useful when you can open its trail.

Q · What changed between the two project reviews?

The project moved from prototype validation to a bounded pilot after the error budget and data boundary were clarified.

The answer combines the decision note with the follow-up safety review. Expand a source to see the kind of location Mneme keeps attached.

S1 · review-notes.md · p.4
Decision record · “Pilot scope is limited to the local corpus and the configured endpoint.”
S2 · safety-review.pdf · p.12
Safety review · “Retrieved snippets are the only document content sent for answer generation.”
S3 · changelog.md · #2026-07
Change entry · Adds bounded document handling and a source-linked TUI view.

Data boundaries

Local by default is not a slogan. It is a boundary.

Here is the exact split. The local workflow remains useful on its own; an LLM-backed feature adds one explicit, configurable handoff.

Always local
  • File discovery and parsing
  • Indexing and cache management
  • Vector and BM25 retrieval
Sent to your configured endpoint when used
  • Retrieved snippets for answer generation
  • Retrieved snippets for query decomposition
  • Retrieved snippets for Graph RAG entity extraction

Mneme does not choose the endpoint for you. Read the Safety documentation →

File support

Bring the files that already hold your context.

PDFDOCXMarkdownHTMLJSONCSVCodeConfig

See the complete supported file list →

A developer start

Try the shape of the workflow in one glance.

Install the Python package, configure an endpoint only when you need an LLM-backed feature, and launch the terminal UI.

Read the full getting started guide →

terminal
# clone and install
git clone https://github.com/realhenrylan/mneme.git
cd mneme
python -m venv .venv
.venv\Scripts\Activate.ps1
python -m pip install -e ".[dev]"
python -m tui

Build a memory you can inspect.

Search Mneme documentation