Skip to main content
The Claude Code daemon captures Claude Code activity via hooks and exports structured events to HoneyHive. It runs as a local background process that automatically instruments your Claude Code sessions with no code changes required.
Claude Code session trace in HoneyHive

Claude Code session trace in HoneyHive showing tool calls, event tree, and detailed I/O

Quick Start

Project scope is resolved from your API key - no project name needed on init or run. The daemon stores local state in ~/.honeyhive/daemon/ and installs Claude hooks in ~/.claude/settings.json.

Running in the background

To stop the daemon:
stop sends SIGTERM to the running daemon via its PID file (~/.honeyhive/daemon/daemon.pid). Only one instance can run at a time - attempting to start a second prints an error and exits.

How it works

  • Installs Claude Code hooks automatically at the user level
  • Merges pre-hook and post-hook data into single tool events with accurate duration
  • Uses real tool names for event names (e.g. tool.Bash, tool.Edit, tool.Grep)
  • Emits turn events (turn.user as chain, turn.agent as model) with chat_history
  • Enriches tool events with thinking/reasoning context from the session transcript
  • Uploads session artifacts via background loop (every 5s) to avoid hook timeouts
  • Optionally emits lightweight chain.commit_link events on post-commit
  • Retries failed exports every 5s via resilient event spooling
Screenshot of a Claude Code session trace in HoneyHive. The event tree displays alternating tool call events (such as tool.Bash, tool.Edit) and turn events (turn.user and turn.agent), illustrating the sequence and hierarchy of operations during a coding session.

Example: Claude Code session trace showing agent turns and tool calls in HoneyHive


What Gets Traced

The daemon automatically captures all Claude Code activity:
  • Session lifecycle - Session start and end events as the root trace container
  • User and agent turns - Each user prompt and assistant response with full chat history
  • Tool executions - Built-in tool calls (Bash, Edit, Read, Grep, etc.) with arguments, results, and duration
  • Reasoning context - Thinking/reasoning blocks attached to the tool events they precede
  • Git commits - Commit metadata when --repo is configured
  • Session artifacts - Full conversation view and trajectory transcript on session end
No code changes required. See the Events table below for the full schema.

Events

Each Claude Code session produces a tree of events in HoneyHive: Tool events include inputs.thinking when a reasoning block precedes the tool call in the transcript. Pre-hook events that never receive a matching post-hook are exported as orphans after 60s.

Session Artifacts

When a session ends (or goes idle), the daemon pushes two views of the conversation:
session.start receives outputs.chat_history containing the user-facing conversation: the back-and-forth of user messages and assistant responses. This is what you’d see in the chat UI. Useful for reviewing what was said and evaluating response quality.
session.end receives outputs.artifact containing the full session transcript: tool calls, reasoning/thinking blocks, and internal processing steps. This is the “behind the scenes” view of how the agent worked through the task.
This split lets you look at the same session from two angles: the conversation-level view for understanding the user experience, and the trajectory-level view for debugging agent behavior.

State Directory

All daemon state lives under ~/.honeyhive/daemon/ (override with HH_DAEMON_HOME):

CLI Reference

run options


Troubleshooting

If events aren’t showing up in HoneyHive, work through these checks in order:
1

Is the daemon running?

Check ~/.honeyhive/daemon/daemon.pid and verify the process is alive:
2

Check the log

Look for spooled (export failures) or missing received claude hook entries:
3

Verify config

Confirm API key and base URL are correct:
4

Hooks installed?

Run the built-in diagnostic or inspect the hooks file directly:
5

Spool buildup?

If events are piling up, check the spool_reason field for error details:
6

PATH issues

Ensure honeyhive-daemon is on PATH in the shell context Claude Code uses. Virtualenv installations may not be visible to hooks: