Organon
Local-first · Agent-native

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.

01

Why Organon exists

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.

Entity Graph

Identity for every file

Each file gets a stable identity, purpose description, tags, and a rich relationship graph — not just a path string.

Lifecycle Engine

Files as living organisms

Born → Active → Dormant → Archived → Dead. Organon tracks state transitions and surfaces what matters now.

Semantic Search

Find by meaning, not name

Vector search via fastembed + LanceDB. Full-text via Tantivy. Hybrid mode combines both with metadata filters.

MCP Server

Agent-native from day one

Claude, Cursor, and any MCP-compatible agent can query, relate, and navigate your file graph directly.

Watcher

Always in sync

Filesystem events drive entity creation and updates in real time. No manual indexing, no stale data.

Portability

100% local storage

SQLite for the entity graph. LanceDB for vectors. Everything lives on disk — no cloud dependency.

02

Lifecycle state machine

Every entity moves through a deterministic state machine. Transitions are triggered by filesystem events, git activity, access patterns, and explicit user commands.

Born File detected for the first time
Active Recently modified or accessed
Dormant No activity for a threshold period
Archived Explicitly archived or auto-retired
Dead File deleted from filesystem
03

Architecture

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.

Layer 01

organon-core

Rust daemon. Filesystem watcher via notify. Entity graph in SQLite. FTS via Tantivy. Lifecycle state machine.

Layer 02

ai/ extractor + embeddings

Python. Content extraction for text, PDF, code. Local semantic vectors via fastembed + LanceDB. Summaries via Ollama.

Layer 03

organon-mcp + cli

MCP server exposing search, query, and relate tools to agents. CLI for power users: find, graph, diff, export.

04

CLI reference

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
05

Stack

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.