Not sure why Claude is doing what it's doing? The --verbose flag streams every tool call live so you can follow along in real time.
claude --verbose "Refactor the auth service to use dependency injection"
With verbose mode on, you'll see each file Claude reads, every command it runs, and every step it takes before making a change. This is invaluable for a few things: debugging unexpected behaviour, understanding why a task is taking longer than expected, or learning how Claude approaches a complex problem.
It also lets you catch Claude heading in the wrong direction early enough to press Escape and redirect it — rather than waiting for it to finish and then unwinding the changes.
# Great for understanding Claude's codebase exploration strategy
claude --verbose "Find why our test suite is failing intermittently"
Verbose mode is also useful when you're building automation with Claude Code — it lets you verify the tool calls match what you expect before you commit to running it unsupervised.
# Combine with --print for non-interactive verbose output
claude --verbose --print "Summarise all open TODO comments in the codebase"
When Claude surprises you, --verbose turns the black box transparent.
Log in to leave a comment.
Hand Claude your heap snapshots or server code and ask it to trace memory leaks — it spots missing event listener cleanup, unbounded caches, and stream lifecycle bugs that are easy to miss in code review.
Ask Claude to audit your UI components for WCAG accessibility issues — it catches semantic problems, missing ARIA attributes, and keyboard navigation gaps that automated tools miss.
The --debug flag enables verbose logging for Claude Code, and an optional category filter like "api,mcp" lets you narrow output to exactly the subsystem you need to investigate.