ClaudeMods
☰
KO
● 0 명 접속 중 · 조회 0 회
후원프로젝트 제출
GitHub 저장소 · 작성자 centminmod

desktop-statusline

Claude Desktop app의 Code 탭에서 프롬프트 위에 상태 밴드를 그리는 Claude Code 플러그인입니다. 폴더, git 브랜치와 상태, 세션 시간, 비용, 컨텍스트, 5시간과 주간 한도, 마지막 턴, 캐시 TTL, 압축, 실행 중인 에이전트를 보여 줍니다.

centminmod@centminmod

centminmod/claude-plugins/tree/master/plugins/desktop-statusline

원본 게시물 이미지1
번역 완료

이 mod 소개

desktop-statusline은 Claude Code 안에서 CLI statusLine 스크립트가 사용하는 것과 같은 세션 데이터를 읽어, CLI statusLine이 실행되지 않는 데스크톱 Code 탭에 렌더링합니다. 폴더, git 브랜치, worktree 표시, 앞서거나 뒤처진 커밋 수, 커밋하지 않은 파일 수와 오른쪽 정렬된 세션 시간, 프롬프트 수, 비용을 표시합니다. 컨텍스트 창, 재설정 카운트다운이 있는 5시간 및 주간 플랜 한도, 마지막 턴의 시간·모델·캐시 적중률·유휴 시간(prompt-cache TTL을 넘으면 캐시가 차가워졌다는 경고), 압축 전후 token과 압축 횟수도 보여 줍니다. 실행 중인 서브에이전트 최대 세 개에 각 행을 주고 그 뒤에 +N more agents running을 표시하며, 한도 창의 80%와 95%에서 toast를 한 번씩 띄웁니다. 데스크톱 전용이라 터미널에서는 아무것도 그리지 않고 git 호출도 건너뛰어 CLI statusLine은 그대로 둡니다. 실행하는 프로그램은 git뿐이며 세션 폴더에서 읽기 전용 명령 git status --porcelain=v2 --branch와 git rev-parse --git-dir --git-common-dir를 5초 제한으로 실행합니다. 네트워크 호출과 파일 쓰기는 없습니다. /plugin marketplace add centminmod/claude-plugins 뒤 /plugin install desktop-statusline@centminmod으로 설치합니다. Claude Code v2.1.287 이상과 업데이트된 데스크톱 앱이 필요합니다. cache_ttl(기본 1h 또는 5m)설정이 프롬프트 캐시를 차갑다고 표시할 시점을 정합니다. MIT 라이선스입니다.

설치

먼저 작성자의 README에서 marketplace와 플러그인 이름을 확인하세요. 저장소 구조에 따라 명령어가 달라질 수 있습니다.

claude plugin marketplace add centminmod/claude-plugins
claude plugin install desktop-statusline
원문 / README

desktop-statusline

A Claude Code mod that puts a status band above the prompt in the Claude Desktop app's Code tab.

The Claude Code CLI has a statusLine setting that runs a script and prints its output under the prompt. The desktop Code tab never runs that script, so desktop sessions show none of it. This mod reads the same session data from inside Claude Code and draws it in the desktop app instead.

The desktop-statusline band above the prompt in the Claude Desktop app's Code tab, showing folder, branch, changed files, session cost, context meter, 5-hour and weekly usage limit meters, and last-turn stats

  • Desktop only. In a terminal session it draws nothing and skips its git calls, so your CLI statusLine keeps working as before.
  • No network calls. The only process it starts is git, in the session's folder.
  • Works on any plan. The usage limit meters appear when Claude Code reports plan limits for your account.

What it shows

Four lines on a normal window. On a narrow window the two limit meters stack, which makes five.

  1. Where you are. Folder, git branch, a 🌳 marker in a worktree, commits ahead or behind upstream, and the number of uncommitted files. Right-aligned on the same line: session age, prompt count, and session cost.
  2. Context. A meter for how full the context window is, with tokens used against the window size.
  3. Plan usage limits. The 5-hour and weekly limits, each with a meter and a reset countdown.
  4. Last turn. How long it took, the model that answered, the cache hit rate, how long the session has been idle, and how many times it has compacted, with the token count before and after the last compaction.

Each running subagent gets a row of its own, up to three, followed by a +N more agents running line.

Meters turn amber at 80% and red at 95%. A cache hit rate under 50% shows as a warning, and so does an idle time past the prompt-cache TTL, marked (cache cold). A toast pops up when a usage limit crosses 80% and again at 95%, once per limit window.

Install

