Treeship
Integrations

Hermes

Integrate Treeship with Hermes agents via skill file and MCP server.

Hermes agents support two integration methods: a Treeship skill file for session discipline and the Treeship MCP server for MCP-routed tool-call receipts. The best setup uses both.

Hermes does not currently have a Treeship-native in-process hook. Coverage is skill-driven plus MCP-routed, so use treeship wrap for important shell commands and session reports as a backstop.

Fast path

For Treeship v0.15.0 or later, use the native installer:

treeship init
treeship add hermes

That writes the Hermes skill to:

~/.hermes/skills/treeship/SKILL.md

and adds a project-local TREESHIP.md so Hermes can see what Treeship captures when it works inside the repo.

If you are testing with a temporary HOME on macOS, prefer a canonical path such as /private/tmp/...; /tmp is a symlink to /private/tmp, and Treeship intentionally refuses to write integration files through symlinked config paths.

Full provable setup

Install Treeship CLI

curl -fsSL https://treeship.dev/install | sh
treeship init

Give Hermes a key-bound identity

treeship agent register --name hermes --own-key --tools mcp,terminal,file,git --description "Hermes Agent"

Use --own-key so Hermes receipts can be attributed to a dedicated agent key instead of only the workspace ship key.

Install the Hermes skill

Preferred:

treeship add hermes

Manual fallback:

mkdir -p ~/.hermes/skills/treeship
curl -fsSL https://raw.githubusercontent.com/zerkerlabs/treeship/main/integrations/hermes/treeship.skill/SKILL.md \
  -o ~/.hermes/skills/treeship/SKILL.md

The Hermes agent reads the skill and follows the instructions to start/close sessions, wrap side-effectful shell commands, record approvals and handoffs, and avoid publishing secrets.

Add the Treeship MCP server

hermes mcp add treeship --command npx \
  --env TREESHIP_ACTOR=agent://hermes TREESHIP_HUB_ENDPOINT=https://api.treeship.dev \
  --args -y @treeship/mcp

--args must come last in the Hermes CLI command.

Then make sure the configured server has the Hermes actor in its environment:

# ~/.hermes/config.yaml
mcp_servers:
  treeship:
    command: npx
    args: ["-y", "@treeship/mcp"]
    env:
      TREESHIP_ACTOR: "agent://hermes"
      TREESHIP_HUB_ENDPOINT: "https://api.treeship.dev"

TREESHIP_ACTOR=agent://hermes is required. Without it, receipts may fall back to a generic MCP identity.

Smoke test the release path

This is the minimal offline check for the released CLI and Hermes skill install path:

TMP=$(mktemp -d /tmp/treeship-v015-smoke.XXXXXX)
TMP_REAL=$(cd "$TMP" && pwd -P)
HOME_TMP="$TMP_REAL/home"
mkdir -p "$HOME_TMP" "$TMP_REAL/work"

curl -fsSL https://github.com/zerkerlabs/treeship/releases/download/v0.15.0/treeship-darwin-aarch64 \
  -o "$TMP_REAL/treeship"
chmod +x "$TMP_REAL/treeship"

cd "$TMP_REAL/work"
HOME="$HOME_TMP" "$TMP_REAL/treeship" init
HOME="$HOME_TMP" "$TMP_REAL/treeship" add hermes

test -f "$HOME_TMP/.hermes/skills/treeship/SKILL.md"
grep 'TREESHIP_ACTOR=agent://hermes' "$HOME_TMP/.hermes/skills/treeship/SKILL.md"

Expected outcome:

✓ Hermes Skill Harness configured
✓ ./TREESHIP.md written

Provable Hermes session demo

Use this when you want a local-verifiable session package before publishing anything to Hub:

treeship init
treeship agent register --name hermes --own-key --tools mcp,terminal,file,git --description "Hermes Agent"
treeship add hermes

hermes mcp add treeship --command npx \
  --env TREESHIP_ACTOR=agent://hermes TREESHIP_HUB_ENDPOINT=https://api.treeship.dev \
  --args -y @treeship/mcp

treeship session start --name "hermes: first verified session"
treeship wrap -- /bin/echo "hello from a provable Hermes session"
treeship session close

session close prints the .treeship package path. Verify it offline:

treeship package verify .treeship/sessions/<session-id>.treeship

You should see inclusion-proof and Merkle-root checks pass. If you are attached to Hub, publish the report:

treeship session report

What appears in the receipt

SectionSkill fileMCP server
CommandsVia treeship wrap [EXPLICIT]Not applicable
Tool callsNot applicableMCP-routed tool calls [AUTO]
Agent identityagent://hermes in events [EXPLICIT]TREESHIP_ACTOR=agent://hermes [AUTO]
File operationsSession report / git reconcile backstop [AUTO]Routed file-tool metadata when available [AUTO]
Approvalstreeship approve + approval nonce [EXPLICIT]Not applicable
Handoffstreeship attest handoff or session event [EXPLICIT]Not applicable

Expected outcome: a Hermes session can produce a local-verifiable Treeship receipt and optional Hub report. MCP-routed tool calls can verify as Hermes-owned when the bridge signs with a registered agent://hermes key.