Claude Code Status Line (2026)

The Claude Code status line is the persistent bar at the bottom of your terminal when running Claude Code. It shows real-time information about the current session: model in use, token count, cost, session duration, and tool activity. Understanding and customizing the status line helps you monitor your sessions and catch cost or context issues early.

What the Status Line Shows

The default status line displays several pieces of information from left to right:

Model Indicator

Shows which Claude model is active:

  • Sonnet 4: The default model
  • Opus 4: Shown when you switch with /model opus
  • Haiku 3.5: Shown when you switch with /model haiku

The model indicator updates immediately when you switch models mid-session.

Token Counter

Displays the total tokens consumed in the current session:

  • Input tokens: Tokens sent to Claude (your messages + conversation history + tool results)
  • Output tokens: Tokens generated by Claude (responses + tool calls + thinking tokens)
  • Total tokens: Combined input + output

The counter updates after each message exchange. For long sessions, watching the token count helps you decide when to use /compact to free context space.

Cost Estimate

Shows the estimated dollar cost of the current session based on:

  • Tokens consumed
  • Current model pricing
  • Whether you are using subscription or API key

The cost is an estimate. Actual billing may differ slightly due to prompt caching, rounding, and rate changes. For detailed cost tracking, see our token usage audit guide.

Session Duration

A timer showing how long the current Claude Code session has been active. Useful for tracking work time and estimating when you might approach usage limits.

Tool Activity Indicator

Shows when Claude is executing a tool:

  • Reading: Claude is reading a file
  • Searching: Claude is running a Glob or Grep search
  • Executing: Claude is running a Bash command
  • Writing: Claude is creating or editing a file
  • Thinking: Claude is using extended thinking

The activity indicator helps you understand what Claude is doing during longer operations, especially when the terminal appears quiet during tool execution.

Context Usage Bar

Some versions display a visual progress bar showing how much of the context window is consumed:

Context: [████████░░░░░░░░░░░░] 42%

When this approaches 80%+, consider using /compact to summarize the conversation and free context space.

Reading the Status Line

Here is what a typical status line looks like during a session:

Sonnet 4 | 12.4K tokens ($0.08) | 23m | Context: 38%

This tells you:

  • Model: Sonnet 4
  • Tokens: 12,400 tokens used so far
  • Cost: Approximately $0.08
  • Duration: 23 minutes into the session
  • Context: 38% of the 200K window is consumed

When to Take Action

Status Line Signal Action
Context > 70% Use /compact to free space
Cost > your budget Consider switching to Haiku or starting fresh
Duration > 2 hours Check if context is still relevant or start new session
Model shows Opus Verify you need Opus; switch to Sonnet if not

Customization

Configuring What Shows

Claude Code’s status line display can be customized through settings. Edit ~/.claude/settings.json:

{
  "statusLine": {
    "showModel": true,
    "showTokens": true,
    "showCost": true,
    "showDuration": true,
    "showContextBar": true
  }
}

Set any field to false to hide that element from the status line.

Minimal Status Line

For a cleaner look with less distraction:

{
  "statusLine": {
    "showModel": true,
    "showTokens": false,
    "showCost": true,
    "showDuration": false,
    "showContextBar": false
  }
}

This shows only the model and cost.

Color Customization

The status line uses your terminal’s color scheme. If elements are hard to read:

  1. Check your terminal’s background/foreground color contrast
  2. Try a different terminal theme
  3. Some terminals allow per-application color overrides

Terminal-Specific Rendering

The status line renders differently depending on your terminal:

Terminal Rendering
iTerm2 (Mac) Full color, icons supported
Terminal.app (Mac) Basic colors, no icons
Windows Terminal Full color support
VS Code integrated Full support
tmux May need set -g status off to avoid conflicts
screen Status line may overlap with screen’s status bar

Working with Terminal Multiplexers

tmux

If you use tmux, the Claude Code status line may conflict with tmux’s own status bar. To fix:

Option 1: Disable tmux status bar:

tmux set -g status off

Option 2: Move tmux status bar to the top:

tmux set -g status-position top

Option 3: Increase tmux pane height to give both status bars room.

screen

GNU Screen has a similar conflict. Use:

# In ~/.screenrc
hardstatus off

Troubleshooting

Status Line Not Showing

Cause 1: Terminal too narrow

The status line needs minimum width to render. Resize your terminal to at least 80 columns.

Cause 2: Non-interactive mode

When running Claude Code with --print (non-interactive mode), no status line is shown. This is by design for piping output.

Cause 3: Outdated version

Earlier versions of Claude Code had limited status line features. Update:

npm update -g @anthropic-ai/claude-code

Cause 4: Terminal compatibility