Mods need Claude Code v2.1.287 or later. The desktop app ships its own copy of Claude Code, so keep the app updated too.

Run these inside the Claude Code terminal CLI (claude in your shell):

/plugin marketplace add centminmod/claude-plugins
/plugin install desktop-statusline@centminmod

Then start a new session in the desktop app's Code tab. The band appears once the session has data to show, usually right away.

Settings

One setting, cache_ttl, sets how long your session can sit idle before the band marks the prompt cache cold. Claude Code asks for it when you enable the plugin, and you can change it later in /plugin or /config. Enter 1h or 5m; any other value counts as 1h.

Claude Code's prompt caching docs give these defaults for the main conversation:

| Account | Default TTL | Set cache_ttl to | | :- | :- | :- | | Claude subscription, within plan usage | 1 hour | 1h, the default | | API key, cloud provider, or a subscription drawing on usage credits | 5 minutes | 5m |

A promptCacheTtl setting or the CLAUDE_CODE_PROMPT_CACHE_TTL environment variable overrides those defaults, so match whatever you set there. The docs don't split Pro from Max. If you're not sure which TTL you get, run this and look at usage.cache_creation in the output:

claude -p "hello" --output-format json

One-hour cache writes count under ephemeral_1h_input_tokens, five-minute writes under ephemeral_5m_input_tokens.

Claude Code stores your answer in ~/.claude/settings.json:

{
  "pluginConfigs": {
    "desktop-statusline@centminmod": {
      "options": { "cache_ttl": "5m" }
    }
  }
}

See Cache lifetime for which TTL your sessions get.

When it updates

The band refreshes when the session starts, when the desktop app attaches, after every turn, when a plan limit's percentage changes, two seconds after Claude starts a subagent, and every 60 seconds.

What it runs, reads and sends

Programs it runs. Only git, with two fixed read-only commands, in the session's folder and with a 5-second timeout:

  • git status --porcelain=v2 --branch, for the branch, commits ahead or behind upstream, and the uncommitted file count
  • git rev-parse --git-dir --git-common-dir, to tell a worktree from the main checkout

Neither command contacts a remote, and the mod runs them only in desktop sessions. It starts no other program.

What it reads. Through Claude Code's mods API, it reads the session's usage (context size, cost, and the 5-hour and weekly plan limits), the session's folder, the number of prompts, the start time, and the type and short task description of each running subagent. From each finished turn it reads the duration, the model, and the token counts used for the cache hit rate. After a compaction it reads the token counts before and after. It doesn't read prompt or response text, files, environment variables, or credentials. The plan limits come from Claude Code, not from your login.

What it sends. Nothing. It makes no network calls and writes no files. What it reads goes only into the band above the prompt and the usage-limit toasts, and into the session's $.state, which ends with the session.

The one URL in the code, http://www.w3.org/2000/svg, is the standard SVG namespace in the meter bars' xmlns attribute. It labels the markup as SVG and is never fetched. The token counts next to it are the context and compaction sizes the band displays, not API keys or login tokens.

What its hooks change. Nothing. The session.compact hook waits for the compaction to finish, records the before and after token counts, and returns the result unchanged. The tool.call hook for the Agent tool schedules a band refresh two seconds later and passes the call through unchanged.

Check it yourself

Before installing a mod, you can list what it hooks and calls without running it. Clone this repo and run:

claude plugin validate plugins/desktop-statusline

For this mod the report lists:

  • Hooks: session.start, session.attach for the desktop, session.measure, turn.complete, tool.call for the Agent tool only, session.compact, and ui.render for the AbovePrompt band.
  • Calls: session usage, cwd and turn count, the running agent list, the clock, toasts, and $.process.run for git status --porcelain=v2 --branch and git rev-parse --git-dir --git-common-dir.

It keeps its values in the session's $.state and writes no files.

Limitations

  • No lines added or removed. The mods API doesn't expose them, so the band shows the uncommitted file count instead.
  • The cache-cold warning follows your setting, not your account. Claude Code drops to the 5-minute TTL when a subscription starts drawing on usage credits, and the band keeps using whatever cache_ttl says.
  • No effort level or permission mode. The desktop app's footer already shows both.
  • Nothing draws in the VS Code extension, claude -p, or cloud sessions. Mods only draw in the terminal and the desktop Code tab, and this one only draws in the desktop.

Turn it off

Disable it from the Installed tab in /plugin, or uninstall it from your shell:

claude plugin uninstall desktop-statusline@centminmod

Licence

MIT. See LICENSE.

동명의 다른 작품

비슷한 프로젝트