Skip to main content

Travsr

The code graph that lives next to git.

Travsr is a graph-native, always-fresh code intelligence daemon. Instead of treating your codebase as unstructured text, Travsr builds a live graph and exposes it via MCP so AI agents traverse the graph rather than guessing from chunks.

Result: 80% fewer tokens, zero structural hallucinations, always-fresh context.

Quick Start

npm install -g travsr
cd your-repo
travsr init

How It Works

  1. Indexing. Tree-sitter parses your code into a structural graph. LSIF compilers (tsc, rust-analyzer, pyright) add semantic edges including call graphs, type references, and data flow.
  2. Storage. The graph lives in SQLite (MVP) or Kùzu (production). Node identity uses Kythe VNames for cross-repo stability.
  3. Retrieval. BFS, Personalized PageRank, and PCST algorithms return the minimal subgraph relevant to a query.
  4. Serving. The graph is exposed via the Model Context Protocol over stdio (local) or SSE (cloud).

Supported Languages

LanguageTree-sitterLSIF (semantic)
TypeScriptS1S4
RustS8S9
PythonS10S13
GoS12S13

MCP Tools

ToolDescription
get_dependenciesDirect and transitive imports for a file
get_callersAll call sites of a symbol across repos
get_blast_radiusWhat breaks if this file changes
get_execution_pathPCST path between two symbols
get_contextFull PPR + knapsack context for a query
search_symbolFind symbol definitions by name
get_repo_mapStructural overview of a repository

Architecture

Travsr is a Rust workspace with 7 crates:

travsr-core Graph engine: nodes, edges, Kythe VNames
travsr-indexer Tree-sitter + LSIF parsing pipeline
travsr-store Storage abstraction (SQLite / Kùzu)
travsr-retrieval BFS, PPR, PCST, k-core, knapsack
travsr-mcp MCP server (stdio + SSE)
travsr-daemon Git hook, file watcher, scheduler
travsr-cli travsr binary entrypoint