Skip to Content
Rius

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, statusYesYes
For shell calls, the kind of command (test, build, lint, package, git or other) and its exit codeYesYes
Tool inputs, such as commands and file pathsNoYes
Tool outputs, such as file contents and command outputNoYes
Error details of a failed tool callNoYes

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

  1. 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-agents

    Then run /rius:login in Claude Code, pick a workspace and click Connect.

  2. 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-here

    This sends structure only, which already includes every tool call with its name, timing and error type.

  3. To see what each tool was asked to do and what it returned, enable the folder with content instead:

    /rius:enable-content-here
  4. Run /rius:status. The first line reads Rius tracing: on, and the output shows how many spans this session has sent.

  5. 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, pick rius and 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.

Still stuck? Get help

Last updated on