Skip to content

Install · nine products, nine paths

Install walkthrough

Pick the product you want and this page shows that install and nothing else — the commands in order, the setup it shares with the others, the MCP entry to register, and the macOS permission it genuinely needs. Every command here was checked against crate source rather than against a README.

Paths
9 audiences
Via tctl
7 of 9
MSRV
Rust 1.94
Prebuilt for
macOS arm64, Linux x86_64, Linux arm64

Shared prerequisites

Set up only what your product's roster names. Nothing here is needed by all nine, and every audience below says which of these it wants and how badly.

The tctl control plane

tctl installs seven of the nine products on this page. It prefers a prebuilt tarball on macOS arm64, Linux x86_64 and Linux arm64, verifies its published SHA-256, and falls back to cargo install --locked from crates.io on any other host. It is also the only path that resolves a product’s runtime dependencies for you and keeps macOS signing identities stable across upgrades, so a permission you grant once survives the next install.

curl -sSf https://raw.githubusercontent.com/bobmatnyc/trusty-tools/main/install.sh | sh

A Rust toolchain

Rust 1.94 or newer — the workspace MSRV. Needed only when you build from source: on a prebuilt platform tctl never invokes cargo, and trusty-agents is the one product with no prebuilt at all.

pnpm

Only trusty-agents needs it. trusty-search, trusty-memory and trusty-analyze commit their built Svelte UI to git, so installing those from crates.io never runs a JavaScript build. trusty-agents does not commit its UI: without pnpm the crate still compiles, but its build script writes a placeholder page and the embedded UI does nothing.

git

trusty-agents is installed by cloning this repository. trusty-code reads git metadata for branch context and tga reads git history through git2, so both want a git repository to point at.

16 GB RAM, ~2 GB disk

trusty-search checks available memory at startup; below 16 GB it warns once and runs on a reduced memory tier (smaller embedding cache, BM25 corpus and knowledge-graph caps) instead of refusing to start. TRUSTY_SKIP_RAM_CHECK=1 silences that warning. The disk is for the ONNX embedding model it downloads on first run. Apple Silicon uses CoreML automatically; NVIDIA CUDA is an opt-in --features cuda build.

8 GB RAM, ~500 MB disk

The floor for trusty-analyze and trusty-review, plus room for their model cache.

A model provider key

OpenRouter is the default provider everywhere a key is read. It is required only for trusty-review, which will not produce a review without one. It is optional for trusty-memory, trusty-analyze, trusty-code and trusty-agents: each starts fine with no key and asks for one only when a feature that needs it actually runs. AWS Bedrock is the documented alternative for trusty-analyze and trusty-review.

export OPENROUTER_API_KEY=<your-openrouter-key>

Replace <your-openrouter-key> with the key from your own OpenRouter account — nothing on this page is a real key.

export TRUSTY_LLM_MODEL=<bedrock-model-id>
export AWS_REGION=<your-aws-region>

Replace <bedrock-model-id> with a Bedrock model you have access to and <your-aws-region> with the region it is enabled in. These two replace the OpenRouter key rather than joining it.

Claude Code

Recommended, never enforced at install time. trusty-mpm orchestrates Claude Code sessions, so it is what tm drives.

Pick what you are installing

Nine paths. Seven go through tctl; trusty-code and trusty-agents do not, and are the two places the commands genuinely differ rather than just naming a different crate.

Semantic memory, on its own · trusty-memory

A standalone daemon with no external database and nothing else to install first. tctl installs it alone — it has no runtime dependency on any other product.

Before you start

  • The tctl control plane recommended The install path this page recommends.
  • A model provider key optional trusty-memory reads OPENROUTER_API_KEY for the memory.chat MCP method and the dream cycle’s summarization pass; there is no web chat panel. Everything else works without it.
  1. 1 · Install it

    One member, no dependency closure.

    tctl install trusty-memory
    cargo install trusty-memory --locked

    The second line is the escape hatch: it pulls the published crates.io release directly, which is also what tctl falls back to off a prebuilt platform.

    The Svelte UI ships pre-built inside the crate, so this never runs pnpm.

  2. 2 · Find the port it serves on

    The daemon picks its port at startup and reports it back. The UI is on the same port, on loopback.

    trusty-memory port
  3. 3 · Register it as an MCP server

    Add the entry to your .mcp.json. The command and args are what the crate’s own CLI parses.

    {
      "mcpServers": {
        "trusty-memory": {
          "command": "trusty-memory",
          "args": ["serve","--stdio"]
        }
      }
    }

macOS: no permission needed

Nothing to grant. trusty-memory reads $HOME locations only, and it carries no signing identity because it has no permission to preserve.

Already running claude-mpm?

The migration page covers what carries over and what behaves differently, rather than repeating the install.

Migration guide

Documentation Source on GitHub