pane 1 — pitch ↵ read

One call.
not ten reads.

Gortex indexes your repository into an in-memory knowledge graph and serves it to your coding agent over MCP, HTTP, and a web UI. smart_context replaces 5–10 file reads, cutting token usage by ~94%. 256 languages, 72 MCP tools, live editor-buffer overlays, dataflow, clone detection, and a 20-server LSP bridge.
Built for 15 AI coding agents — one binary, zero services.

$ curl -fsSL https://get.gortex.dev | sh [copy]
72
mcp tools
256
languages
15
agents wired
~94%
fewer tokens
pane 2 — session · agent@repo live
§01 · whytoken accounting

Stop paying your agent to re-read the same files.

A typical "make an edit" loop in Claude Code or Cursor does half a dozen Reads, a Grep, then maybe a Glob. Gortex answers the same question in one graph query — with callers, callees, imports,
blast radius, and interface implementors attached.

without gortexbaseline
11,480
tokens / edit
  • Read internal/watcher/watch.go (412 lines)
  • Read internal/graph/patch.go (289 lines)
  • Read internal/graph/types.go (603 lines)
  • Grep "OnFileChange" across workspace
  • Read 4 more files to resolve callers
  • Guess at the interface it satisfies
with gortex▶ smart_context
688
tokens / edit
  • 7 symbols · 3 files · signatures + callers
  • interface satisfied: graph.Patcher
  • blast radius: 4 symbols, 2 tests
  • no scan, no guessing, no re-reads
  • live-synced via fsnotify watcher
  • Δ −94.0% vs baseline
§02 · what's in the boxtwelve pillars

A graph, a server, a daemon, and a hook — in one static binary.

Zero external dependencies. Everything runs in-process, in memory, on your laptop. Sigstore-signed releases, SLSA Level 3 build provenance.

01 knowledge graph core

Files, symbols, imports, calls, fields, decorators, generics, error contracts, modules (npm · pypi · cargo · maven · go), SQL tables, channels, goroutines, flags, config keys, log/metric/pub-sub events, TODOs, licenses, owners — plus K8s resources, Kustomize overlays, Dockerfile images, dbt/SQLMesh models. One queryable structure with Tarjan SCC, Louvain communities, blast radius.

02 256 languages parse

