Treeship
Get started

Trust Templates

Pre-built attestation configs for common workflows. Apply in one command.

A trust template is a pre-built .treeship/config.yaml for a specific workflow. It answers three questions: what triggers an attestation, what gets captured in each receipt, and how the chain gets structured.

treeship init --template github-contributor

From that point, Treeship runs silently. The right things get attested at the right moments.

Available templates

Development

TemplateWhat it does
github-contributorTest runs, commits, pushes. Verify URL for PRs.
ci-cd-pipelineFull delivery from test to deploy with approval gates.
research-agentMulti-step research with source provenance.
mcp-agentOne import change, every MCP tool call receipted.
claude-code-sessionFull audit trail of AI coding sessions.
code-reviewPR review, test, and merge authorization.

Vertical

TemplateWhat it does
clinical-aiHIPAA-compliant. Digests only, no content in artifacts.
legal-workflowContract review and attorney authorization chain.
financial-agentPayment workflow with approval gates.
data-pipelineETL and ML lineage from input to output.
security-auditScan, remediate, re-scan, authorize deploy.
content-creationSource to publication with editorial review.
customer-supportAgent action trail for dispute resolution.

Commerce

TemplateWhat it does
agent-purchaseHuman authorization before agent spending.

Build your own

Answer four questions

  1. What are the meaningful moments? Not what Treeship does, what happens in the workflow.
  2. What proves each moment happened? Output digest, file changes, git state, approval.
  3. Which moments need human approval? Deployments, payments, publications.
  4. Does any moment need ZK TLS? Only if the verifier doesn't trust the agent AND the server response is legally significant.

Write the YAML

name: my-workflow
version: 1
description: What this workflow does.
tags: [development]

session:
  actor: agent://my-agent
  auto_start: true

attest:
  commands:
    - pattern: "npm test*"
      label: test suite
      capture_output_digest: true
    - pattern: "git push*"
      label: code push

  paths:
    - path: "src/**"
      on: write
      label: source change

capture:
  output_digest: true
  file_changes: true
  git_state: true

approvals:
  require_for:
    - label: deploy

hub:
  auto_push: true
  push_on: [session_close]

onboarding: |
  Your workflow is configured.
  Run normally. Everything matching the rules gets attested.

Apply and test

treeship init --template my-workflow.yaml
treeship wrap -- echo "test"
treeship verify last --full

Save from a live config

If you've been using Treeship, save your current config as a reusable template:

treeship template save --name my-workflow

This strips project-specific fields (ship ID, dock credentials) and writes a clean reusable YAML to ~/.treeship/templates/.

Share templates

Templates are plain YAML files. Share them however you want:

# Via git
git add .treeship/templates/my-template.yaml

# Via URL
treeship template install https://raw.githubusercontent.com/org/repo/main/template.yaml

# Via file path
treeship init --template ./template.yaml

Field reference

SectionFieldWhat it does
session.actorDefault actor URI for all artifacts
session.auto_startStart session when matching activity begins
session.auto_pushPush to Hub after session closes
attest.commands[].patternShell glob to match commands
attest.commands[].labelHuman-readable label for receipts
attest.commands[].require_approvalBlock until treeship approve
attest.paths[].pathFile glob to watch
attest.paths[].onTrigger on: write, change, create, delete
capture.output_digestHash stdout+stderr
capture.file_changesTrack modified files with content hashes
capture.git_stateGit HEAD before/after each command
capture.environmentOS, runtime version fingerprint
approvals.require_forLabels that need human approval
hub.push_onWhen to push: session_close, approval_required, git_push
onboardingMessage shown after treeship init --template

Templates configure what gets attested. They don't alter how your tools run or add dependencies to your project.