Architektur

The architecture.

One Rust binary. Five subsystems. Zero cloud dependencies. Every box below maps to a real module, port, or file on disk.

System topology.

Die Prozess-Topologie der ausgelieferten Binary: sieben Einstiegspunkte, eine Laufzeit, ein Satz lokaler Stores. Jede Box unten entspricht einem echten Modul, Port oder einer Datei auf der Platte.

One binary. Five subsystems. No cloud required.

Datenfluss Stage by stage.

Blatt 2 verfolgt eine Anfrage Stufe für Stufe durch die Laufzeit, inklusive des Cache-Kurzschlusses, der wiederholte Reads nahezu kostenlos macht. Der Shell-Pfad läuft parallel mit derselben Abrechnung.

Kompression engine.

Tree-sitter parses 27 languages into ASTs. 10 read modes select the right abstraction level — from full source to aggressive entropy filtering. 95+ shell patterns compress git, cargo, npm, docker, and kubectl output into compact evidence.

Explore read modes
ctx_read — mode selection auto
Available modes
full entire file, no compression
signatures fn signatures + type defs
map structural overview
diff uncommitted changes only
task query-conditioned extract
aggressive maximum compression
entropy information-dense lines
reference symbols + doc comments
lines:N-M specific line range
Selected: signatures (420 lines → 18 lines)
27 languages · tree-sitter −95.7%

Memory, agents, security.

Content-addressed caching collapses re-reads to ~13 tokens. A knowledge graph persists decisions across sessions. The agent bus coordinates multiple agents without duplicating context. PathJail, shell allowlists, and TOCTOU checks enforce deny-by-default boundaries on every call.

Security model
lean-ctx doctor all passed
Cache 47 entries · 73% hit rate
Knowledge 342 nodes · 1,205 edges
Agent bus 3 agents registered
PathJail root: /Users/dev/project
Allowlist 14 allow, 6 deny
Redaction .env, credentials.*
TOCTOU open-handle verify active
Ledger Ed25519-signed · 0 violations
8/8 subsystems healthy deny-by-default

Engineering data sheet.

Die Referenztabellen hinter den Zeichnungen: jede Oberfläche mit Transport und Lebenszyklus, das On-Disk-Layout, die adaptiven Lernschichten und die Sicherheitsgrenzen, die die Laufzeit durchsetzt.

AProzessmodell

Alle Oberflächen sind dieselbe Binary in verschiedenen Rollen. Nichts braucht eine Cloud-Verbindung; alles bindet local-first.

REF SURFACE TRANSPORT ENDPOINT LIFECYCLE BEFEHL
01 MCP-Server (stdio) JSON-RPC über stdin/stdout pro Editor-Session gestartet Kindprozess des Editors lean-ctx
02 MCP-Server (HTTP) MCP Streamable HTTP localhost, konfigurierbar via --host/--port Vordergrund oder Service lean-ctx serve
03 IPC-Daemon Unix Domain Socket OS-Data-Dir, z. B. ~/Library/Application Support/lean-ctx/daemon.sock launchd / systemd Autostart lean-ctx serve --daemon
04 Shell-Hook Prozess-Exec, komprimierter stdout umschließt IDE-Bash-Aufrufe + interaktive Shells pro Befehl lean-ctx -c "<cmd>"
05 API-Proxy HTTP (LLM-API-Pass-through) localhost:4444 (Standard) bei Bedarf lean-ctx proxy start
06 Web-Dashboard HTTP + Bearer-Token localhost:3333 (Standard, --port) bei Bedarf lean-ctx dashboard
07 Terminal-UI TTY (In-place-Redraw) Live-Event-Stream / 1 s Refresh interaktiv lean-ctx watch · gain --live

BStorage-Layout — lokale XDG-Verzeichnisse

Persistenter Zustand sind einfache Dateien unter den XDG-Basisverzeichnissen: inspizierbar, exportierbar, löschbar. Keine versteckten Datenbanken außerhalb dieser lokalen Ordner.

ARTEFAKT FORM ZWECK
config.toml TOML Einzelne Config-Datei — Integrationsmodus, Kompression, Provider, Opt-outs (Config-Dir)
cache/ content-adressiert Session-Datei-Cache; unveränderte Re-Reads kollabieren zu ~13-Token-Stubs (Cache-Dir)
bm25 index invertierter Index Lexikalische Suche über Code-Chunks + Provider-Dokumente (Data-Dir)
context_graph/ Property-Graph Imports, Calls, Typen über Dateien und Repos — treibt map-Modus + Deep-Queries (Data-Dir)
knowledge SQLite Persistente Fakten, Entscheidungen, Rooms — über Sessions hinweg abrufbar, CCP (Data-Dir)
savings ledger append-only JSONL Jedes Kompressions-Event; Ed25519-signierbar für Audits (Data-Dir)
litm_calibration.json JSON Gelernte Kontext-Positions-Trefferraten (Lost-in-the-Middle-Kalibrierung) (Cache-Dir)
events.jsonl Event-Stream Live-Feed, konsumiert von watch, Dashboard und Efficacy-Reports (State-Dir)

CAdaptive Lernschichten

Sieben Online-Learning-Mechanismen stimmen die Kompression auf deine reale Nutzung ab — lokal, aus Qualitätssignalen wie Bounces und Edit-Fehlern. Tiefer eintauchen: Adaptive Learning →

  • L1
    Adaptive Schwellenwerte Online-gelernte Kompressions-Aggressivität aus Qualitätssignalen (Bounces, fehlgeschlagene Edits, saubere Runs)
  • L2
    LITM-Kalibrierung Empirische Platzierung kritischen Kontexts an Positionen, die das Modell tatsächlich beachtet
  • L3
    Stigmergisches Scent-Field Multi-Agent-Koordination über zerfallende Marker: claimed, done, stuck, hot, avoid
  • L4
    Delta-Playbook Inkrementelle Checkpoint-Snapshots, die Kontext-Kompaktierung überleben
  • L5
    Query-konditioniertes IB Information-Bottleneck-Kompression, fusioniert mit Query-Relevanz
  • L6
    Theta-Gamma-Chunking Wakeup-Fakten gruppiert in attention-freundlichen Bursts
  • L7
    Semantisches Dedup Likelihood-bewertete Redundanzfilterung über die Session

DSicherheitsgrenzen

Harte Garantien, in der Laufzeit durchgesetzt. Sicherheitsmodell →

  • PathJail Jeder Dateizugriff wird kanonisiert und auf den Workspace-Root beschränkt
  • IDE-Config-Dir-Jail Home-Level-IDE-/Agent-Config-Dirs (~/.claude, ~/.codex, ~/.codebuddy, …) sind nur schreibbar, wenn allow_ide_config_dirs aktiviert ist; sonst blockiert PathJail sie
  • Shell-Allowlist Deny-by-default-Befehls-Policy für agent-initiierte Shell-Ausführungen
  • Local-first Gesamte Verarbeitung on-device; das Dashboard bindet an localhost und erfordert ein Bearer-Token
  • Signierte Evidenz Savings-Ledger-Einträge sind Ed25519-signierbar und batch-verifizierbar

Explore thesource.

LeanCTX is open source. Read the code, understand the design, contribute.

Support this project