Three-tier extraction. ~30 bespoke tree-sitter (Go, TS, Python, Rust, Java, C#, Kotlin, Swift, C, C++, Ruby, Elixir, OCaml, …) for deep resolution, ~60 regex for niche/legacy (ABAP, COBOL, Verse, AL, AutoHotkey), ~165 forest-backed signature-only (Vue, Svelte, GraphQL, Prisma, Typst, SystemVerilog, Cedar, TLA+, …) — one graph, one query surface.

03 72 mcp tools agent

Full surface: smart_context, get_edit_plan, verify_change, analyze (28 kinds — dead code, hotspots, cycles, routes, models, components, k8s_resources, pubsub, dbt_models, cross_repo, …), find_clones, search_ast, flow_between, taint_paths, scaffold, rename_symbol, edit_file + 16 resources + 3 prompts.

04 live editor overlays new

Shadow-graph sessions for unsaved buffers. overlay_register + overlay_push stages an editor buffer; every subsequent tool call reads through a per-request view layered on the immutable base graph. compare_with_overlay returns the base↔overlay delta. MCP-session-bound lifecycle; idle TTL fail-safe; drift detection via git-blob SHA.

05 dataflow + taint cpg-lite

value_flow / arg_of / returns_to edges built at index time. flow_between returns ranked dataflow paths between two symbol IDs; taint_paths runs pattern-driven source→sink sweeps for security audits — without ever loading a sandbox.

06 clone detection minhash

Every substantial function body reduced to a 64-slot token-normalised MinHash signature at index time; LSH banding + Jaccard threshold emits symmetric similar_to edges. find_clones {dead_only: true} yields the "dead duplicates of live code" diagnostic.

07 structural search search_ast

Cross-language tree-sitter S-expression search. Bundled detectors: sql-string-concat, weak-crypto, hardcoded-secret, panic-in-library, goroutine-without-recover, java-string-equality, … Filter by fan-in of the enclosing function to keep audits on the load-bearing parts of the repo.

08 diagnostics & code actions 20 lsps

Wired to gopls, tsserver, pyright, rust-analyzer, clangd, jdtls, kotlin-language-server, omnisharp, ruby-lsp, phpactor, lua-language-server, sourcekit-lsp, haskell-language-server, elixir-ls, ocamllsp, zls, terraform-ls, yaml-ls, json-ls, bash-ls. subscribe_diagnostics pushes deltas over MCP; get_code_actions + apply_code_action + fix_all_in_file apply LSP-supplied fixes atomically.

09 http server api

Versioned /v1/* JSON API on :4747 exposing all MCP tools, plus /v1/graph (force-directed dump), /v1/events (SSE graph-change stream), and the /v1/overlay/* editor-overlay surface. Localhost bind by default; bearer-token auth for non-localhost binds. Powers IDE plugins, CI hooks, and the Next.js web UI at gortexhq/web.

10 long-living daemon shared

One process, one graph, every editor window. Live fsnotify on every tracked repo, per-session workspace isolation, multi-server roster (route to additional local sockets or remote HTTPS servers). launchd/systemd auto-start at login — no sudo. Parallel warmup; ~200ms incremental snapshot restore vs 3-5s full re-index.

11 gcx1 + toon + compress −27%

Round-trippable GCX1 compact text on 17 list-shaped tools; auto-served to known clients. Median −27.4% tiktoken savings (best case −38.3%). TOON fallback for GCX-blind clients (~10–15% smaller than JSON). compress_bodies elides function bodies on source reads.

12 semantic + eval + ask measured

Hybrid BM25 + vector with RRF fusion; pluggable 11-signal rerank pipeline. Hugot bundled (pure-Go ONNX, MiniLM-L6-v2 auto-downloaded). Optional ask MCP tool + search_symbols assist backed by local llama.cpp / Anthropic / OpenAI / Ollama. First-class gortex eval (recall, embedders, GCX1 tokens, SWE-bench): R@1 42.3% · R@5 56.4% · R@20 69.9%.

§03 · architecturecat ARCHITECTURE.txt

Index. Serve. Watch.
In-process.

No database to run. No container to orchestrate. One binary, one graph, two ports — and a Unix-socket daemon when you want to share it across editor windows.

gortex binary ── single static · ~20MB · CGO-on
   
   ├─ CLI (cobra) ────────────────────┐
   ├─ MCP Server (stdio + sse) ───────┤
   ├─ HTTP Server (:4747 /v1/*) ──────┤   ◀── web UI · IDE plugins · CI
   ├─ Overlay Sessions (shadow view) ─┤   ◀── unsaved editor buffers, MCP-session bound
   └─ Daemon (~/.gortex/server.sock) ─┤   ◀── shared graph for every editor window
                                      ▼
                              ┌──────────────────────────┐
                              │   In-memory graph        │
                              │   nodes · edges · index  │
                              │   on-disk snapshot       │
                              └──────────────▲───────────┘
                                              
   ┌─ Indexer  ──► tree-sitter ◀── 256 langs ─┤
   │              + regex + forest tiers       │
   ├─ Resolver ──► LSP · go/types · SCIP ─────┤   tier-aware: lsp_resolved → ast_resolved → ast_inferred → text_matched
   │              + cross-repo evidence gate   │
   ├─ LSP Bridge ► 20 servers · diagnostics ──┤   subscribe_diagnostics · code actions · fix_all_in_file
   ├─ Watcher ───► fsnotify · debounced ──────┤   per-file patches
   └─ Clones ───► MinHash + LSH ──────────────┘   similar_to edges · dead-dup diagnostic
§04 · language coverage256 languages · 3 tiers

Speaks what your repo speaks.

Three-tier extraction: bespoke tree-sitter for deep resolution, regex for niche/legacy, forest-backed signature-only for the long tail. IMPLEMENTS inference for Go, TypeScript, Java, Rust, C#, Scala, Swift, and Protobuf — no extends keyword required.

#
language · deep extraction
fns
methods
types
interfaces
calls
§05 · quickstartthree steps · runs anywhere

Running in three commands.

macOS + Linux · amd64 + arm64. The installer detects your OS, downloads the signed release tarball, verifies SHA256 (and cosign if installed), drops the binary in $HOME/.local/bin. No silent sudo.
Re-runs upgrade in place.

01 · install
$ curl -fsSL https://get.gortex.dev | sh
# or: brew · .deb · .rpm · .apk
# or: go install github.com/zzet/gortex/cmd/gortex@latest

One-time machine setup: gortex install writes user-level MCP wiring + skills + slash commands at ~/.claude/ and ~/.gemini/.

02 · wire your agent
$ cd ~/projects/myapp
$ gortex init --analyze
# writes .mcp.json, CLAUDE.md,
# per-community SKILL.md, hooks

Auto-detects every agent in scope and writes a community-routing block to each — CLAUDE.md, AGENTS.md, .windsurfrules, GEMINI.md, .cursor/rules.

03 · serve + watch
$ gortex daemon start --detach
# or: gortex mcp --watch (per-repo)
# or: gortex server --index .

Daemon runs in the background, supervises the graph for every tracked repo. Auto-start at login: gortex daemon install-service.

§06 · works with15 first-class adapters

Every coding agent
you already run.

Gortex is MCP-native. If your agent speaks the Model Context Protocol, it speaks Gortex. gortex init auto-detects each agent in scope and writes the right config.

Claude Code
slash commands, skills, hooks (PreToolUse, PreCompact, Stop)
● configured
Cursor
.mcp.json + .cursor/rules/gortex-communities.mdc
● configured
Kiro
steering files + agent hooks + .mcp.json
● configured
Windsurf
.windsurfrules + community routing block
● configured
VS Code / Copilot
workspace MCP config + instructions
● configured
Continue.dev
.continue/config.json MCP block
● configured
Cline
cline_mcp_settings.json + AGENTS.md
● configured
OpenCode
opencode.json + AGENTS.md routing
● configured
Antigravity
~/.gemini/antigravity Knowledge Items
● configured
Codex CLI
stdio MCP, scriptable, CI-friendly
● configured
Gemini CLI
~/.gemini settings + GEMINI.md
● configured
Zed
.zed/settings.json MCP wiring
● configured
Aider
.aider.conf.yml + AGENTS.md routing
● configured
Kilo Code
.kilocode/mcp.json auto-discovery
● configured
OpenClaw
openclaw config + community routing
● configured
§07 · get startedexit 0

Teach your agent
what your code knows.

Source-available under a PolyForm-based license — free for individuals, OSS projects, small businesses (<50 staff / <$500K rev), nonprofits, and education. Zero dependencies. One static binary. Sigstore-signed, SLSA-3 build provenance, OpenSSF Scorecard tracked, VirusTotal 0/91.

on main · v0.25.0 · the IDE burst
· live editor overlays (shadow-graph)+
· compare_with_overlay base↔shadow diff+
· pluggable 11-signal rerank pipeline+
· get_class_hierarchy (up/down inheritance)+
· python layout-aware relative imports+
· dbt / SQLMesh model + column lineage+
· event pub/sub edges (emits / listens_on)+
· grpc stub call resolution + cross-repo+
· multi-provider LLM (local/anthropic/openai/ollama)+
· search_symbols assist: auto/on/off/deep+
· cross-repo edge layer + evidence gate+
· find_clones (MinHash + LSH, dead-dup)+
· per-session workspace isolation+
· stratified test classification (unit/e2e/…)+
· parallel daemon warmup · faster status+
· 165 new langs via go-sitter-forest+
· search_ast structural search + detectors+
· k8s / kustomize / dockerfile graph layer+
v0.19–v0.24 highlights
· flow_between / taint_paths (CPG-lite)+
· subscribe_diagnostics + code actions (20 LSPs)+
· framework graph (routes / orm / components)+
· edit_file / write_file (no read-first)+
· bearer-token auth + /v1/graph + /v1/events+
· frontend extracted to gortexhq/web+
· toon fallback wire format+
· compress_bodies on source-reading tools+
· 16 mcp resources (was 7)+
● main
watcher: running
graph: 72 tools · 16 resources · 3 prompts
mcp: stdio · http: :4747 · daemon: socket
v0.25.0
source-available