Some terminals do not support the escape sequences used for the status line. Try a different terminal emulator. iTerm2 and Windows Terminal have the best support.

Status Line Shows Wrong Cost

The cost estimate uses the current model’s pricing. Issues can arise when:

  1. Model switching: Cost calculation may not perfectly track mid-session model switches. The overall session cost shown is an estimate.
  2. Prompt caching: If your session benefits from prompt caching, actual cost may be lower than displayed.
  3. Subscription vs API: The status line may show per-token cost even when you are on a subscription plan where individual messages do not have separate charges.

For accurate cost data, use the /cost command or check your Anthropic console.

Status Line Flickering

Cause: Terminal refresh rate conflicts or rapid tool execution.

Fixes:

  1. Reduce terminal refresh rate if configurable
  2. Check for competing processes that write to the terminal status area
  3. Try a different terminal emulator
  4. Disable the context bar (the most update-intensive element):
{
  "statusLine": {
    "showContextBar": false
  }
}

Status Line Overlaps with Content

Cause: Terminal height too small or terminal does not properly support alternate screen buffer.

Fixes:

  1. Increase terminal window height
  2. Use a terminal that supports alternate screen buffer (most modern terminals do)
  3. If in tmux/screen, see the multiplexer section above

Token Count Seems Too High

If the token count seems inflated:

  1. Context replay: Each message in a conversation replays the full history. A 20-message conversation replays all 20 messages with each new exchange.
  2. Tool definitions: Tool definitions add tokens to every request.
  3. File reads: When Claude reads large files, those tokens count as input.
  4. Extended thinking: Thinking tokens count as output tokens.

Use /compact to reduce the context size, which also reduces future token counts.

Need the complete toolkit? The Claude Code Playbook includes 200 production-ready templates.

Status Line vs /cost Command

The status line shows a running estimate. The /cost command provides more detailed information:

/cost

Output:

Session cost breakdown:
  Model: claude-sonnet-4-20250514
  Input tokens: 8,234
  Output tokens: 3,891
  Total tokens: 12,125
  Estimated cost: $0.083
  Session duration: 18m 42s
  Messages exchanged: 7

Use /cost when you need precise numbers. Use the status line for at-a-glance monitoring.

Integration with Monitoring

Logging Session Costs

Combine the status line data with hooks to log session costs:

#!/bin/bash
# Stop hook: Log session cost on exit
# .claude/hooks/log-cost.sh
echo "{\"timestamp\":\"$(date -u +%Y-%m-%dT%H:%M:%SZ)\",\"session\":\"$CLAUDE_SESSION_ID\"}" >> ~/.claude/session-log.jsonl

Team Cost Tracking

For teams, aggregate session costs from multiple developers:

  1. Each developer logs sessions via Stop hooks
  2. Collect logs into a shared dashboard
  3. Set per-developer or per-project budget alerts
  4. Review weekly to optimize model usage

Status Line in CI/CD

When running Claude Code in CI/CD pipelines (claude --print "prompt"), the status line is disabled. CI environments are non-interactive and typically pipe output. Cost information for CI runs can be captured from the API response metadata.

For CI cost tracking:

# Capture Claude Code output and cost in CI
claude --print "Run tests and report results" 2>claude-stderr.log >claude-output.txt
# Cost info may appear in stderr log

Frequently Asked Questions

Can I completely hide the status line?

Not entirely via settings alone, but setting all display fields to false effectively removes all visible elements. Some terminal padding may remain.

Does the status line affect performance?

No. The status line updates are lightweight text rendering operations. They do not impact Claude Code’s processing speed or token usage.

Is the cost shown inclusive of prompt caching savings?

The displayed cost is typically the gross cost before caching discounts. Actual billed cost may be lower if prompt caching is active.

Can I export status line data?

Not directly from the status line. Use the /cost command for exportable data, or implement a Stop hook to capture session metrics.

Does the status line work in VS Code terminal?

Yes. The VS Code integrated terminal supports the status line with full color and formatting.

Why does the token count jump between messages?

Each new message replays the entire conversation history. A jump from 5,000 to 8,000 tokens means the conversation history + your new message + Claude’s response added 3,000 tokens total.

Can I add custom elements to the status line?

Not currently. The status line elements are built into Claude Code. For custom monitoring, use hooks to display information in the terminal output.

Does the status line show MCP tool usage?

Yes. When Claude calls MCP server tools, the activity indicator shows the tool name and execution status.

How does the status line relate to the 5-hour usage limit?

The status line shows session-level token usage. The 5-hour usage limit is account-level across all sessions. The status line does not show your remaining plan allocation, only the current session’s consumption.

See Also