Your filesystem, finally alive
Organon is a semantic layer over your filesystem. Every file becomes a living entity — with identity, context, relationships, and a lifecycle. Built for humans and AI agents alike.
Organon is a semantic layer over your filesystem. Every file becomes a living entity — with identity, context, relationships, and a lifecycle. Built for humans and AI agents alike.
Files are not static blobs. They're created with intent, evolve over time, relate to other files, and eventually become irrelevant. No existing tool treats them this way.
Each file gets a stable identity, purpose description, tags, and a rich relationship graph — not just a path string.
Born → Active → Dormant → Archived → Dead. Organon tracks state transitions and surfaces what matters now.
Vector search via fastembed + LanceDB. Full-text via Tantivy. Hybrid mode combines both with metadata filters.
Claude, Cursor, and any MCP-compatible agent can query, relate, and navigate your file graph directly.
Filesystem events drive entity creation and updates in real time. No manual indexing, no stale data.
SQLite for the entity graph. LanceDB for vectors. Everything lives on disk — no cloud dependency.
Every entity moves through a deterministic state machine. Transitions are triggered by filesystem events, git activity, access patterns, and explicit user commands.
A Rust core for speed and correctness, a Python AI layer for embeddings and extraction, and an MCP server that connects everything to any compatible AI agent.
Rust daemon. Filesystem watcher via notify. Entity graph in SQLite. FTS via Tantivy. Lifecycle state machine.
Python. Content extraction for text, PDF, code. Local semantic vectors via fastembed + LanceDB. Summaries via Ollama.
MCP server exposing search, query, and relate tools to agents. CLI for power users: find, graph, diff, export.
The organon binary covers watching, finding, searching,
graphing, diffing, and exporting. Global flags: --quiet,
-v, -vv.
# Watch roots for filesystem changes organon watch . # Find entities with metadata filters organon find --state active --ext rs organon find --modified-after 2026-01-01 --larger-than-mb 10 organon find --created-after 2026-01-01 # Semantic + full-text search with filters organon search "watcher" --state active --ext rs --mode hybrid organon search "sqlite graph" --modified-after 2026-01-01 organon search "embedding model" --mode vector # Graph relationships — text, DOT, or Mermaid output organon graph path/to/file.rs --depth 2 --format text organon graph path/to/file.rs --format dot organon graph path/to/file.rs --format mermaid # Diff filesystem vs DB, export data organon diff . organon diff . --json organon export --format json organon export --format csv --output entities.csv organon export --format dot --output graph.dot # Recompute summary for one entity organon summarize path/to/file.rs --model llama3.2
Every dependency chosen for local-first, agent-native operation — nothing in the critical path requires a network call.
| Layer | Technology |
|---|---|
| Core daemon | Rust — notify · tokio · rusqlite · tantivy |
| Semantic vectors | Python — fastembed · lancedb |
| Content extraction | Python — text · PDF · code · images |
| Local LLM | ollama — summaries via any local model |
| Agent protocol | MCP — Model Context Protocol |
| Storage | SQLite + LanceDB — 100% on-disk |
| Future UI | Tauri — macOS menu bar app |
Install dependencies with uv sync (Python layer) and
cargo build --release (Rust core). See
setup.sh for full bootstrapping.