galtea-tracing plugin sends each Claude Code conversation to Galtea. Each conversation becomes a production session. Each turn becomes a trace, with its model calls, tool calls and subagents as spans.
Your monitors can then evaluate your coding sessions like any other production traffic.
Source repository: Galtea-AI/skills
Why use it
- See how your team uses Claude Code. Read each prompt, reply, tool call and subagent step in the dashboard.
- Evaluate coding sessions. Attach metrics to a monitor to score sessions when they close. A monitor scores 10% of sessions by default. Set its sampling to 100% to score every eligible session.
- Track speed, tokens and cost. Each turn carries its latency, its input, output and cache-read token counts, and a cost from the model’s prices.
Before you start
- A Galtea API key. Create one in the dashboard, under Settings > Generate API Key. The key’s user must be an OWNER or MEMBER of the product’s organization. See Roles and permissions.
- A product to receive the sessions. Copy its id from the product page. A product only for coding sessions keeps them apart from your other traffic.
- Python 3.9 or later. The plugin uses only the standard library.
Install
1
Add the Galtea marketplace
In Claude Code, run:The Agent Skill plugin comes from the same marketplace. If you installed it with
/plugin install galtea@galtea, run /plugin marketplace update galtea instead, so the marketplace lists galtea-tracing.2
Install the plugin
To change a value later, open
/plugin, pick galtea-tracing, and edit its options.3
Start a session
The first session after you install runs a setup check. It confirms the key and the product, and shows one message with the result. It also writes one test turn to a development session in the product, then deletes it. When Galtea does not answer, the check can delay that session start by up to about 25 seconds.Then each answered turn appears in the product’s sessions.
/plugin marketplace update galtea, or with auto-update turned on for the marketplace in /plugin. For a self-hosted Galtea, see Updates and self-hosted Galtea.
What is sent
- Version: each session goes to the product version whose only fact is
model: the model of the conversation’s first answer, such asclaude-opus-5-5. The plugin creates that version on first use. Galtea links it to the model of the same name (see Model facts), so each turn gets a cost from that model’s prices. A session stays on its version after/model. - Session metadata: the working directory, your user name, your git email, the plugin version, and the git remote, branch and commit. The session title is the name you set with
/rename, or the name Claude Code generated. - Each turn: your prompt, Claude’s final reply, the latency, and the token counts. Galtea adds the cost.
- Spans of each turn: each model call with its thinking summary, text and tool names; each tool call with its input and output; each subagent, with its own steps nested below it.
claude -p and an Agent SDK query() call, are not logged. A long-lived Agent SDK session loads the plugin and is logged like an interactive session.
The cost is an estimate at the model’s list prices, not what a Claude subscription bills. It prices every model call of the turn at the main model’s rates, subagents included, and leaves out cache writes. A model name Galtea does not know, which can happen with Amazon Bedrock or Google Vertex AI, gets a version with no price, so its turns show no cost. When Galtea refuses the version, for example a self-hosted Galtea without
POST /versions/get-or-create, the session goes to the product’s latest version and shows no cost. Sessions sent before you updated the plugin keep their old version.Claude Code writes thinking text only when
showThinkingSummaries is on. To log thinking, add "showThinkingSummaries": true to ~/.claude/settings.json. The setup check tells you when it is off.Redaction
Redaction is on by default. Before a prompt, a reply, a span or the session title leaves your machine, the plugin masks secrets with[REDACTED]. It covers API keys with a known prefix, tokens, Authorization headers, passwords in URLs, private keys, and values of names such as PASSWORD or API_KEY.
Session metadata (the folder path, user name, git email, git remote, branch and commit) is sent without redaction.
The full list of rules is in the plugin README.
When a session closes
/exit closes the Galtea session, and your monitors can then evaluate it. Auto-close also closes it after the product’s inactivity time, 30 minutes by default, counted from the last turn. This happens even while Claude Code stays open. The next turn, after a pause or a claude --resume, reopens the session, and your monitors can evaluate it again. Galtea re-evaluates one session at most 5 times.
Both rules need the default product settings: an Auto Close Scope that includes production sessions, and the Closed Session Inference Creation Policy REOPEN_AND_REEVALUATE. The setup check warns you when a setting differs. See Session lifecycle.
Stop logging
/galtea-tracing:mutestops logging for the current repository./galtea-tracing:unmutestarts logging it again.GALTEA_CC_DISABLE=1 claudeskips logging for that one Claude Code process.
/plugin uninstall galtea-tracing@galtea. Sessions already sent stay in Galtea.
Troubleshooting
An error in the plugin never makes Claude Code fail. The plugin writes each error to:Related
Agent Skill
Let Claude Code drive Galtea for you.
Monitors
Evaluate production sessions as they close.
Traces
How turns and spans are stored.