Skip to content

observability

Local, metadata-only telemetry for Claude Code. A bundled observer records session, tool, and subagent lifecycle events into SQLite on your machine, an optional statusline shows live context and usage, and an OpenTelemetry Collector can forward redacted signals to Grafana, generic OTLP, or PostHog. Prompts, responses, code, tool inputs and results, credentials, and environment values are never stored. Every sink beyond local SQLite is opt-in.

Version: 0.7.0

  • enable-project-telemetry: Opt the current project into local Claude Code usage telemetry, or verify its setup. Use to enable, disable, or check project telemetry.
  • SessionStart (startup|resume): node --no-warnings "${CLAUDE_PLUGIN_ROOT}/lib/observability/ensure.js" --launch
  • SessionStart: node --no-warnings "${CLAUDE_PLUGIN_ROOT}/hooks/observability.js"
  • SessionEnd: node --no-warnings "${CLAUDE_PLUGIN_ROOT}/hooks/observability.js"
  • UserPromptSubmit: node --no-warnings "${CLAUDE_PLUGIN_ROOT}/hooks/observability.js"
  • PreToolUse (*): node --no-warnings "${CLAUDE_PLUGIN_ROOT}/hooks/observability.js"
  • PreToolUse (Agent|Task): node --no-warnings "${CLAUDE_PLUGIN_ROOT}/hooks/request-body-preflight.js"
  • PostToolUse (*): node --no-warnings "${CLAUDE_PLUGIN_ROOT}/hooks/observability.js"
  • Stop: node --no-warnings "${CLAUDE_PLUGIN_ROOT}/hooks/observability.js"
  • SubagentStart: node --no-warnings "${CLAUDE_PLUGIN_ROOT}/hooks/observability.js"
  • SubagentStop: node --no-warnings "${CLAUDE_PLUGIN_ROOT}/hooks/observability.js"
  • install-otel-collector.js
  • observer.js
  • project-telemetry.js
  • prune-observability.js
  • setup-observability.js
  • statusline.js
  • token-usage-report.js
  • verify-project-telemetry.js

Source on GitHub