Skip to main content
Use this guide to capture Claude Code Developer decisions, commit Attribution, inference calls, and optional Edit observations on one developer machine.

Evidence captured

Developer decisions by agent harness defines which Claude Code decisions are explicit and which missing signals produce pathless or no Facts.

Before you begin

Install the CLI and get a capture token with Configure local capture. Start Claude Code once so that ~/.claude exists.

Install capture

  1. Connect the CLI to the Sediment endpoint:
  2. Install capture in the repository:
    Replace alice with your developer identifier. The installer adds a PostToolUse entry to ~/.claude/settings.json, installs the repository git hooks, and writes the telemetry environment from the saved login.
  3. End active Claude Code Sessions, then load the environment and start Claude Code in the repository:

Configure Developer decisions

The environment that sediment install writes turns on Claude Code’s OpenTelemetry Protocol (OTLP) logs and sends them to Sediment. If mobile device management (MDM) or a service owns the environment, set the variables in Distribute decision telemetry there instead. A user’s approval or refusal has explicit=true. An approval from configuration or a hook has explicit=false.

Configure inference-call capture

If your deployment routes Claude Code through a gateway, your operator sets the gateway URL and credential in Claude Code’s managed settings, as described in Distribute gateway routing. You don’t need a gateway credential, and sediment install doesn’t change the route. While the gateway credential is active, Claude Code doesn’t use your claude.ai subscription. The Claude desktop app reads gateway routing from its own configuration and ignores these managed settings.

Configure Edit observations

Transcript capture sends applied edit text and the file’s content at Session end, so it’s off until you opt in. Rerun the installer with --transcripts added to your usual flags, and restart Claude Code:
The installer adds a SessionEnd extractor and a PreToolUse snapshot hook. The extractor emits Edit observations for successful Edit and Write calls, plus Rejected edits, Retry linkages, and external line counts. Opt in to transcript capture covers the --no-env case.

Verify capture

Remote checks need a separate operator login.
  1. Check the configuration, and note the current counts:
  2. Ask Claude Code to edit a file, and commit the change.
  3. Read the commit’s Session note:
  4. After telemetry flushes, run sediment facts again. developer_decisions grows. With transcript capture, edit_observations can also grow after the Session ends.
sediment doctor --agent doesn’t support Claude Code, so compare counts instead.

Limits and troubleshooting

  • A Session that crashes or misses SessionEnd can lack Edit observations without losing Developer decisions or commit Attribution.
  • Transcript capture omits raw conversations, prompts, Read results, tool results, and the environment. Inference-call capture includes model inputs and outputs.
  • Transcript survival covers Edit and Write. NotebookEdit and legacy MultiEdit fall back to commit Attribution.
  • External line counts require a complete snapshot and observation chain for the file.
  • If a saved Session missed extraction, follow Recover transcript pairs.
  • If doctor --fetch reports a notes-ref failure, follow Repair a notes ref.
Privacy boundaries and ceilings lists the fields that each capture path sends.