TR

trace-claude-code

Automatically traces Claude Code interactions to Braintrust. Logs sessions, tool calls, and conversation history.

Install

mkdir -p .claude/skills/trace-claude-code && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/3773" && unzip -o skill.zip -d .claude/skills/trace-claude-code && rm skill.zip

Installs to .claude/skills/trace-claude-code

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Automatically trace Claude Code conversations to Braintrust for observability.
Captures sessions, conversation turns, and tool calls as hierarchical traces.
156 chars · catalog descriptionno explicit “when” trigger
Intermediate

Key capabilities

  • Capture session starts and ends as root traces
  • Log tool calls and terminal commands
  • Record turn-by-turn conversation history
  • Enable hierarchical observability in Braintrust

How it works

It uses hook scripts triggered by session lifecycle events to send structured conversation and tool usage data to Braintrust via API.

Inputs & outputs

You give it
Claude Code session activity
You get back
Hierarchical trace logs in Braintrust

When to use trace-claude-code

  • Observing agent tool calls
  • Debugging agent session history
  • Auditing automated code changes
  • Monitoring session performance

About this skill

Trace Claude Code to Braintrust

Automatically send Claude Code conversations to Braintrust for tracing and observability. Get full visibility into your AI coding sessions with hierarchical traces showing sessions, turns, and every tool call.

What you get

Claude Code Session (root trace)
├── Turn 1: "Add error handling"
│   ├── Read: src/app.ts
│   ├── Edit: src/app.ts
│   └── Response: "I've added try-catch..."
├── Turn 2: "Now run the tests"
│   ├── Terminal: npm test
│   └── Response: "All tests pass..."
└── Turn 3: "Great, commit this"
    ├── Terminal: git add .
    ├── Terminal: git commit -m "..."
    └── Response: "Changes committed..."

How it works

Four hooks capture the complete workflow:

HookWhat it captures
SessionStartCreates root trace when you start Claude Code
PostToolUseCaptures every tool call (file reads, edits, terminal commands)
StopCaptures conversation turns (your message + Claude's response)
SessionEndLogs session summary when you exit

Quick setup

Run the setup script in any project directory where you want tracing:

bash /path/to/skills/trace-claude-code/setup.sh

The script prompts for your API key and project name, then configures all hooks automatically.

Manual setup

Prerequisites

Configuration

Create .claude/settings.local.json in your project directory:

{
  "hooks": {
    "SessionStart": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "bash /path/to/hooks/session_start.sh"
          }
        ]
      }
    ],
    "PostToolUse": [
      {
        "matcher": "*",
        "hooks": [
          {
            "type": "command",
            "command": "bash /path/to/hooks/post_tool_use.sh"
          }
        ]
      }
    ],
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "bash /path/to/hooks/stop_hook.sh"
          }
        ]
      }
    ],
    "SessionEnd": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "bash /path/to/hooks/session_end.sh"
          }
        ]
      }
    ]
  },
  "env": {
    "TRACE_TO_BRAINTRUST": "true",
    "BRAINTRUST_API_KEY": "sk-...",
    "BRAINTRUST_CC_PROJECT": "my-project"
  }
}

Replace /path/to/hooks/ with the actual path to this skill's hooks directory.

Environment variables

VariableRequiredDescription
TRACE_TO_BRAINTRUSTYesSet to "true" to enable tracing
BRAINTRUST_API_KEYYesYour Braintrust API key
BRAINTRUST_CC_PROJECTNoProject name (default: claude-code)
BRAINTRUST_CC_DEBUGNoSet to "true" for verbose logging

Viewing traces

After running Claude Code with tracing enabled:

  1. Go to braintrust.dev
  2. Navigate to your project (e.g., claude-code)
  3. Click Logs to see all traced sessions

Each trace shows:

  • Session root: The overall Claude Code session
  • Turns: Each conversation exchange (user input → assistant response)
  • Tool calls: Individual operations (file reads, edits, terminal commands)

Trace structure

