# Trusty Services

> Install and configure trusty-memory and trusty-search for persistent AI memory and semantic code search

- Skill: `bobmatnyc/trusty-services` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add bobmatnyc/trusty-services`
- Raw SKILL.md: https://api.skillmd.com/api/skills/bobmatnyc/trusty-services/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: bobmatnyc (https://skillmd.com/u/bobmatnyc)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/bobmatnyc/trusty-services

---


# Trusty Services

This is a **migration subskill**. It declares WHAT to install in its
frontmatter. The HOW lives in the parent protocol:
[`migration-wizard/SKILL.md`](../migration-wizard/SKILL.md).

> **Always load the migration-wizard protocol before executing this skill.**
> The five-phase wizard (user choice → detect → check → install → verify →
> complete) is defined there, not here.

## Why install these?

`trusty-memory` and `trusty-search` are optional Rust services that give
claude-mpm two capabilities the base install lacks:

- **trusty-memory**: persistent, hierarchical knowledge graph (palace / wing
  / room / closet / drawer) that survives across sessions. Lets agents
  remember context from previous conversations without re-explaining.
- **trusty-search**: hybrid semantic + BM25 + knowledge-graph code search
  with RRF fusion. Drop-in replacement for `mcp-vector-search` with better
  recall on large codebases.

Together they raise the ceiling on what cross-session workflows can
accomplish — but they require Rust, ~2GB disk, and a one-time setup pass,
which is why they ship as a migration skill rather than a default
dependency.

## What to expect during install

The protocol's Phase 3 delegates to `scripts/install-trusty.sh`, which:

1. Prefers `claude-mpm setup trusty-memory trusty-search` (the consolidated
   command that handles `cargo install`, launchd plist creation, and
   `.mcp.json` wiring atomically).
2. Falls back to per-binary `claude-mpm setup <name>` on older claude-mpm.
3. Falls back to raw `cargo install` if `claude-mpm` is unavailable; in
   that case daemon startup and MCP wiring become manual steps.

A typical install takes 3-8 minutes (mostly cargo compile time).

## Known gotchas

- **macOS, `linker 'cc' not found`** — install Xcode Command Line Tools
  with `xcode-select --install`, then retry.
- **`cargo install` SSL error** — usually a corporate proxy. Configure
  `CARGO_HTTP_PROXY` and retry.
- **`Address already in use`** — a previous daemon is still running. Run
  `pkill -f trusty-memory; pkill -f trusty-search` and retry.
- **Default ports** — memory uses :3038, search uses :7878. If those are
  occupied, the daemons will pick alternates and write the actual ports to
  `~/.trusty-*/address.json`; the health checks in this skill assume the
  defaults.

## Verification

Phase 4 runs `scripts/verify-trusty.sh`, which checks:

1. Both binaries on `$PATH`.
2. Both daemons responding to `/health`.
3. `.mcp.json` (if present in CWD) references trusty server entries.
4. On macOS, launchd plists exist under `~/Library/LaunchAgents/`.

Verification must pass completely before Phase 5 records completion. A
partial install (binary present, daemon down) will be re-detected on the
next session and the wizard will offer to repair it.

