How do I track every tool call in Claude Code?
Rius records every tool call in a Claude Code session as its own span once you install the Rius plugin and run /rius:enable-here in a folder. Each tool span sits under the model call that requested it, in a waterfall in the console. By default the span carries the tool name, timing and error type. Enable the folder with /rius:enable-content-here to add inputs, outputs and error details.
How it works
One Claude Code session is one trace. A turn (one prompt and everything it caused) contains the model calls, and each tool call is a span under the model call that made it:
- Bash, Read, Edit and other tools each get a tool span.
- The Agent tool call that starts a subagent is a tool span too. The subagent appears beneath it with its own model calls and tools.
- A failed tool call is marked as an error on its span.
- Tool durations are exact.
What each tool span holds depends on how you enabled the folder:
| Detail | /rius:enable-here | /rius:enable-content-here |
|---|---|---|
| Tool name, error type, timing, status | Yes | Yes |
| For shell calls, the kind of command (test, build, lint, package, git or other) and its exit code | Yes | Yes |
| Tool inputs, such as commands and file paths | No | Yes |
| Tool outputs, such as file contents and command output | No | Yes |
| Error details of a failed tool call | No | Yes |
With content on, the plugin replaces the secrets it recognizes before anything leaves your machine. This is best effort, so a secret in an unknown format is sent. Each captured value is capped at 32 KB.
Set it up
-
Install the plugin and sign in. The Claude Code plugin guide covers install, sign-in and the stored key in full.
claude plugin marketplace add glassflow/rius-coding-agents && claude plugin install rius@rius-coding-agentsThen run
/rius:loginin Claude Code, pick a workspace and click Connect. -
Turn tracing on for the folder where you work. Tracing is off everywhere until you do this, and only you can run the command, not Claude.
/rius:enable-hereThis sends structure only, which already includes every tool call with its name, timing and error type.
-
To see what each tool was asked to do and what it returned, enable the folder with content instead:
/rius:enable-content-here -
Run
/rius:status. The first line readsRius tracing: on, and the output shows how many spans this session has sent. -
Work as usual, then open the trace list in the console. The session appears while it runs, and its tool spans fill in as Claude Code works. A session that was already open when you enabled its folder is traced from its start. Start a new session if you only want tool calls from now on.
To stop tracing a folder, run /rius:disable-here. A disabled folder wins over an enabled parent at any depth.
What you get
- Every tool call in order. Open a session in the trace list and the waterfall shows each turn, model call, tool call and subagent, so you can go from a failed session to the exact tool call that failed.
- Questions from the terminal. The plugin brings the Rius MCP server. Run
/mcp, pickriusand sign in once. Then ask Claude, for example, “Show me my last failed session and which tool call went wrong.” - Per-agent and per-developer views. The Agents page lists Claude Code as an agent named
claude-code, with each open session as a live instance. The Users page shows each developer under the email they signed in with. Both count a session only after it ends. The trace list shows it while it runs. - Team rollout. To see tool calls, tokens and cost per developer in one shared workspace, follow Track Claude Code usage and cost across a team.
What Claude Code tracing does not report:
- With structure only, tool inputs, tool outputs and error details are not sent.
- The model’s thinking is never sent, even with content on.
- Model-call durations are approximate. Claude Code’s transcript records when a reply finished but not when the request went out, so a model span can include time you spent approving a permission prompt.
- A session that never ends cleanly, because Claude Code crashed or was killed, never counts on the Agents or Users pages.
- Cost is priced at API rates. On a Claude Pro or Max subscription it measures usage, not what you pay.
When something else fits
- If you build your own agent on the Claude Agent SDK, use the SDK integration instead of the plugin.
- For Codex (beta), Cursor (beta) or OpenHands, see Coding agents to compare how each one connects and what it reports. Cursor (beta) traces carry no token counts or cost.