Traces are hierarchical:

  • Session (root span)

    • span_attributes.type: "task"
    • metadata.session_id: Unique session identifier
    • metadata.workspace: Project directory
  • Turn (child of session)

    • span_attributes.type: "llm"
    • input: User message
    • output: Assistant response
    • metadata.turn_number: Sequential turn number
  • Tool call (child of turn or session)

    • span_attributes.type: "tool"
    • input: Tool input (file path, command, etc.)
    • output: Tool result
    • metadata.tool_name: Name of the tool used

Troubleshooting

No traces appearing

  1. Check hooks are running:

    tail -f ~/.claude/state/braintrust_hook.log
    
  2. Verify environment variables in .claude/settings.local.json:

    • TRACE_TO_BRAINTRUST must be "true"
    • BRAINTRUST_API_KEY must be valid
  3. Enable debug mode:

    {
      "env": {
        "BRAINTRUST_CC_DEBUG": "true"
      }
    }
    

Permission errors

Make hook scripts executable:

chmod +x /path/to/hooks/*.sh

Missing jq command

Install jq:

  • macOS: brew install jq
  • Ubuntu/Debian: sudo apt-get install jq

State issues

Reset the tracing state:

rm ~/.claude/state/braintrust_state.json

Hook logs

View detailed hook execution logs:

# Follow logs in real-time
tail -f ~/.claude/state/braintrust_hook.log

# View last 50 lines
tail -50 ~/.claude/state/braintrust_hook.log

# Clear logs
> ~/.claude/state/braintrust_hook.log

File structure

hooks/
├── common.sh          # Shared utilities (logging, API, state)
├── session_start.sh   # Creates root trace span
├── post_tool_use.sh   # Captures tool calls
├── stop_hook.sh       # Captures conversation turns
└── session_end.sh     # Finalizes trace

Alternative: SDK integration

For programmatic use with the Claude Agent SDK, use the native Braintrust integration:

import { initLogger, wrapClaudeAgentSDK } from "braintrust";
import * as claudeSDK from "@anthropic-ai/claude-agent-sdk";

initLogger({
  projectName: "my-project",
  apiKey: process.env.BRAINTRUST_API_KEY,
});

const { query, tool } = wrapClaudeAgentSDK(claudeSDK);

See Braintrust Claude Agent SDK docs for details.

When not to use it

  • When Braintrust API access is not available
  • When tracing overhead is not desired

Prerequisites

Claude Code CLIBraintrust API keyjq command-line tool

Limitations

  • Requires jq for hook processing
  • Depends on external Braintrust service availability

How it compares

It provides automated, turn-by-turn observability of agent sessions rather than requiring manual logging or SDK instrumentation.

Compared to similar skills

trace-claude-code side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
trace-claude-code (this skill)27moReviewIntermediate
terminal-context57moReviewAdvanced
resolve-conflicts818moReviewIntermediate
dependency-upgrade265moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

terminal-context

aelaguiz

Complete Kitty terminal awareness + control for coding agents: list panes/tabs, read scrollback, map ports→processes, parse per-pane git/last-command metadata (from shell hooks), and send commands/focus panes. Use when user mentions "another terminal", "is the server running", "what failed", or you need to run/inspect commands across panes.

567

resolve-conflicts

antinomyhq

Use this skill immediately when the user mentions merge conflicts that need to be resolved. Do not attempt to resolve conflicts directly - invoke this skill first. This skill specializes in providing a structured framework for merging imports, tests, lock files (regeneration), configuration files, and handling deleted-but-modified files with backup and analysis.

81334

dependency-upgrade

wshobson

Manage major dependency version upgrades with compatibility analysis, staged rollout, and comprehensive testing. Use when upgrading framework versions, updating major dependencies, or managing breaking changes in libraries.

26240

openspec-onboard

studyzy

Guided onboarding for OpenSpec - walk through a complete workflow cycle with narration and real codebase work.

10207

codex-cli-bridge

alirezarezvani

Bridge between Claude Code and OpenAI Codex CLI - generates AGENTS.md from CLAUDE.md, provides Codex CLI execution helpers, and enables seamless interoperability between both tools

9180

skill-sync

KyleKing

Syncs Claude Skills with other AI coding tools like Cursor, Copilot, and Codeium by creating cross-references and shared knowledge bases. Invoke when user wants to leverage skills across multiple tools or create unified AI context.

12130

Search skills

Search the agent skills registry