From 47642b33574b46168141f1ce876ee73e806b0ae1 Mon Sep 17 00:00:00 2001
From: Enrico Piovesan Traverse's own repo is a workspace of eight Rust crates. Each one has a specific job. You can use them together through the CLI or pull individual crates into your own code. The core execution engine. It drives the state machine from Defines the contract schema: input and output types, preconditions, postconditions, placement constraints, and the governing spec. The runtime uses this crate to parse, validate, and enforce contracts. You interact with it by writing TOML contract files. The Implements the MCP stdio server that exposes your capabilities to AI agents. It supports The public Rust embedder SDK for host applications — Linux GTK apps and CLI tools — that want to load and run an application-owned bundle of capabilities directly, without going through the CLI's server process. The building blocks for platform-native mobile embedders. Compiles the bundled \"expedition\" example domain to It used to live in this workspace, but it was extracted into its own repository, Traverse's own repo is a workspace of eight Rust crates. Each one has a specific job. You can use them together through the CLI or pull individual crates into your own code. The core execution engine. It drives the state machine from Defines the contract schema: input and output types, preconditions, postconditions, placement constraints, and the governing spec. The runtime uses this crate to parse, validate, and enforce contracts. You interact with it by writing TOML contract files. The Implements the MCP stdio server that exposes your capabilities to AI agents. It supports The public Rust embedder SDK for host applications — Linux GTK apps and CLI tools — that want to load and run an application-owned bundle of capabilities directly, without going through the CLI's server process. The building blocks for platform-native mobile embedders. Compiles the bundled \"expedition\" example domain to It used to live in this workspace, but it was extracted into its own repository, traverse-runtime
\n idle through discovery, constraint evaluation, selection, and execution. Every placement target builds on this crate. You use it if you are embedding Traverse in a Rust application rather than calling it from the CLI.traverse-contracts
\n traverse-cli
\n traverse command you install with cargo install traverse-cli. It wraps the runtime and MCP server in a terminal interface. Most developers only need this crate directly.traverse-mcp
\n tools/list and tools/call. It ships as its own binary, started with traverse-mcp stdio. See how the MCP server works for details.traverse-embedder
\n traverse-native-bridge and traverse-swift-host
\n traverse-native-bridge is a deterministic builder for the governed WebAssembly runtime artifact those bridges load. traverse-swift-host is the Apple static-library host — packaged as the TraverseSwiftHost XCFramework — behind the Swift/iOS runtime bridge.traverse-expedition-wasm
\n wasm32-wasi for testing and demos. It is not the browser embedder — browser execution is handled separately by the public Web/TypeScript embedder SDK, which runs directly against the browser's native WebAssembly host.What about traverse-registry?
\n traverse-framework/registry, and is now consumed here as an independently versioned, externally published dependency rather than a workspace crate.traverse-runtime
\n idle through discovery, constraint evaluation, selection, and execution. Every placement target builds on this crate. You use it if you are embedding Traverse in a Rust application rather than calling it from the CLI.traverse-contracts
\n traverse-cli-rs
\n traverse-cli command, installed with cargo install traverse-cli-rs --locked. The plain traverse-cli crate on crates.io is an unrelated project, so don't install that one. It wraps the runtime and MCP server in a terminal interface. Most developers only need this crate directly.traverse-mcp
\n tools/list and tools/call. It ships as its own binary, started with traverse-mcp stdio. See how the MCP server works for details.traverse-embedder
\n traverse-native-bridge and traverse-swift-host
\n traverse-native-bridge is a deterministic builder for the governed WebAssembly runtime artifact those bridges load. traverse-swift-host is the Apple static-library host — packaged as the TraverseSwiftHost XCFramework — behind the Swift/iOS runtime bridge.traverse-expedition-wasm
\n wasm32-wasi for testing and demos. It is not the browser embedder — browser execution is handled separately by the public Web/TypeScript embedder SDK, which runs directly against the browser's native WebAssembly host.What about traverse-registry?
\n traverse-framework/registry, and is now consumed here as an independently versioned, externally published dependency rather than a workspace crate.
Install from crates.io with Cargo:
\ncargo install traverse-cli\n You need Rust 1.94 or newer (the pinned toolchain version) and the wasm32-wasip1 target installed. See the CLI reference for a full command listing.
The Traverse CLI is the traverse command-line tool you use to compile contracts, register capabilities, execute them locally, and inspect results. It is published on crates.io as traverse-cli-rs (the installed binary is traverse-cli) and wraps the full runtime in a developer-friendly interface.
# Scaffold a new capability package\ntraverse-cli capability new pricing.calculate-total\n\n# After you build the wasm32-wasip1 binary, register a bundle's\n# capabilities, events, and workflows\ntraverse-cli bundle register examples/expedition/registry-bundle/manifest.json\n\n# Execute a capability package against a runtime request\ntraverse-cli capability-package execute capabilities/pricing.calculate-total/manifest.json request.json\n\n# List registered capabilities\ntraverse-cli registry list\n\n The MCP stdio server ships as its own binary, separate from the CLI:
\ntraverse-mcp stdio\n This makes your local registry available to any MCP-compatible client, including Claude Desktop. See how the MCP server works for details.
\n\nInstall from crates.io with Cargo:
\ncargo install traverse-cli-rs --version =0.15.0 --locked\n Watch the crate name: traverse-cli on crates.io is an unrelated project (a Solidity analysis tool) that installs a binary with the same name, so cargo install traverse-cli gets you the wrong tool. You need Rust 1.94 or newer (for example rustup toolchain install 1.94.0, then cargo +1.94.0 install traverse-cli-rs --locked) and the wasm32-wasip1 target installed. model package-onnx also needs the ONNX runner guest, which the crate doesn't ship yet; for now it comes from fixtures/onnx/runner.wasm at the release tag (tracked in #1687). See the CLI reference for a full command listing.