Native code intelligence

Seewhat connects.

Compass turns a repository into a local, evidence-backed graph—so every change starts with context.

Start at the terminal
$curl --proto '=https' --tlsv1.2 -LsSf https://github.com/crabbuild/compass/releases/latest/download/install.sh | sh
native Rustone executable, linked parsers
local firstno model or database required
traceablesource ranges and provenance
boundedexplicit limits on graph work

From a real repository

The graph captures are built from the packages/compass-viewer source; the history panels show the same evidence model across revision-aware review. Move from orientation to a source line, then into history, without leaving the same local graph story.

Compass export HTML overview showing the Compass viewer package graph and inspector.
packages/compass-viewer568 nodes · 548 edges · local snapshot

Map the system

See the whole repository before you touch a file.

The export starts with a bounded graph and a searchable inspector. You can orient around the shape of a real package without losing the source context underneath it.

01local artifact · inspectable output · source-aware UX

Explore the code graph

Try a real codebase

Explore the relationships before they become a change.

Drag, search, and pin a symbol in a real dotenv@17.4.2 snapshot. Every node and edge keeps its source path, line range, and relationship type attached.

25 nodes · 52 edges · local snapshotOpen the full graph workspace
dotenv@17.4.2 · source graph25 nodes · 52 edges

A smaller surface for a large system

The graph is useful because the evidence stays attached.

Compass does more than draw nodes. It preserves direction, source anchors, multiplicity, and provenance while it builds a queryable snapshot.

Map
See the shape of a system
Communities, architecture reports, and directed relationships turn an unfamiliar repository into a navigable surface.
Explore code graphs
Compare
Know the blast radius
Follow reverse dependencies and compare graph realizations across exact Git commits before a change ships.
Trace historical change
Query
Ask exact questions
CompassQL gives scripts and assistants a deterministic, read-only way to ask structural questions with evidence.
Read about CompassQL

How it works

A source-driven pipeline you can inspect.

Discovery, extraction, resolution, and analysis each have a clear boundary. The result is one coherent snapshot—not a black-box answer.

Read the pipeline guide
01
Discoverclassify files + scopeignore rules define the corpusmanifest
02
Extractemit per-file factssyntax facts keep their source anchorsevidence
03
Resolveconnect cross-file linksambiguity stays visible at the boundaryrelationships
04
Publishvalidate one snapshotcomplete artifacts land atomicallygraph.json

Artifact lineage

Four boundaries, one publishable snapshot.

Compass / visual contract
Compass source-driven pipelineCompass files move from scoped discovery to per-file evidence, resolved relationships, and one validated graph JSON snapshot. Each boundary names its owner and artifact.01Discoverscope + classify filesowner · compass-filesmanifest.json02Extractsyntax facts + anchorsowner · compass-languagesper-file facts03Resolveconnect cross-file linksowner · compass-resolvedirected edges04Publishvalidate + materializeowner · compass-graphgraph.jsonrepository scopesource evidencerelationship setatomic snapshot
CompassQL / exact path
read-only

MATCH (entry)-[:CALLS*1..4]->(target)

WHERE entry.name = "CheckoutHandler"

RETURN target.id, target.path

limit: 100 · path expansion: bounded · provenance: retained

RESULTS3 rows

01 PaymentGateway

02 Inventory.reserve

03 Session.authorize

Boundaries by default
Local work stays local.

Structural extraction and graph queries do not require Python, embeddings, model credentials, or runtime grammar downloads.

local source processing explicit optional providers bounded graph operations
Read the security boundary

Make the next change with context

Ship the next change with context.

Install Compass locally, build your first graph, and ask one question you could not answer from a file tree alone.