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

leitstand

프롬프트 위에 관제실 목록을 보여 주는 Claude Code 플러그인입니다. 백그라운드 에이전트와 셸, 디스크 공간과 컨텍스트 사용량, loud/quiet 테마, /stand 전환을 제공합니다.

번역 완료

이 mod 소개

Leitstand는 프롬프트 위에 상태 목록을 그리는 Claude Code mod입니다. Claude가 백그라운드 에이전트나 Bash 작업을 시작하면 상태(running, done, needs you), 이름, 활동 표시줄, 경과 시간을 보여 주는 행이 나타납니다. 리소스 행에는 남은 디스크 공간과 세션 컨텍스트 토큰 사용량이 표시됩니다. 여유 공간이 35 GB일 때 경고하고 20 GB에서 빨간색으로 바뀌며, 컨텍스트는 250k 토큰부터 노란색이 되고 compact 힌트를 표시합니다. /stand가 목록을 전환합니다. 두 테마를 제공합니다: loud(기본값, 하프톤 표시줄이 있는 지속 목록)와 quiet(한 줄, 얇은 표시줄)입니다. LEITSTAND_THEME, LEITSTAND_DISK_HOST(원격 ssh 호스트 측정), LEITSTAND_SOUND(off로 macOS 완료음 음소거)로 설정합니다. claude plugin marketplace add dominikmartn/leitstand 후 claude plugin install leitstand@leitstand로 설치합니다. TypeScript plugin hooks를 지원하는 Claude Code 버전이 필요하며 2.1.288 macOS에서 테스트했습니다. MIT 라이선스입니다.

설치

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

claude plugin marketplace add dominikmartn/leitstand
claude plugin install leitstand
원문 / README

Leitstand

See background jobs, failures, disk space and context usage above your Claude Code prompt.

<picture> <source media="(prefers-color-scheme: dark)" srcset="docs/loud-dark.gif"> <img alt="Leitstand above the Claude Code prompt: two jobs running with moving bars, one done, one failed, the disk and a footer that counts everything" src="docs/loud-light.gif" width="696"> </picture>

Leitstand is a mod for Claude Code. When Claude starts a background agent or shell, a list appears above your prompt. It shows what runs, what finished, what failed, how much disk is left and how full the context is. The name is German for control room.

Install

claude plugin marketplace add dominikmartn/leitstand
claude plugin install leitstand@leitstand

Then start a new session. The list appears as soon as Claude starts a background agent or shell.

Leitstand needs a Claude Code version with mods (TypeScript plugin hooks). I tested it with Claude Code 2.1.288 on macOS.

What you see

Job rows show state, name, a bar and the elapsed time. Resource rows show how much is used.

<picture> <source media="(prefers-color-scheme: dark)" srcset="docs/loud-open-dark.png"> <img alt="Open list: two running jobs, one done, one failed with needs you, the disk at 79 percent" src="docs/loud-open-light.png" width="696"> </picture>
  • running: a background agent or shell. The bar moves to show activity, not progress. The time counts up.
  • done: the job finished. It stays until your next prompt, so you do not miss it.
  • needs you: a job failed, or the disk is running low. The footer counts these in yellow. For a failed job, Claude reports the cause in the chat.
  • disk: free space on this machine. The bar and the percent show how much is used. It warns at 35 GB free and turns red at 20 GB.
  • context: tokens used of the session's window. From 250k tokens on, the row turns yellow and says compact, as a reminder to run /compact. Leitstand never compacts by itself.

Type /stand to open or close the list. Closing it clears finished jobs and acknowledges the disk warning. The warning comes back when free space drops to the next level (20 GB).

<picture> <source media="(prefers-color-scheme: dark)" srcset="docs/loud-warn-dark.png"> <img alt="Nothing running, but the disk has only 28 GB free and the context is at 527k of 1M" src="docs/loud-warn-light.png" width="696"> </picture>

When a hook of yours blocks a tool call, Leitstand shows the hook's name and its reason until your next prompt.

