# Status Line A persistent bar at the bottom of Claude Code shows the current topic, model, and context usage: `[Model Name] topic | N% context`. ## Setting the topic After the user selects a project or describes their task (i.e., after the first response where the status line has had a chance to run), set the topic: ```bash ~/.claude/status/set-topic.sh "$(pwd)" "project-name: brief task description" ``` Examples: - `~/.claude/status/set-topic.sh "$(pwd)" "brainiac-app: M2 web frontend"` - `~/.claude/status/set-topic.sh "$(pwd)" "cluster-bootstrap: Cilium upgrade"` - `~/.claude/status/set-topic.sh "$(pwd)" "General chat"` ## When to update - **Session start:** set the topic once the user picks a project or task - **Focus change:** update if the user shifts to a different project or task mid-session - **Keep it short:** aim for `project: task` format, under ~40 characters ## How it works The status line script (`scripts/statusline.sh`) runs after each assistant message. It writes the session ID to `/tmp/claude-session-id-`, which `set-topic.sh` reads to find the correct per-session topic file at `~/.claude/status//claude-topic.txt`. Early calls are safe: if `set-topic.sh` is called before the status line has run (first message), the topic is queued to a pending file and automatically applied when the status line first runs after the next response.