Zero-infrastructure persistent memory for any LLM
Project description
memboot
Persistent memory for LLMs that works offline. No API keys. No servers. No cloud.
Every other memory tool requires an LLM call to store and retrieve, a managed API, or an HTTP server running in the background. memboot requires none of that. It's SQLite + TF-IDF on your local disk — works on an airplane, works in CI, works without giving a third party access to your codebase.
$ memboot init .
Indexed 142 files, 1,847 chunks
$ memboot query "authentication flow"
src/auth/jwt.py:create_token 0.89 "Creates signed JWT with user claims..."
src/auth/middleware.py:verify 0.84 "Extracts and validates bearer token..."
src/models/user.py:User 0.71 "User model with hashed password..."
$ memboot remember "Use JWT for API auth, sessions for web" --type decision
Stored decision #14
$ memboot context "auth" --max-tokens 4000
# Context: auth (3,842 tokens)
## src/auth/jwt.py
...
Features
- Smart chunking — AST-aware Python extraction, Markdown heading splits, YAML/JSON key-level, sliding window fallback
- Fully offline — Built-in TF-IDF embeddings with zero external dependencies. Optional sentence-transformers for semantic search
- Episodic memory — Store decisions, patterns, observations alongside your code index
- Context builder — Token-budgeted markdown blocks ready for LLM prompts
- MCP server — Expose memory as tools for Claude Code, Cursor, and other MCP clients (Pro)
- File ingestion — Ingest external files, PDFs, and web pages into project memory
Install
pip install memboot
Optional extras:
pip install memboot[embed] # sentence-transformers for semantic embeddings
pip install memboot[mcp] # MCP server support
pip install memboot[pdf] # PDF ingestion
pip install memboot[watch] # File watching for auto-reindex
pip install memboot[web] # Web page ingestion
Quick Start
# Index a project
memboot init /path/to/your/project
# Search for relevant code and memories
memboot query "authentication flow" --project /path/to/your/project
# Store a decision
memboot remember "Use JWT for API auth, sessions for web" --type decision --project /path/to/your/project
# Get formatted context for an LLM prompt
memboot context "database schema" --project /path/to/your/project --max-tokens 4000
# Check license status
memboot status
CLI Commands
| Command | Description |
|---|---|
memboot init |
Scan, chunk, embed, and index a project |
memboot query |
Search project memory by similarity |
memboot remember |
Store an episodic memory (decision, note, observation, pattern) |
memboot context |
Export a formatted context block with token budget |
memboot status |
Show license tier and available features |
memboot reset |
Clear all indexed data and memories |
memboot ingest |
Add external files, PDFs, or URLs to memory |
memboot watch |
Watch project and auto-reindex on changes |
memboot serve |
Start MCP stdio server (Pro) |
How It Works
Project Files ──→ Chunker ──→ Embedder ──→ SQLite Store
(AST) (TF-IDF) (~/.memboot/)
│
Query Text ─────→ Embedder ──→ Cosine Sim ──→ Results
│
Memories ───────→ Embedder ──→ Store ───────→ Searchable
- Index — Recursively discover files, chunk by language (Python AST, Markdown headers, etc.), embed with TF-IDF, store in SQLite
- Query — Embed your query, compute cosine similarity against all chunks and memories, return top-K
- Remember — Store episodic memories (decisions, patterns, observations) with embeddings for later retrieval
- Context — Build token-budgeted markdown blocks with source attribution for LLM consumption
Each project gets its own SQLite database at ~/.memboot/{hash}.db. No servers, no API keys, no network calls.
How It's Different
| Works offline | No API keys | No background server | CLI-native | |
|---|---|---|---|---|
| memboot | Yes | Yes | Yes | Yes |
| Mem0 | No (requires LLM) | No | No | No |
| Memori | No (managed API) | No | N/A | No |
| OpenMemory | No (HTTP server) | No | No | Partial |
Architecture
src/memboot/
├── models.py # Pydantic v2 data models
├── store.py # SQLite WAL backend (numpy BLOB serialization)
├── chunker.py # Language-aware chunking (Python/MD/YAML/JSON/window)
├── embedder.py # TF-IDF (built-in) + sentence-transformers (optional)
├── indexer.py # Discovery → chunk → embed → store pipeline
├── query.py # Cosine similarity search
├── memory.py # Episodic memory CRUD
├── context.py # Token-budgeted context builder
├── licensing.py # Free/Pro tier management
├── cli.py # 8 Typer CLI commands
├── mcp_server.py # MCP stdio server (3 tools)
└── ingest/ # External file/PDF/web ingestion
License
MIT
Project details
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 memboot-0.3.0.tar.gz.
File metadata
- Download URL: memboot-0.3.0.tar.gz
- Upload date:
- Size: 50.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
348a172fd047443e12f0cce3e9bc813d51e138dfc4062318fee19bdc3fb67516
|
|
| MD5 |
e8f61a815e1b945aca22c16116e04d4b
|
|
| BLAKE2b-256 |
bd189b2b6389376f33045d8c3d99b68bf60b3023f09751e80aff1323a79e20cc
|
Provenance
The following attestation bundles were made for memboot-0.3.0.tar.gz:
Publisher:
release.yml on AreteDriver/memboot
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
memboot-0.3.0.tar.gz -
Subject digest:
348a172fd047443e12f0cce3e9bc813d51e138dfc4062318fee19bdc3fb67516 - Sigstore transparency entry: 1061609137
- Sigstore integration time:
-
Permalink:
AreteDriver/memboot@d8b4eba2ddb3cef0e13ceebd275328dc1f21eb59 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/AreteDriver
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d8b4eba2ddb3cef0e13ceebd275328dc1f21eb59 -
Trigger Event:
push
-
Statement type:
File details
Details for the file memboot-0.3.0-py3-none-any.whl.
File metadata
- Download URL: memboot-0.3.0-py3-none-any.whl
- Upload date:
- Size: 33.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
30f19d0a0144d1dbfbf92c646cc280ec4febaa53a3fce5f84af2a6d4b15bb01c
|
|
| MD5 |
4b479227c45093b96e7a200b152c6562
|
|
| BLAKE2b-256 |
06841de4a5a71d1409517cdc4d57b2efd3391db3285b447773cacee6f02f03eb
|
Provenance
The following attestation bundles were made for memboot-0.3.0-py3-none-any.whl:
Publisher:
release.yml on AreteDriver/memboot
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
memboot-0.3.0-py3-none-any.whl -
Subject digest:
30f19d0a0144d1dbfbf92c646cc280ec4febaa53a3fce5f84af2a6d4b15bb01c - Sigstore transparency entry: 1061609146
- Sigstore integration time:
-
Permalink:
AreteDriver/memboot@d8b4eba2ddb3cef0e13ceebd275328dc1f21eb59 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/AreteDriver
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@d8b4eba2ddb3cef0e13ceebd275328dc1f21eb59 -
Trigger Event:
push
-
Statement type: