Skip to content
Notra logoNotra UI
Esc
↑↓navigate↵open⌘Jpreview
On this page

Status

The orange spinner line while Claude works and the dim summary after a turn.

import {
  ClaudeCodeSpinner,
  ClaudeCodeTurnSummary,
} from "../components/claude-code-status";
import { ClaudeCodeTerminal } from "../components/claude-code-terminal";
import { CLAUDE_CODE_SESSION } from "../constants/claude-code-session";

const [turn] = CLAUDE_CODE_SESSION.turns;

export default function ClaudeCodeStatusExample() {
  return (
    <ClaudeCodeTerminal title="claude — status">
      <ClaudeCodeSpinner {...CLAUDE_CODE_SESSION.pending.spinner} />
      <ClaudeCodeSpinner elapsed="2s" verb="Frosting" />
      <ClaudeCodeTurnSummary {...turn.summary} />
      <ClaudeCodeTurnSummary doneAt="9:42 AM" duration="19s" />
    </ClaudeCodeTerminal>
  );
}
$ bunx --bun shadcn@latest add @notra/claude-code-status

ClaudeCodeSpinner is the line Claude Code shows while a turn runs: an orange glyph that cycles through · ✢ ✳ ✶ ✻ ✽, the verb in orange and the elapsed time, tokens and extra details in dim parentheses. A tip prints on a ⎿ line under it. The glyph holds still with paused or when the visitor prefers reduced motion, and the root is a role="status" region.

Prop Default Description
verb Thinking Printed with a trailing …, like Sketching….
elapsed Like 14s.
tokens Shown as ↓ 688 tokens.
details [] More fields in the parentheses, like thinking.
tip The ⎿ line below. Supports `code`.
paused false Freezes the glyph.

ClaudeCodeTurnSummary is the dim ✻ Cogitated for 7s · done 9:41 AM line after a finished turn. It takes duration, doneAt and verb, which defaults to Worked.

ClaudeCodeInterrupted is the ⎿ Interrupted · What should Claude do instead? line after a turn you stopped with Escape. Change the text after the dot with hint.

Used in

Claude Code

A Claude Code terminal session with the compact header, tool calls, a running turn and the prompt.