Octobrain
Persistent memory for AI assistants — store insights, decisions, and knowledge that survives across conversations.
[Crates.io]
[License]
[Rust]
[CI]
[Coverage]
MCP Registry: mcp-name: io.github.Muvon/octobrain
Table of Contents
Octobrain gives your AI assistant a long-term memory. Store code insights, architecture decisions, bug fixes, and knowledge — then retrieve them with semantic search in future sessions. Works as a CLI tool or as an MCP server for integration with Claude Desktop and other AI tools.
Why Octobrain?
AI assistants start every conversation with zero context. You explain your project, your preferences, your decisions — every single time. Octobrain breaks that cycle:
- Persistent memory — Insights survive across sessions, not just within them
- Semantic search — Find memories by meaning, not exact keywords
- Auto-linking — Related memories connect automatically (Zettelkasten-style)
- Knowledge indexing — Ingest docs, articles, and files for retrieval
- MCP integration — Works with Claude Desktop and other MCP-compatible tools
Quick Start
Installation
From crates.io (Recommended)
From Source
Docker
Homebrew (macOS/Linux)
Feature Flags
Octobrain supports multiple embedding providers:
For API-based embeddings, set the appropriate environment variable:
VOYAGE_API_KEY for Voyage AI
OPENAI_API_KEY for OpenAI
GOOGLE_API_KEY for Google
JINA_API_KEY for Jina
Usage
Memory Management
Store and retrieve insights, decisions, and context:
All memory subcommands accept global flags:
--scope <string> — Override project scope (default: auto-detected from Git remote)
--role <string> — Filter by role (e.g. "developer", "reviewer")
Memory Consolidation
Close a goal and fold all its contributing memories into a consolidated summary:
Memory Relationships
Connect related memories for context-rich retrieval:
Knowledge Base
Index and search web content, docs, and files:
Knowledge Boxes
Import and sync git-backed knowledge bundles scoped to your projects:
MCP Server
Run as an MCP server for integration with Claude Desktop and other AI tools:
Available MCP Tools:
Features
- Semantic Search — Find memories by meaning using vector embeddings, not exact keyword matches
- Hybrid Search — Combines BM25 full-text search with vector similarity for better results
- Reranking Support — Pluggable cross-encoder reranking stage (provider-dependent)
- Auto-Linking — Automatically connects semantically similar memories (Zettelkasten-style)
- Temporal Decay — Ebbinghaus forgetting curve for importance management
- Knowledge Indexing — Ingest URLs, PDFs, docs for retrieval
- Project Scoping — Isolate memories per Git project or share across projects
- Role Filtering — Tag memories by role (developer, reviewer, etc.)
- Query Expansion (HyDE-lite) — Pseudo-relevance feedback for +10-30% recall on long-tail queries
- MCP Protocol — Full MCP 2026-07-28 compliance for AI tool integration
Benchmarks
Retrieval quality of octobrain's knowledge system on standard BEIR datasets — nDCG@10, fully local, no LLM judge, using the harness's default embedder bge-small-en-v1.5 (384-dim, 33M params). Each corpus passage is indexed through octobrain's real retrieval path and scored against the official qrels (metrics reproduce pytrec_eval).
- vector = dense-only retrieval; reproduces the embedder's published BEIR numbers (validates the harness).
- hybrid = BM25 + vector fused with Reciprocal Rank Fusion (k=60) — octobrain's default. Adds +2 nDCG@10 over the bare embedding and beats classic BM25 on both datasets.
¹ Canonical BM25 from the BEIR paper (Anserini/Lucene, k1=0.9 b=0.4).
² From the bge-small-en-v1.5 model card (MTEB).
Scope: this measures the ranking layer (embedding + BM25 fusion + reranking). BEIR passages are pre-chunked, so octobrain's chunking strategy is not exercised here.
⚠️ Reranker status: The cross-encoder reranker is currently a no-op with fastembed models (byte-identical results to hybrid-only). Rerank is excluded from the numbers above pending investigation. See benches/README.md for details.
Reproduce (downloads the datasets, builds a release binary, runs fully offline):
Configuration
Configuration is stored in ~/.local/share/octobrain/config.toml. The template written on first run defines every option with sensible defaults, but loading is strict — a field you delete by hand causes startup to fail rather than falling back to a default.
Override the config location with OCTOBRAIN_CONFIG_PATH=/path/to/config.toml.
Key Settings
Embedding Providers
Full Configuration
See config-templates/default.toml for all available options with documentation.
Memory Types
Organize memories by category for better filtering:
MCP Integration
Claude Desktop Setup
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
Restart Claude Desktop. Octobrain tools will be available in your conversations.
HTTP Transport
For web-based integrations:
The server exposes endpoints at /mcp for MCP protocol communication.
Storage Locations
Data is stored in platform-specific directories:
Project-specific memories are isolated by normalized Git remote URL (e.g., github.com/org/repo).
Contributing
Contributions are welcome! Please:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature)
- Run
cargo fmt --all to format code
- Run
cargo clippy and fix all warnings
- Run
cargo test --no-default-features
- Submit a pull request
Development Setup
License
Apache-2.0 — see LICENSE for details.
Credits
Developed by Muvon Un Limited.