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 | shThis 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 | shInstrument your agents (optional)
treeship addAuto-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_*.treeshipThis 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 verifiedreceipt_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 reportPrints 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 quickstartWalks 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 # optionalCost 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 --watchWhat's next
- Session Receipts -- understand the receipt format
- Claude Code integration -- setup for Claude Code
- CLI reference -- all commands