Privacy-first, proactive memory for AI tools β 100% local, zero API calls.
Omnimind is a local memory engine that stores, searches, predicts, and visualizes relevant context across your AI tools (Claude Code, Cursor, ChatGPT, etc.) via the Model Context Protocol (MCP). It runs entirely on your machine: embeddings, search, compression, and encryption are all local.
| Traditional Memory | Omnimind | |
|---|---|---|
| Retrieval | Reactive search | Proactive prediction |
| Storage | Flat, verbatim forever | Hierarchical aging (L0βL3) |
| Scope | Single tool | Cross-tool via MCP + Bus |
| Exploration | Terminal only | Visual GUI (Tauri desktop) |
| Privacy | Cloud APIs | 100% local, encrypted at rest |
| Cost | $0.001β$0.01 per write | $0 (zero-LLM write path) |
βββββββββββββββββββββββββββββββββββββββββββ
β VISUAL EXPLORER β β Tauri + Svelte 5 desktop GUI
β - Search, timeline, concept graph β
β - Drag-and-drop organization β
βββββββββββββββββββββββββββββββββββββββββββ€
β CROSS-TOOL MEMORY BUS β β MCP + event sync
β - MemoryBus (pub/sub) β
β - ConflictResolver β
β - ClaudeAdapter (more coming) β
βββββββββββββββββββββββββββββββββββββββββββ€
β PREDICTION LAYER β β < 5ms intent prediction
β - ActivityTracker (fs + bus watcher) β
β - PatternStore (SQLite persistence) β
β - ContextInjector (MCP resource) β
βββββββββββββββββββββββββββββββββββββββββββ€
β MCP SERVER β β Claude, Cursor, any MCP client
β - omnimind_search β
β - omnimind_store β
β - omnimind_predict β
β - omnimind_status β
β - omnimind_subscribe β
β - omnimind_sync β
β - Resources + Prompts β
βββββββββββββββββββββββββββββββββββββββββββ€
β NEURO-SYMBOLIC MEMORY CORE β
β ββ L0: Verbatim (0β7 days) β
β ββ L1: Compressed (7β30 days) β β Rule-based shorthand
β ββ L2: Concept Graph (30β180 days) β β Entity extraction
β ββ L3: Wisdom (180+ days) β β Pattern distillation
βββββββββββββββββββββββββββββββββββββββββββ€
β LOCAL SQLITE + ONNX β
β - FTS5 keyword search β
β - Vector search (384-dim embeddings) β
β - AES-256-GCM encryption at rest β
βββββββββββββββββββββββββββββββββββββββββββ
Every memory exists simultaneously as text, vector embedding, and knowledge graph β kept in sync automatically.
Download the latest release for your platform β no Node.js or technical setup required.
| Platform | Download | Size |
|---|---|---|
| macOS (Apple Silicon) | .dmg |
~185 MB |
| macOS (Intel) | .dmg |
~186 MB |
| Windows | .msi installer |
~175 MB |
| Linux (Ubuntu/Debian) | .deb package |
~400 MB |
π¦ Download v0.6.4
First launch:
- Install the app (drag to Applications on macOS, run the installer on Windows, or
dpkg -ion Linux) - Double-click to open β the app creates its data directory and downloads the ~80MB ONNX model on first run
- The GUI opens automatically at
http://localhost:8844
Note: The desktop app includes the visual explorer and local memory engine. To connect Omnimind to Claude Code, Cursor, or other AI tools, you still need to set up MCP integration separately.
For command-line usage, programmatic access, or MCP server integration:
# Install globally
npm install -g omnimind
# Initialize (creates ~/.omnimind/)
npx omnimind init
# Store a memory
npx omnimind store "Use GraphQL not REST for the API" --wing project-alpha --room architecture
# Search memories
npx omnimind search "API architecture decision"
# Get predictions for current context
npx omnimind predictFirst run downloads the ~80MB ONNX model (all-MiniLM-L6-v2) from Hugging Face. All subsequent operations are fully offline.
# Clone and install dependencies
npm install
# Build TypeScript
npm run build
# Start HTTP server
npm run server
# Launch GUI in dev mode
npm run gui:dev| Command | Description |
|---|---|
init |
Create data directory and initialize database |
store <content> |
Store a new memory with optional --wing, --room, --pin |
search <query> |
Hybrid semantic + keyword search |
predict |
Predict relevant memories for current context |
activity |
Show recent activity and prediction pattern stats |
inject |
Print formatted context injection string for current context |
status |
Show system stats and layer distribution |
mine <file.md> |
Import memories from a markdown file |
bus status |
Show connected tools and bus statistics |
bus sync [tool] |
Sync missed events from a specific tool |
bus conflicts |
List unresolved conflicts |
wipe --yes-i-am-sure |
Delete all memories (irreversible) |
Enable AES-256-GCM encryption with a passphrase:
import { Omnimind } from 'omnimind';
const omni = await Omnimind.create({
encryption: { passphrase: 'your-secret' }
});Keys are derived from your machine fingerprint + optional passphrase via HKDF-SHA256. Without the passphrase, data is still encrypted with a machine-bound key.
| Tool | Input | Output |
|---|---|---|
omnimind_search |
query, limit, wing, room |
Ranked memory list |
omnimind_store |
content, wing, room, pin |
Stored memory ID |
omnimind_predict |
projectPath, gitBranch, currentFile |
Top-3 predictions |
omnimind_status |
β | Stats, health, layer counts |
omnimind_subscribe |
wings, rooms, eventTypes |
Subscription confirmation |
omnimind_sync |
since, toolId |
Missed events list |
| Resource | Description |
|---|---|
omnimind://context/predictions |
Current predictions as JSON |
omnimind://stats/overview |
System health and statistics |
| Prompt | Description |
|---|---|
memory-aware |
System prompt with injected memory predictions |
The desktop app does not automatically configure Claude Code or Cursor β you need to point them to the MCP server manually.
Add to your Claude Code settings (~/.claude/settings.json):
{
"mcpServers": {
"omnimind": {
"command": "npx",
"args": ["omnimind-mcp"]
}
}
}Requirements: npm install -g omnimind must be available in your PATH so that npx omnimind-mcp resolves correctly. The MCP server runs independently of the desktop GUI.
Omnimind exposes a local REST API (default port 8844) used by the desktop GUI and available for external integrations:
# Start the server manually (if not using the desktop app)
npm run server| Endpoint | Method | Description |
|---|---|---|
/api/health |
GET | Server health |
/api/memories |
GET | List memories (with filters) |
/api/memories |
POST | Create a memory |
/api/memories/:id |
GET | Get memory by ID |
/api/memories/:id |
DELETE | Delete memory |
/api/search |
GET | Hybrid search |
/api/predictions |
GET | Get predictions |
/api/stats |
GET | System statistics |
/api/context |
GET | Context injection string |
/api/bus/status |
GET | Bus statistics |
/api/bus/sync |
POST | Sync missed events |
Omnimind Explorer is a cross-platform desktop app built with Tauri v2 and Svelte 5. It bundles the Node.js backend, SQLite database, and ONNX model into a single installable package β no separate server setup needed.
# Development (hot reload) β requires Node.js + Rust
npm run gui:dev
# Production build β produces .dmg / .msi / .deb
npm run gui:buildFeatures:
- Search β Live hybrid search with filters
- Timeline β Chronological memory explorer
- Concept Graph β Relationship visualization (D3.js)
- Stats β Real-time system health in sidebar
These commands are for contributors working on the Omnimind codebase.
# Install dependencies
npm install
cd gui && npm install
# Type-check
npm run typecheck
# Build TypeScript
npm run build
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
# Watch mode
npm run test:watch
# Lint
npm run lint
# Format
npm run format
# Start HTTP server
npm run server
# GUI dev mode
npm run gui:dev
# GUI production build (requires Rust toolchain)
npm run gui:build- 104 tests across 14 test files
- ~90% lines, ~92% functions, ~75% branches
| Layer | Technology |
|---|---|
| Language | TypeScript 5.5 (strict mode, exactOptionalPropertyTypes) |
| Runtime | Node.js β₯ 18 |
| Database | SQLite (better-sqlite3) with WAL mode, FTS5 |
| Embeddings | Local ONNX (all-MiniLM-L6-v2, 384-dim) |
| Vector Search | sqlite-vss (optional; brute-force fallback) |
| Encryption | AES-256-GCM + HKDF-SHA256 |
| MCP Protocol | @modelcontextprotocol/sdk |
| Validation | Zod |
| Testing | Vitest + v8 coverage |
| Desktop GUI | Tauri v2 + Svelte 5 + Vite + TailwindCSS |
| Distribution | .dmg (macOS), .msi (Windows), .deb (Linux) |
| Charts | D3.js |
| HTTP Server | Node.js built-in (node:http) |
- No external API calls during normal operation (model downloaded once on first run)
- Encrypted at rest β AES-256-GCM with authenticated encryption
- Local-only β Your data never leaves your machine
- Parameterized SQL β All queries use prepared statements
- Privacy-first tracking β Only hashes of project path, git branch, and file extension; never file contents or URLs
See ROADMAP.md for the full phased plan.
Completed:
- β Phase 1: SQLite-backed MemoryStore, ONNX embedding engine, hybrid search, hierarchical aging (L0βL3), MCP server, CLI
- β Phase 2: ActivityTracker, PatternStore (SQLite persistence), ContextInjector (MCP resources/prompts), proactive prediction
- β
Phase 3: Cross-tool Memory Bus (MemoryBus, ConflictResolver, ClaudeAdapter),
omnimind_subscribe+omnimind_sync - β Phase 4: Visual Memory Explorer (Tauri + Svelte 5 desktop GUI), HTTP REST API, Search/Timeline/Graph views
Upcoming:
- MCP polish (auto-save hooks, multi-agent isolation)
- P2P encrypted sync
- Advanced NER for concept extraction
- Team memory spaces
MIT β See LICENSE
