Installation
Travsr ships as a single binary. Pick the method that fits your setup.
npm (recommended)
Requires Node.js ≥ 18.
npm install -g @travsr.com/travsr
Verify:
travsr --version
To update:
npm update -g @travsr.com/travsr
curl (install script)
Downloads, verifies, and installs the right binary for your platform in one step:
curl -fsSL https://travsr.com/install.sh | sh
By default this installs to $HOME/.local/bin. A piped script can't take flags directly, so forward them with sh -s --:
# Install to /usr/local/bin instead (escalates with sudo unless already root)
curl -fsSL https://travsr.com/install.sh | sh -s -- --system
# Install a specific release instead of latest stable
curl -fsSL https://travsr.com/install.sh | sh -s -- --version v1.0.0-beta.2
# Just print the detected target triple, no network access
curl -fsSL https://travsr.com/install.sh | sh -s -- --print-target
Set TRAVSR_INSTALL_DIR to override the default install directory.
Verify:
travsr --version
Pre-built binary
Download the latest release from GitHub directly:
# macOS (Apple Silicon)
curl -L https://github.com/Travsr-com/travsr/releases/latest/download/travsr-aarch64-apple-darwin.tar.gz | tar xz
sudo mv travsr /usr/local/bin/
# macOS (Intel)
curl -L https://github.com/Travsr-com/travsr/releases/latest/download/travsr-x86_64-apple-darwin.tar.gz | tar xz
sudo mv travsr /usr/local/bin/
# Linux (x86_64)
curl -L https://github.com/Travsr-com/travsr/releases/latest/download/travsr-x86_64-unknown-linux-musl.tar.gz | tar xz
sudo mv travsr /usr/local/bin/
# Linux (ARM64)
curl -L https://github.com/Travsr-com/travsr/releases/latest/download/travsr-aarch64-unknown-linux-musl.tar.gz | tar xz
sudo mv travsr /usr/local/bin/
Binaries are statically linked (musl on Linux) and have no runtime dependencies.
Build from source
Requires Rust ≥ 1.78 (edition 2021).
git clone https://github.com/Travsr-com/travsr.git
cd travsr
cargo build --release --bin travsr
sudo cp target/release/travsr /usr/local/bin/
For development (faster incremental builds):
cargo install --path crates/travsr-cli
Language packages
Travsr has two analysis layers:
- Structural analysis is built into the core binary. It parses your code with Tree-sitter and gives you class, function, method, and import nodes for every supported language. It is always on and needs no extra install.
- Semantic analysis adds deep call edges, type resolution, and cross-module references via external LSIF/SCIP tools. It is opt-in per language and per repository.
Rust, TypeScript, JavaScript, and Python have semantic analysis built into the core binary and run automatically. More languages install as separate packages:
# See what languages are in your repo
travsr lang detect
# Install a specific language tool
travsr lang install go
travsr lang install ruby
travsr lang install php
travsr lang install cpp
travsr lang install c
travsr lang install swift
travsr lang install objectivec # macOS only (libclang-based)
travsr lang install dart
# JVM and .NET languages need network access to fetch build dependencies.
# travsr lang install will prompt for approval interactively.
travsr lang install java
travsr lang install kotlin
travsr lang install csharp
travsr lang install scala
| Language | Package | Sandbox | Underlying tool |
|---|---|---|---|
| TypeScript / JavaScript | built-in | Standard | travsr-lsif-ts (optional upgrade) |
| Rust | built-in | Standard | rust-analyzer (optional upgrade) |
| Python | built-in | Standard | travsr-lsif-py (optional upgrade) |
| Go | @travsr-plugin/go | Standard | scip-go |
| Ruby | @travsr-plugin/ruby | Standard | scip-ruby |
| PHP | @travsr-plugin/php | Standard | scip-php |
| Swift | @travsr-plugin/swift | Standard | travsr-swift-index-emitter |
| Objective-C | @travsr-plugin/objectivec | Standard (macOS only) | travsr-lang-objectivec |
| C++ | @travsr-plugin/cpp | Native IPC | scip-clang |
| C | @travsr-plugin/c | Native IPC | scip-clang |
| Dart | @travsr-plugin/dart | Native IPC | travsr-dart-index-emitter |
| Java | @travsr-plugin/java | Elevated | scip-java |
| Kotlin | @travsr-plugin/kotlin | Elevated | kotlin-language-server |
| C# | @travsr-plugin/csharp | Elevated | scip-dotnet |
| Scala | @travsr-plugin/scala | Elevated | sbt |
The Package column is historical. npm install -g @travsr-plugin/<lang> is no
longer an install path; travsr lang install is the only one, and it fetches the
analyzer into ~/.travsr/bin/.
TypeScript, JavaScript, Rust, and Python have a native Phase B compiled into the
daemon, so they index call edges with nothing installed. The tool named for them
above is an upgrade rather than a requirement, and travsr lang list reports
the language as active either way.
Trust model
Language tools run in a sandboxed subprocess. There are three sandbox classes:
- Standard (TypeScript, JavaScript, Rust, Python, Go, Ruby, PHP, Swift, Objective-C): no network access and no dependency downloads.
- Native IPC (C, C++, Dart): no network access either, but the analyzer's parallel workers need POSIX message queues and shared memory. macOS has no Seatbelt rule that permits those, so on macOS these run under resource limits instead of
sandbox-exec. No approval is required. - Elevated (Java, Kotlin, C#, Scala): the build tool (Maven, Gradle, NuGet, sbt) downloads dependencies at analysis time. That access is granted automatically for local use, so installing one of these needs no approval step.
Earlier versions gated the elevated languages behind an approval recorded per
user: an approver's GitHub handle, a justification, and a host allowlist,
entered interactively or written by travsr lang approve. That gate and the
command are both gone. The runtime isolation policy is unchanged; only the human
approval moment was removed. On Linux the analyzer still runs under bubblewrap
filesystem confinement.
On Windows, Java and Scala cannot run inside the isolation layer at all, because
their build tools fork workers that fail in it. They are skipped there unless you
grant permission with travsr lang allow-unsandboxed. macOS and Linux are
unaffected.
For CI or scripting, skip the prompts:
travsr lang install java --no-interactive
Supported platforms
| Platform | npm | binary |
|---|---|---|
| macOS arm64 (Apple Silicon) | ✓ | ✓ |
| macOS x86_64 (Intel) | ✓ | ✓ |
| Linux x86_64 | ✓ | ✓ |
| Linux ARM64 | ✓ | ✓ |
| Windows x86_64 | ✓ | ✓ |
VS Code extension
Install via the command palette (Ctrl+P / Cmd+P):
ext install travsr.travsr-vscode
Or from the VS Code Marketplace or Open VSX (VSCodium and compatible editors).
The extension auto-detects whether the travsr binary is present and offers to install it for you.