Etch

See what your AI agents actually did in your repo.

One install. Replay any session. Verify anywhere.

You use Claude Code, Cursor, Cline, Codex, or Continue. Each keeps its own log in its own format, none of them talk to each other, and half the trail is gone by the time you need it. Etch is a one-line install that captures every tool call into a signed chain you can replay session-by-session, filter by repo, and verify offline. If we shut down tomorrow, statements from today still verify forever against your pinned keys.

Install in one command →   Start a free pilot


The install

curl -sSL https://etch.systems/install/claude-code.sh | bash -s -- \
    --project my-project \
    --token wm_your_app_token \
    --path-filter my-repo,my-other-repo

The installer places the Claude Code hook, merges your ~/.claude/settings.json, writes an env fallback file the hook reads even when Claude Code was launched from Dock (macOS GUI apps do not inherit ~/.zshrc), installs a launchd or systemd daemon for transcript backfill, and runs a self-verify. About 15 seconds end-to-end.


Per-repo scoping

--path-filter takes a comma-separated list of substrings. An event lands in Etch only when the session's cwd, transcript path, or tool_input file_path matches at least one substring. Everything else is silently dropped.

Example

You're a solo dev with 17 project directories under ~/.claude/projects/. Only 3 are for the client you pilot Etch with. Install with --path-filter ClientA-Frontend,ClientA-API,ClientA-Ops. Every Claude Code call in your other 14 directories is dropped before it hits the network. No leak, no mix, no accidental disclosure.


Automatic dev attribution

Every event carries a dev_id. By default, that value comes from GIT_AUTHOR_EMAIL or git config --global user.email. Nothing to configure. Team members with different emails show up as different developers in the Team tab. GitHub noreply aliases ( <user>@users.noreply.github.com) auto-collapse with the same person's real email — the Team tab shows one identity, not two.

Team dashboard

Per-developer rollups of events, sessions, agents used, and top tools. Filter by feature tag to compare team members on the same workstream.

Sessions tab

Every session grouped and searchable by developer, agent, or tool. Click into a session to see the full timeline plus the provenance DAG.

Cross-agent feature tags

Set ETCH_FEATURE_TAG=auth-refactor once. Your Claude Code, Cursor, and Cline sessions all get tagged and roll up together in one filter.


Signed monthly statement per client

At the end of every month, download a signed audit statement for the client's project in HTML, JSON, or PDF. Every tool call the agent made, every session, every dev on the account, every epoch closed. Sign your invoice with a signed statement attached — auditor- grade proof of the work you billed for.

curl -sSL \
  https://etch.systems/statement/client-a-project/2026-07.pdf \
  > client-a-2026-07.pdf

Behaviour drift and root cause

The Drift tab shows month-over-month change on every metric and alerts when any moves more than 3x. When you notice the agent misfired on a specific session, click through to Root Cause Analysis and walk backwards through the causal chain. Etch highlights the most-suspect ancestor decision with a heuristic score across four signals: success flag, error text, rare tools, and agent-stuck time gaps.


Five agents supported today

Claude Code
hook + transcript backfill
Cursor
workspaceStorage transcript backfill
Cline
task file transcript backfill
Codex CLI
session JSON backfill
Continue
dev_data JSONL backfill

Ready to install?

Sign up (about 20 seconds), copy the install command from the Integration tab, paste on your Mac or Linux dev box. First audit statement rolls up 30 seconds after your first tool call.

Sign up →   Read the quickstart