Treeship
Get started

Quickstart

From zero to a verifiable session receipt in under 90 seconds.

No account, email, or API key required. Everything runs locally.

One-liner setup

curl -fsSL https://www.treeship.dev/setup | sh

This installs the CLI, initializes your ship, then asks before instrumenting any detected agent frameworks (Claude Code, Cursor, Hermes, OpenClaw). With no interactive terminal, instrumentation is skipped unless TREESHIP_SETUP_YES=1 is set.

Or step by step

Install

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

Initialize

treeship init
✓ Treeship initialized
  Ship ID:  ship_xxx
  Key ID:   key_xxx

Instrument your agents (optional)

treeship add

Auto-detects Claude Code, Cursor, Hermes, OpenClaw and configures Treeship integration.

Start a session

treeship session start --name "my first task"

Wrap commands

treeship wrap -- npm test
treeship wrap -- git commit -m "fix bug"

Every wrapped command gets a signed artifact with exit code, duration, and output digest.

Close and create your receipt

treeship session close \
  --summary "Fixed the auth bug and added a regression test"

This creates a .treeship package with a self-verifying preview.html that opens in your browser.

Verify locally

treeship package verify .treeship/sessions/ssn_*.treeship

This runs offline with zero network calls. A healthy package looks like this:

  PASS receipt.json -- Parses as valid Session Receipt
  PASS determinism -- receipt.json round-trips identically
  PASS receipt_body_binding -- timeline/side-effects/narrative are bound: the close
       record (record.json) signs the digest of the whole receipt.json
  PASS merkle_root -- Merkle root matches recomputed value
  PASS inclusion:art_... -- Inclusion proof valid
  PASS leaf_count -- Leaf count matches artifact count
  PASS timeline_order -- Timeline is correctly ordered

  9 passed, 0 failed, 1 warnings

✓ package verified

receipt_body_binding passes because session close signs the digest of the whole receipt.json into the close record (record.json): editing the timeline, the side effects or the narrative fails receipt_binding. They are still the producer's own account of the session, composed from its event log and signed by its key; the artifacts are the evidence a stranger checks signature by signature. A package built before 0.31.4 carries no close record and gets a WARN here instead.

Share (optional)

treeship hub attach --endpoint https://api.treeship.dev
treeship session report

Prints a public URL like https://treeship.dev/receipt/ssn_xxx. No auth needed to view it; stays up until you treeship hub unpublish it.

Interactive quickstart

For a fully guided experience:

treeship quickstart

Walks through init, wrapping a command, and creating a receipt interactively.

Environment variables for richer receipts

Set these before running commands to capture model and token data:

export TREESHIP_MODEL=claude-opus-4-6
export TREESHIP_TOKENS_IN=12000
export TREESHIP_TOKENS_OUT=3000
export TREESHIP_PROVIDER=anthropic  # optional

Cost is not captured in receipts. Pricing depends on provider, tier, and timing. Receipts store verifiable usage (model + tokens). Cost is calculated by consumer tools (Witness dashboards, billing) from their pricing config.

Live monitoring

While your agent works, watch the session in real time:

treeship session status --watch

What's next