Statusline

A block of lines at the bottom of Claude Code that shows your project, git, model, context use and usage limits.

The statusline

The full install turns it on. It refreshes on every Claude Code prompt.

What each line shows#

Line What you see
Project The loaded project and its progress ([3/8], or [TBD] with no real tasks yet), when its context was saved, ⤵ Fork of: <parent> on a fork (with the parent's own parent in gray when the parent is a fork too), and your last prompt time.
Location The folder, the git branch (green when clean, yellow when there are changes), and the open PR for the branch.
Session How long this session has run, and how many edits Claude made.
Metrics The model, the effort level, and Fast mode activated when fast mode is on.
Context Your kubectl context (only if kubectl is installed), tokens used, and how full the context window is.
Usage Your plan, session and weekly usage with reset times, any per-model weekly limit, and extra credits spent.
Codex Codex plan and usage. Only when Codex is installed.
Vitals Your Claude Code version and any newer one, MissionCache update available when there is one, and Claude's service status.

The block keeps a fixed height: 7 lines, 8 with Codex, plus your addon rows.

Context colours. From 65% it turns yellow with Compact recommended, and from 80% red with Compact now!. (Estimated) means Claude Code did not send the number, so it was worked out from token counts.

Version colour. Green means you have read the release notes for this version with /whats-new. Yellow means you have not.

Links. Click the project name for the dashboard, the progress for the project's tasks, and the saved time for its context. The PR number, version and status open the PR, the Claude Code changelog and status.claude.com.

Turn it on or off#

uvx missioncache-install --statusline              # turn it on
uvx missioncache-install --uninstall statusline    # turn it off
uvx missioncache-install --all --no-statusline     # install everything else
uvx missioncache-install --update                  # get the newest version

The statusline comes with the dashboard package, so --statusline adds the dashboard when it is missing.

If Claude Code already has a statusline, the installer asks before replacing it and saves the old setting to ~/.claude/settings.json.bak. An --update never replaces a statusline you set yourself.

Choose what it shows#

Open the dashboard, click Settings, then the Statusline tab. Click Save statusline settings, and the next prompt shows the change.

Setting Controls
Codex usage The Codex line.
Claude subscription usage The usage numbers.
Claude subscription type The plan name.
Claude status The service status.
Services to monitor Which Claude services count. Code and Claude API by default.
Show model suspension / deprecation notices Model-access notices in the status. Off by default. Real outages always show.
Put addon rows below the Claude status line Where addon rows sit. Off by default, so status stays last.

Environment variables#

Set these in your shell profile, then restart Claude Code.

Variable Default What it does
MISSIONCACHE_DASHBOARD_URL http://localhost:8787 Where the links point. Set it if your dashboard runs on another port.
NO_COLOR unset Any value turns colours off.
MISSIONCACHE_STATUSLINE_DEBUG unset Any value writes what Claude Code sent to ~/.claude/hooks/state/statusline-ctx-debug.log on every refresh.

Add your own cells#

An addon is a cell filled by a command you choose. Add one in Settings, Statusline tab, under Statusline addons. + Add example fills in one to start from.

This one shows a number a scheduled job writes to a file:

{
  "id": "deploys",
  "enabled": true,
  "label": "Deploys",
  "icon": "🚀",
  "color": "version",
  "command": ["/bin/cat", "/Users/you/.cache/deploys.json"],
  "ttl": 60,
  "timeout": 5
}

The command prints plain text, or JSON like {"value": "3", "color": "health_ok"} that can also set label, icon or "hidden": true. "alert": true adds a red E after the cell, for a value you should not trust right now, such as data that stopped updating. "link" (an http, https or file URL) makes the E clickable, or the value when there is no alert. An addon that fails or prints nothing leaves its line blank. Keep it fast. For slow data, have a cron or launchd job write a file and read it, as above.

On Windows#

When something looks wrong#

No statusline at all. Run which missioncache-statusline. If it prints nothing, run uvx missioncache-install --statusline. statusLine.command in ~/.claude/settings.json should be missioncache-statusline (on Windows, the full path). Test it with echo '{}' | missioncache-statusline. Errors go to ~/.claude/logs/statusline-errors.log.

The project is missing. Run /missioncache:load <project> in that session.

Edits stays at 0. The count comes through the dashboard. Run missioncache-dashboard status and start it if it is not running.

A line stays blank. Set MISSIONCACHE_STATUSLINE_DEBUG=1 and read the debug log to see what Claude Code sent.

The version is yellow. Run /whats-new. It ships with uvx missioncache-install --user-commands.

A setting did not change anything. Click Save statusline settings in the dashboard, then send a prompt. For an environment variable, restart Claude Code from a new terminal.

More#

How it renders, what it caches, and how to change the built-in lines: internals/statusline.md.