Two themes

loud is the default. The list stays open while anything runs, with halftone bars. Finished and failed jobs stay until your next prompt.

quiet shows one line while jobs run, with thin bars when you open it. Finished and failed jobs disappear immediately. The disk shows only when it runs low.

<picture> <source media="(prefers-color-scheme: dark)" srcset="docs/themes-dark.png"> <img alt="Both themes side by side. Loud closed: one line with 2 running. Loud open: two running jobs, one done, one failed, the disk and a footer. Quiet closed: one line with 2 running. Quiet open: two running jobs with thin bars and the context row." src="docs/themes-light.png" width="912"> </picture>

To use quiet, set the variable before you start Claude Code:

export LEITSTAND_THEME=quiet

Settings

| Variable | Default | What it does | | --- | --- | --- | | LEITSTAND_THEME | loud | loud or quiet | | LEITSTAND_DISK_HOST | unset | Measures the disk of an ssh host instead of this machine, for example a build server | | LEITSTAND_SOUND | on | off mutes the sound after long work |

The sound plays on macOS when work took longer than a minute and nothing runs any more. On Linux it stays silent.

The disk host goes to ssh -o BatchMode=yes, so it needs key-based login. Leitstand accepts a host name, an ssh alias, an IP address or user@host, for example buildbox, 10.0.0.5 or [email protected]. Set ports and keys in ~/.ssh/config. A value with spaces, quotes or a leading dash shows invalid disk host, and Leitstand does not fall back to the local disk. When a measurement fails, the last value stays with stale next to it.

For agents

If a user asks you to install, configure or debug Leitstand, these facts apply.

  • Type: Claude Code plugin with a hooks module, hooks/register.tsx, listed in hooks/hooks.json. No MCP server, no skills. The only network call is ssh, and only when LEITSTAND_DISK_HOST is set.
  • Install: claude plugin marketplace add dominikmartn/leitstand, then claude plugin install leitstand@leitstand. Add --scope project to both for one project only. The user must start a new session.
  • Requirements: Claude Code with mods (TypeScript plugin hooks). Tested with 2.1.288 on macOS. Not tested on Linux, where the sound stays off.
  • Configure: three environment variables, all optional. LEITSTAND_THEME = loud (default) or quiet. LEITSTAND_DISK_HOST = an ssh host, unset means this machine. LEITSTAND_SOUND = off to mute. Set them in the shell, or in ~/.claude/settings.json like this: { "env": { "LEITSTAND_THEME": "quiet" } }. A new session picks them up.
  • Tracked work: Agent tool calls and Bash calls with run_in_background: true from the main session. Subagents' own tool calls are not tracked. A job ends when Claude Code delivers a task notification for its id.
  • Commands it runs: sh -c 'df -kP /System/Volumes/Data 2>/dev/null || df -kP /' every 5 minutes, or the same df through ssh when LEITSTAND_DISK_HOST is set. On macOS, afplay /System/Library/Sounds/Glass.aiff.
  • State: the disk value is shared between sessions through the plugin store. All other state lives in the session.
  • Verify: claude plugin list shows leitstand@leitstand. In a new session, ask Claude to run sleep 30 with run_in_background: true. A running row with that command's description must appear above the prompt and turn into done when the notification arrives. /stand toggles the list. If nothing appears, claude plugin validate <plugin dir> lists the hooks Leitstand registers.
  • Tests: claude plugin test . in the repo.

Develop

git clone https://github.com/dominikmartn/leitstand
cd leitstand
CLAUDE_CODE_PLUGIN_DIRS=$PWD claude
claude plugin test .

The editor types live in .claude-plugin/types/. Claude Code's plugin tooling generates them, and they are not committed.

Why German

I built this for myself first and called it Leitstand, the word for the room where people watch a power plant or a rail network. It stayed. English has kindergarten and zeitgeist, so it can take one more.

Made by @dominikmartn · MIT license

비슷한 프로젝트