Skip to content

Releases: risukisu/claude-code-statusline

v1.2.0

Choose a tag to compare

@risukisu risukisu released this 12 Oct 17:00
531277e

Added

  • Agent model labels, an optional add-on. extras/agent-model-tag.js is a PreToolUse
    hook that makes Claude Code's agent lines show each subagent's model and exact version,
    with a dot per model family: 🤖 Fix the tests [🟣 opus: Opus 5.5]. It follows Claude
    Code's documented order for picking a subagent's model and reads only model ids from
    local transcripts. It is opt-in: the status line itself still needs no hook.
    agentTag.emoji in ~/.claude/statusline.json changes the dots. See the README.

v1.1.0

Choose a tag to compare

@risukisu risukisu released this 28 Sep 11:53
7de36dd

Added

  • A settings file. ~/.claude/statusline.json holds the theme, quiet mode, links,
    context thresholds, workspace palettes, hidden segments, and bar width. Every key is
    optional, a bad value falls back to its default, and upgrades never overwrite the file.
    examples/statusline.json lists every key.
  • Clickable links. gh:owner/name opens the repo and the PR badge opens the PR, in
    terminals that support OSC 8 hyperlinks. Credentials in an https remote never reach the
    link. GitLab merge requests read MR !12.
  • Themes. high-contrast lifts the greys; colorblind swaps green and red for
    blue, yellow, and vermillion. The standard NO_COLOR variable prints plain text.
  • Quiet mode, on by default. Healthy segments such as ✓ synced and low usage are
    dimmed, so what needs attention stands out.
  • A workspace gutter. A ▌ down the left edge in the workspace colours ties the four
    lines into one block. "gutter": false turns it off.
  • Narrow terminals. Each line fits the width Claude Code reports: line 3 drops the
    remote, then the sync age, the PR's review words, the ▸ repo name, and the PR; lines 1
    and 2 drop the token count, diff, effort, and countdowns. Branch, changes, ahead/behind,
    the context %, and the /compact hint always stay.

Changed

  • The context bar warns earlier. Amber from 30%, orange at 40%, red from 50%, where a
    ⚠ /compact hint appears. Both lines are settings. The companion's context lines
    start at the same 50% (they started at 70%).
  • Limit bars replace the pace arrows. Line 2 draws each window as a bar: the fill is
    what you've used, a │ notch marks how much of the window's time has passed, and fill
    past the notch is red overspend. ⇡N and ⇣N are gone from line 2.
  • The companion speaks. Line 4 reads ╰─ 🦊 line with the line in italics, instead
    of 🦊 ~ line.

Docs

  • The README opens with an animated project card and explains, in plain words, how to
    read each line: why the context bar turns red at 50%, how a limit bar's notch works, and
    what ⇡ and ⇣ mean.

Upgrading From 1.0.0

  • Copy statusline.js into ~/.claude/ again. Souls and /animal are unchanged.
  • If you edited ROOT_PALETTES in the script, move those entries to palettes in
    ~/.claude/statusline.json.

Full notes: CHANGELOG.md

v1.0.0

Choose a tag to compare

@risukisu risukisu released this 28 Sep 11:53

The first tagged release.

What Ships

  • Line 1, session: model, reasoning effort, a blue → amber → red context bar,
    tokens used of the window, and lines added and removed.
  • Line 2, limits: 5-hour and 7-day usage, pace against the clock (⇡ burning fast,
    ⇣ under pace), and time until each window resets.
  • Line 3, git: the launch folder in its own shimmering workspace colour, the repo
    you're in when it differs, branch, uncommitted files, ahead/behind or ✓ synced,
    age of the upstream's last commit, the origin remote, and the open PR's review state.
  • Line 4, companion (optional, off by default): a squirrel, fox, or turtle that
    comments on your work with hand-written lines. Pick one with /animal.
  • No network, no API keys, no model calls, no dependencies. node and a few local
    git reads.

New Since the Pre-Release Builds

  • Companions notice what's going on. Souls gained nine state sections: dirty,
    ahead, behind, context, limits, synced, branch, norepo, and night.
    Lines can carry live values: {dirty}, {ahead}, {behind}, {ctx}, {limit},
    {branch}, and {dirty:file} for "1 file" / "3 files". While you're busy, two lines
    in three speak to the state and the third is idle chatter, so the character still
    shows. Old souls with only work and ambient keep working.
  • Eight times the lines. Each shipped soul went from 8 lines to 66–68.
  • node statusline.js --version prints the installed version.

Fixed

  • Cache files piled up in ~/.claude. Each session's git snapshot cache stayed
    forever, and on Windows a failed atomic write left its temp file behind (one machine
    had 88 caches and 322 temp files). A failed write now removes its temp file, and a
    session's first render sweeps statusline-git.* caches idle for a day and temp files
    older than a minute. It touches no other file.
  • Cancelled renders hung forever. Claude Code orphans a superseded render without
    closing its stdin; the process now exits on its own after 8 seconds.
  • Every render ran git 4–5 times. The git snapshot is cached per session for 3
    seconds, and the recommended refreshInterval is 10.

Upgrading From a Pre-1.0 Checkout

  • Copy statusline.js, souls/, and commands/animal.md into ~/.claude/ again.
  • An experimental live companion mode existed before 1.0 and is gone. If your
    ~/.claude/statusline-soul.json still names it, the companion reads as off; run
    /animal to pick again.
  • If ~/.claude/settings.json has a UserPromptSubmit hook running
    statusline.js --hook, delete that entry. It does nothing now.

Full notes: CHANGELOG.md