검색
← 모듈 로드맵

Claude Code 상태 표시 플러그인 설치법

발행 출처 GitHub · github.com

클로드 코드튜토리얼입문자

나중에 보기좋아요
공유 · 인쇄
후기댓글

Claude HUD

Claude Code 플러그인으로, 무엇이 일어나고 있는지 보여줍니다: 컨텍스트 사용량, 속도 제한, 활성 도구, 실행 중인 에이전트, 할 일 진행 상황을 입력창 아래에 항상 표시합니다.

Claude HUD 실행 화면
Claude HUD 실행 화면

🌐 English | 中文文档

설치

Claude Code 안에서 다음을 실행합니다:

코드
/plugin marketplace add jarrodwatts/claude-hud
/plugin install claude-hud
/reload-plugins
/claude-hud:setup

/claude-hud:setup은 상태 표시줄을 HUD로 연결합니다. Claude Code는 설정을 자동으로 다시 불러오므로 HUD가 바로 나타납니다. 사용자 지정하려면 Claude에게 요청하거나 /claude-hud:configure를 실행하세요.

*터미널을 선호하시나요?*

shell
claude plugin marketplace add jarrodwatts/claude-hud
claude plugin install claude-hud@claude-hud

그다음 세션 안에서 /reload-plugins와 /claude-hud:setup을 실행합니다.

*Windows: setup에서 JavaScript 런타임을 찾을 수 없다고 표시됨*

Node.js LTS(winget install OpenJS.NodeJS.LTS)를 설치하고, 셸을 다시 시작한 뒤 /claude-hud:setup을 다시 실행하세요.

업데이트: Claude Code는 기본적으로 서드파티 플러그인을 자동 업데이트하지 않습니다. 이를 켜려면 /plugin을 실행하고 Marketplaces를 연 다음 claude-hud를 선택하고 Enable auto-update를 고르세요. 해당 옵션이 없거나 업데이트가 오지 않으면, 터미널에서 수동으로 업데이트하세요:

shell
claude plugin marketplace update claude-hud
claude plugin update claude-hud@claude-hud

그다음 열려 있는 어떤 세션에서든 /reload-plugins를 실행합니다. setup을 다시 실행할 필요는 없습니다.

표시되는 내용

기본값은 두 줄입니다:

코드
[Opus] │ my-project git:(main*)
Context █████░░░░░ 45% │ Usage ██░░░░░░░░ 25% (resets in 1h 30m)
  • 1행: 모델, 감지된 경우 공급자 레이블(Bedrock, Vertex, MiniMax), 프로젝트 경로, git 브랜치.
  • 2행: 사용 중인 컨텍스트(채워질수록 초록색, 그다음 노란색, 그다음 빨간색)과 구독자 속도 제한.

선택 사항인 줄은 /claude-hud:configure로 켤 수 있습니다:

코드
◐ Edit: auth.ts | ✓ Read ×3 | ✓ Grep ×2        ← tools
◐ explore [haiku]: Finding auth code (2m 15s)    ← agents
▸ Fix authentication bug (2/5)                   ← todos

작동 방식

Claude HUD는 상태 표시줄 명령입니다. Claude Code는 세션 데이터를 stdin으로 전달해 이를 실행하고(모델, 컨텍스트 창, 비용, 속도 제한, 프롬프트 캐시), 출력된 내용을 표시합니다. 도구, 에이전트, todo 줄 같은 일부 선택 요소는 세션 대화 기록도 읽습니다. 별도의 창이나 tmux가 필요 없으며 어떤 터미널에서도 작동합니다.

설정

코드
/claude-hud:configure

가이드형 흐름에서는 레이아웃, 활동 줄, 세션 정보, 사용량, git, 언어, 사용자 지정 줄을 다룹니다. 변경 사항을 저장하기 전에 미리 보여 주며, 묻지 않은 설정은 그대로 유지합니다.

그 밖의 모든 설정은 ~/.claude/plugins/claude-hud/config.json(또는 $CLAUDE_CONFIG_DIR 아래)에 있습니다. 잘못된 값은 기본값으로 되돌아갑니다.

여러 CLAUDE_CONFIG_DIRs가 하나의 plugins/ 디렉터리를 공유하는 경우, 디렉터리별 설정은 $CLAUDE_CONFIG_DIR/claude-hud.json에 넣으세요. 같은 형식을 사용하며, 변경하는 키만 필요하고, 공용 설정 위에 겹쳐 적용됩니다:

json
{ "display": { "customLine": "Work Team" } }

레이블은 영어(기본값), 간체 중국어(zh-Hans, 별칭 zh), 번체 중국어(zh-Hant, 별칭 zh-TW)로 제공됩니다.

옵션

옵션유형기본값설명
languageen | zh | zh-Hans | zh-Hant | zh-TWenHUD 레이블 언어입니다. 간체 중국어에는 zh 또는 zh-Hans를, 번체 중국어에는 zh-Hant 또는 zh-TW를 사용하세요.
lineLayoutstringexpanded레이아웃: expanded(여러 줄) 또는 compact(한 줄)
showSeparatorsbooleanfalsecompact 레이아웃에서는 세션 줄과 활동 줄 사이에 구분선을 그립니다
pathLevels1-3 | full1프로젝트 경로에 표시할 디렉터리 수준입니다. full을 사용하면 전체 절대 경로를 표시합니다
maxWidthnumber | nullnull터미널 너비 감지가 완전히 실패했을 때만 사용하는 선택적 대체 너비입니다
forceMaxWidthbooleanfalse설정되어 있으면 터미널 너비 감지가 더 작은 값을 반환하더라도 항상 maxWidth를 사용합니다
elementOrderstring[]["project","addedDirs","context","usage","promptCache","cacheHitRate","memory","environment","tools","skills","mcp","agents","todos","sessionTime"]expanded 모드의 요소 순서입니다. expanded 모드에서 숨기려면 항목을 생략하세요. 기존 설정은 업데이트될 때까지 명시한 순서를 유지합니다. sessionTokens는 기본 순서에 없습니다. 다른 요소와 마찬가지로 display.showSessionTokens 요약을 배치하려면 추가하세요. 예를 들어 project와 함께 display.mergeGroups 그룹에 넣을 수 있습니다. 생략하면 맨 마지막 줄에 단독으로 남습니다.
projectLineOrderstring[][]두 레이아웃 모두에서 첫 번째 줄 내부 세그먼트의 선택적 선행 순서입니다. 표시 여부는 display.show* 플래그가 유지하며, 생략된 세그먼트는 기존 렌더러 순서를 유지합니다. model은 공급자 + 모델 + effort(그리고 compact 모드에서는 컨텍스트 바까지)를 포함합니다. project는 경로 + 추가된 디렉터리 + git을 하나의 세그먼트로 포함합니다. 예: ["project","model"]은 프로젝트/git 블록을 모델 배지보다 앞에 둡니다.
display.mergeGroupsstring[][][["context","usage"]]인접할 때 한 줄을 공유해야 하는 expanded 모드 그룹입니다. 병합된 줄을 비활성화하려면 []로 설정하세요.
display.rightAlignstring[][]병합된 행에서 첫 번째로 나열된 요소부터 오른쪽 정렬된 접미사를 시작하며, elementOrder를 유지하고 간격은 공백으로 채웁니다. 앵커는 실제로 한 줄로 렌더링되는 display.mergeGroups 그룹 안에 있어야 합니다. 터미널 너비를 알 수 없거나, 앵커가 첫 번째이거나, 채울 공간이 없으면 무시됩니다. 예: ["context"]와 ["project","context","usage"] 그룹을 함께 쓰면 project/git는 왼쪽에 두고 context + usage는 오른쪽에 고정합니다.
gitStatus.enabledbooleantrueHUD에 git 브랜치를 표시합니다
gitStatus.showDirtybooleantrue커밋되지 않은 변경 사항에 *를 표시합니다
gitStatus.showAheadBehindbooleanfalse원격보다 앞선/뒤처진 개수를 ↑N ↓N으로 표시합니다
gitStatus.pushWarningThresholdnumber0푸시되지 않은 커밋 수가 이 값 이상이면 앞선 개수의 색을 경고 색으로 표시합니다(0이면 비활성화)
gitStatus.pushCriticalThresholdnumber0푸시되지 않은 커밋 수가 이 값 이상이면 앞선 개수의 색을 치명적 색으로 표시합니다(0이면 비활성화)
gitStatus.showFileStatsbooleanfalse파일 변경 수 !M +A ✘D ?U를 표시합니다
gitStatus.showWorktreebooleanfalse연결된 git worktree에서는 브랜치 뒤에 이름을 표시합니다. 예: git:(feat/x) ⎇ feat-x
gitStatus.branchOverflowtruncate | wraptruncate현재 잘라내기 동작을 유지하거나, 가능하면 git 블록이 자체 줄 경계에서 줄바꿈되게 합니다
jjStatus.enabledbooleanfalsejj(Jujutsu) 상태를 사용하도록 설정합니다. 활성화되어 있고 실제 .jj 디렉터리가 발견되면 해당 저장소에서는 git 대신 jj를 사용합니다. 둘 다 사용하지는 않습니다
jjStatus.showDirtybooleantrue작업 복사본 커밋이 부모와 다를 때 *를 표시합니다
jjStatus.showConflictsbooleantrue작업 복사본 커밋에 해결되지 않은 충돌이 있으면 !conflict 표시를 보여줍니다
display.showModelbooleantrue모델 이름 [Opus]를 표시합니다
display.showProjectbooleantrue프로젝트 경로를 표시합니다
display.modelSourcestdin | auto | transcriptstdin모델 이름이 어느 소스에서 오는지 제어합니다. stdin은 기본 동작을 유지하며 항상 Claude Code가 보고하는 값을 사용합니다. auto는 Claude가 아닌 모델에 대해서만 transcript 모델을 사용해 프록시 리디렉션 감지를 적용합니다. transcript는 항상 API 응답의 모델을 사용합니다. transcript 모델 값은 터미널용으로 정화되며 최대 80자로 제한됩니다
display.modelFormatfull | compact | shortfullcompact은 (1M context) 같은 컨텍스트 창 접미사를 제거합니다. short는 앞의 Claude도 제거합니다
display.modelOverridestring""모델 이름 대신 이 텍스트를 표시합니다(최대 80자)
display.showProviderbooleanfalse모델 이름 앞에 제공자 레이블을 표시합니다. 예: [Bedrock | Opus 4.6]. 사용자 지정 프록시가 서로 다른 제공자의 동일한 이름 모델을 제공할 때 유용합니다. 꺼져 있으면 자동 감지된 제공자도 이전처럼 모델 뒤에 표시됩니다
display.providerNamestring""display.showProvider와 함께 사용하는 명시적 제공자 레이블입니다. 예를 들어 자동 감지할 수 없는 사용자 지정 프록시에 사용합니다. 비어 있으면 자동 감지된 제공자(Bedrock/Vertex/MiniMax/Enterprise)로 대체됩니다. 최대 40자까지 허용됩니다
display.showAddedDirsbooleantrue/add-dir로 추가된 추가 작업공간 디렉터리를 표시합니다(예: +sparkle +lib-foo); 빈 배열이면 아무것도 렌더링하지 않습니다. 두 레이아웃 모두 최대 5개 디렉터리만 표시되며(초과분은 +N more로 표시), 기본 이름은 …을 포함해 24자로 잘립니다
display.addedDirsLayoutinline | lineinlineinline은 각 디렉터리 앞에 +name 접두사를 붙여 프로젝트 이름 옆에 표시합니다. line은 별도의 Added dirs: name1, name2 줄로 렌더링합니다(+ 접두사 없음, 쉼표로 구분)
display.showContextBarbooleantrue시각적 컨텍스트 막대 ████░░░░░░를 표시합니다
display.contextValuepercent | tokens | remaining | bothpercent컨텍스트 표시 형식입니다(45%, 45k/200k, 55% remaining, 또는 45% (45k/200k))
display.autoCompactWindownumber | nullnull200000처럼 양수로 설정하면 전체 모델 컨텍스트 창 대신 이 auto-compact 창을 기준으로 컨텍스트 비율을 계산하며, /context 수치와 일치합니다. 기본 전체 창 동작을 유지하려면 설정하지 않거나 null로 두세요.
display.showConfigCountsbooleanfalseCLAUDE.md, rules, MCPs, hooks 개수를 표시합니다
display.environmentThresholdnumber0총합이 이 숫자에 도달할 때까지 구성 개수를 숨깁니다(0 = 항상 표시)
display.showCostbooleanfalseClaude Code가 보고하는 세션 비용(cost.total_cost_usd)을 표시합니다
display.showRoutedCostbooleanfalseBedrock 및 Vertex 세션의 비용도 표시합니다. 이 비용은 클라우드 제공자를 통해 청구되므로 showCost에서는 숨겨집니다. showCost가 필요합니다
display.showDailyCostbooleanfalse네이티브 cost.total_cost_usd에서 누적된 오늘의 총 지출을 Today $12.34 형식으로 표시합니다. 플러그인 데이터 디렉터리의 작은 일별 원장에 저장됩니다. 로컬 자정에 초기화됩니다. showCost와는 مستقل입니다
display.showWeeklyCostbooleanfalseshowDailyCost와 같은 원장을 사용해 주간 쿼터 창이 열린 이후의 지출을 Week $123.45 형식으로 표시합니다. 구독자만 해당: 7일 사용량 창이 필요합니다
display.showOutputStylebooleanfalse현재 출력 스타일을 style: <name> 형식으로 표시합니다
display.showDurationbooleanfalse세션이 얼마나 실행되었는지 표시합니다. 예: ⏱️ 5m
display.showSpeedbooleanfalse최신 응답의 출력 속도를 out: 42.1 tok/s 형식으로 표시합니다
display.showUsagebooleantrue사용할 수 있을 때 Claude 구독자 사용량 제한을 표시합니다
display.usageValuepercent | remainingpercent사용량 표시 형식입니다(25% used, 또는 75% remaining)
display.usageBarEnabledbooleantrue사용량을 텍스트 대신 시각적 막대로 표시합니다
display.usageCompactbooleanfalse5h: 25% (1h 30m) 같은 더 짧은 텍스트 형식으로 사용량을 표시합니다. display.usageBarEnabled보다 우선합니다
display.showResetLabelbooleantrue사용량 카운트다운 앞에 resets in 접두사를 표시합니다
display.showModelScopedUsagebooleantruestdin으로 들어오든 외부 사용량 스냅샷에서 오든, 모델별 주간 창(model_scoped, 예: Fable)을 표시합니다. 페이로드에 이 값들이 없는 것처럼 사용량 줄을 렌더링하려면 false로 설정하세요
display.usagePacebooleanfalse재설정되기 전에 소진될 가능성이 있으면 사용량 창을 ▲ 표시와 함께 호박색 또는 빨간색으로 표시합니다
display.timeFormatrelative | absolute | both | elapsed | elapsedAndAbsoluterelative사용량 창 시간을 표시하는 방식입니다: 카운트다운만(resets in 2h 30m), 시계 시간 재설정(resets at 14:30), 둘 다, 경과 창 비율(53% elapsed), 또는 경과와 시계 시간 재설정 모두
display.hourCycleauto | h11 | h12 | h23 | h24auto시계 시간 재설정 시간(absolute/both/elapsedAndAbsolute 모드)의 시간 주기입니다. auto는 시스템 로케일을 따르며, h23은 로케일과 관계없이 24시간제(14:30)를 강제합니다
display.showClockSecondsbooleanfalse벽시계 재설정 시간에 초를 표시합니다. 예: at 14:30:07
display.usageThreshold0-1000어느 창이든 이 비율에 도달할 때까지 사용량 표시를 숨깁니다(0 = 항상 표시)
display.sevenDayThreshold0-10080사용량이 임계값 이상일 때 7일 사용량을 표시합니다(0 = 항상 표시)
display.externalUsagePathstring""로컬 사용량 스냅샷 파일의 선택적 절대 경로입니다. 앞의 ~와 ${VAR}는 확장됩니다. 상대 경로는 무시됩니다. stdin rate_limits가 있으면 balance_label이 추가되고, stdin에 없으면 model_scoped 창이 채워집니다. stdin 창이 없을 때는 유효한 사용량 창을 대체 수단으로 사용할 수 있습니다
display.externalUsageWritePathstring""기존 디렉터리 안의 선택적 절대 .json 경로입니다. 앞의 ~와 ${VAR}는 확장됩니다. stdin rate_limits가 있으면 ClaudeHUD가 다른 로컬 도구를 위해 비공개 스냅샷을 씁니다. 상대 경로, json이 아닌 파일, 상위 디렉터리가 없는 경우는 무시됩니다
display.externalUsageFreshnessMsnumber300000외부 사용량 스냅샷을 무시하기 전까지 허용되는 최대 경과 시간입니다
display.showTokenBreakdownbooleantrue높은 컨텍스트(85%+)에서 토큰 세부 정보를 표시합니다
display.contextWarningThreshold0-10070컨텍스트 바가 경고 색으로 바뀌는 컨텍스트 비율입니다
display.contextCriticalThreshold0-10085컨텍스트 바가 치명 색으로 바뀌고 토큰 세부 정보를 표시하는 컨텍스트 비율입니다
display.showToolsbooleanfalse도구 활동 줄을 표시합니다
display.showSkillsbooleanfalseSkill 도구 호출에서 감지된 활성 Skills를 표시합니다
display.showMcpbooleanfalsemcp__server__tool 호출에서 감지된 활성 MCP 서버를 표시합니다
display.toolNameMaxLengthnumber0표시할 도구 이름의 최대 길이입니다. 0이면 전체 이름을 유지합니다. 잘릴 경우 MCP 이름은 마지막 세그먼트로 줄어들 수 있습니다
display.toolsMaxVisiblenumber4도구 줄에 표시할 완료된 도구의 최대 개수입니다. 0이면 무제한입니다
display.skillsMaxVisiblenumber4+N more가 표시되기 전까지 Skills 줄에 표시할 Skill 이름의 최대 개수입니다. 0이면 무제한입니다
display.showAgentsbooleanfalse에이전트 활동 줄을 표시합니다
display.showTodosbooleanfalse할 일 진행 줄을 표시합니다
display.showSessionNamebooleanfalse세션 이름을 표시합니다: /rename으로 지정한 이름 또는 Claude Code가 생성한 제목
display.showSessionTokensbooleanfalse세션의 누적 토큰 합계를 표시합니다. 예: Tokens 262k (in: 6k, out: 2k, cache: 254k)
display.showAuthbooleanfalse현재 로그인의 인증 방식(구독 요금제)을 첫 줄 끝에 별도 구역으로 표시합니다. 예: Claude Max 20x. ~/.claude.json의 oauthAccount 블록(또는 설정 디렉터리를 재정의한 경우 $CLAUDE_CONFIG_DIR/.claude.json)에서 가져옵니다. OAuth 로그인이 없고 ANTHROPIC_API_KEY가 설정되어 있으면 API Key를 표시합니다
display.showAuthUserbooleanfalse인증 방식 옆에 로그인한 계정(이메일의 로컬 파트, 없으면 프로필 표시 이름)을 표시합니다
display.authUserLengthnumber8말줄임표 …로 잘라내기 전까지 표시할 계정 이름의 최대 글자 수입니다. 0이면 전체 이름을 표시합니다
display.showAdvisorbooleanfalse프로젝트 줄에 Claude Code의 /advisor로 설정된 모델을 인라인으로 표시합니다. 예: Advisor: Opus 4.7. Claude Code가 각 assistant transcript record에 기록하는 advisorModel 필드에서 읽으며, 렌더링 전에 정리되고 64자로 제한됩니다
display.advisorOverridestring""표시할 advisor 레이블을 수동으로 덮어쓰는 선택적 값입니다. 비어 있지 않으면 transcript 기반 감지를 대체합니다. 또한 정리되고 64자로 제한됩니다
display.showSessionStartDatebooleanfalsetranscript 세션 시작 타임스탬프를 표시합니다
display.showLastResponseAtbooleanfalse마지막 assistant 응답이 작성된 지 얼마나 지났는지 표시합니다
display.showCompactionsbooleanfalse이 세션에서 몇 번의 컨텍스트 압축(수동 /compact 또는 자동)이 발생했는지 표시합니다. transcript compact_boundary 항목을 기준으로 계산하며, 예: Compactions: 2. 첫 번째 압축 전까지는 숨겨집니다
display.showEffortLevelbooleanfalse모델 배지에 현재 추론 노력 수준을 표시합니다. Ultracode는 ultracode(xhigh)로 렌더링되며, 세션 대화 기록에서 감지되므로 런타임에 적용된 /effort 변경 사항을 추적합니다
display.effortFormatfull | symbol | textfulldisplay.showEffortLevel이 켜져 있을 때 노력 수준을 표시하는 방식입니다. 기호와 수준 텍스트(◑ high), 기호만(◑), 또는 수준 텍스트만(high) 중 하나를 사용합니다. Ultracode는 symbol 아래에서 전체 ◕ ultracode(xhigh) 형식을 유지하여 마커가 사라지지 않도록 하며, 알려진 기호가 없는 수준은 수준 텍스트로 대체합니다
display.showAgentEffortbooleanfalsedisplay.showAgents와 함께 각 하위 에이전트의 추론 노력 수준을 모델 옆에 표시합니다. 예: ◐ code-reviewer [haiku-4.5 ◔ medium]. display.effortFormat을 따릅니다. 하위 에이전트의 자체 대화 기록에서 읽어오므로, Claude Code가 에이전트의 id를 기록한 뒤에 나타납니다(백그라운드 에이전트는 시작 시, 그 외에는 끝날 때) 그리고 첫 번째 응답 이후에 표시됩니다
display.showClaudeCodeVersionbooleanfalse실행 중인 Claude Code 버전을 표시합니다. 예: CC v2.1.81
display.showMemoryUsagebooleanfalse확장 레이아웃에서 대략적인 시스템 RAM 사용량 줄을 표시합니다
display.showPromptCachebooleanfalse메인 대화의 프롬프트 캐시가 언제 만료되는지 표시합니다
display.showCacheHitRatebooleanfalse세션의 프롬프트 캐시 적중률을 Cache hit X%로 표시합니다
display.customLinestring""첫 번째 줄에 표시할 사용자 지정 텍스트입니다(최대 80자)
display.customLinePositionfirst | lastlast첫 번째 줄의 시작이나 끝에 사용자 지정 텍스트를 배치합니다
colors.contextcolor valuegreen컨텍스트 바와 컨텍스트 퍼센트의 기본 색상입니다
colors.usagecolor valuebrightBlue사용량 막대와 경고 임계값 아래의 퍼센트 기본 색상입니다
colors.warningcolor valueyellow컨텍스트 임계값과 사용량 경고 텍스트의 경고 색상입니다
colors.usageWarningcolor valuebrightMagenta임계값에 가까운 사용량 막대와 퍼센트의 경고 색상입니다
colors.criticalcolor valuered한도 도달 상태와 치명적 임계값의 색상입니다
colors.modelcolor valuecyan[Opus] 같은 모델 배지의 색상입니다
colors.projectcolor valueyellow프로젝트 경로의 색상입니다
colors.gitcolor valuemagentagit:( 및 ) 같은 git 래퍼 텍스트의 색상입니다
colors.gitBranchcolor valuecyangit 브랜치와 브랜치 상태 텍스트의 색상입니다
colors.labelcolor valuedimContext, Usage, 개수, 진행 텍스트 같은 레이블과 보조 메타데이터의 색상입니다
colors.customcolor value208선택적 사용자 지정 줄의 색상입니다
colors.barFilledstring█진행 막대의 채워진 부분에 사용하는 문자입니다
colors.barEmptystring░진행 막대의 비어 있는 부분에 사용하는 문자입니다

색상은 이름(dim, red, green, yellow, magenta, cyan, brightBlue, brightMagenta), 256색 번호(0-255), 또는 hex(#rrggbb)를 사용할 수 있습니다. colors.barFilled와 colors.barEmpty는 하나의 보이는 문자만 받습니다. 이모지 같은 넓은 문자는 일부 터미널에서 막대 정렬에 영향을 줄 수 있습니다.

사용량 제한

사용량은 Claude Code가 구독자 rate_limits를 보낼 때마다 표시되며, 이는 세션의 첫 응답 이후입니다. API 키, Bedrock, Vertex 세션에는 구독자 제한이 없으므로 표시되지 않습니다. 7일 창은 display.sevenDayThreshold를 지나면 표시됩니다:

코드
Context █████░░░░░ 45% │ Usage ██░░░░░░░░ 25% (resets in 1h 30m) | Weekly █████████░ 85% (resets in 1d)

display.usagePace를 사용하면, 보충되는 속도보다 더 빠르게 사용 중인 창은 호박색(90% 이상으로 끝날 것으로 예상됨) 또는 빨간색(먼저 소진될 것으로 예상됨)으로 바뀌고 ▲가 붙습니다. 사용량이 10% 미만인 창은 중립 상태를 유지합니다.

외부 스냅샷. display.externalUsagePath는 로컬 JSON 파일을 읽습니다. stdin에 항목이 없을 때 그 창들을 채우며, balance_label 또는 model_scoped 창(예: 모델별 주간 할당량)은 stdin의 값에 더해집니다. 파일은 절대 경로여야 하며 display.externalUsageFreshnessMs보다 더 최신이어야 합니다:

json
{
  "updated_at": "2026-04-20T12:00:00.000Z",
  "five_hour": { "used_percentage": 42, "resets_at": "2026-04-20T15:00:00.000Z" },
  "seven_day": { "used_percentage": 84, "resets_at": "2026-04-27T12:00:00.000Z" },
  "balance_label": "$12.50",
  "model_scoped": [{ "display_name": "Fable", "utilization": 89, "resets_at": "2026-04-27T11:00:00Z" }]
}

display.externalUsageWritePath는 반대로 동작합니다. stdin의 속도 제한을 기존 디렉터리 안의 비공개 .json 파일에 기록해 다른 도구가 읽을 수 있게 합니다.

비용

display.showCost는 Claude Code 자체의 세션 비용을 표시하며, 목록 가격 또는 modelPricing 표를 기준으로 계산됩니다. Bedrock과 Vertex는 클라우드 제공업체를 통해 청구되므로, display.showRoutedCost도 설정되어 있지 않으면 비용이 숨겨집니다.

display.showDailyCost는 여러 세션에 걸친 오늘의 지출을 표시합니다(Today $12.34). 이 값은 플러그인 데이터 디렉터리의 작은 원장에 저장되며, 현지 자정에 초기화되고, 이를 처음 확인한 렌더링 시점부터 세션으로 계산됩니다. display.showWeeklyCost는 7일 할당량 창의 시작 시점부터 같은 원장을 사용하므로, 구독자 세션이 필요합니다.

프롬프트 캐시

display.showPromptCache는 주 대화의 프롬프트 캐시가 차갑게 식는 시점을 보여줍니다. 예: Cache ⏱ until 14:30 또는 expired. 상태 줄은 턴 사이에 다시 그려지지 않기 때문에 카운트다운 대신 시각을 표시합니다. 캐시가 소진되는 시점이 바로 그때이며, 렌더가 얼마나 오래되었든 시각은 여전히 정확합니다. display.showCacheHitRate는 캐시에서 읽은 입력 토큰의 비율을 보여줍니다.

Jujutsu (jj)

.jj 저장소가 있는 디렉터리에서 git 대신 jj 상태를 표시하려면 jjStatus.enabled를 true로 설정하여 jj:(mybookmark*) 또는 jj:(wrulwzyw !conflict) 같은 형식을 표시합니다. HUD는 작업 복사본을 스냅샷하지 않고 jj를 읽기 전용으로 실행하므로, 더티 표시는 jj의 마지막 스냅샷을 반영합니다. 앞섬/뒤처짐 및 파일 통계는 git 전용입니다.

예시

json
{
  "lineLayout": "expanded",
  "pathLevels": 2,
  "gitStatus": { "showAheadBehind": true, "showFileStats": true },
  "display": {
    "showTools": true,
    "showAgents": true,
    "showTodos": true,
    "showDuration": true,
    "showCost": true
  },
  "colors": { "context": "cyan", "custom": "#FF6600" }
}

자동 새로고침

Claude Code는 각 메시지 후, /compact 후, 권한 또는 vim 모드가 변경될 때, 속도 제한이 초기화될 때, 그리고 프롬프트 캐시가 만료될 때 상태 줄을 다시 실행합니다. 세션이 유휴 상태일 때 카운트다운과 지속 시간을 계속 흐르게 하려면 ~/.claude/settings.json의 statusLine 항목에 refreshInterval(초)을 추가하세요.

세션에서 끄기

shell
CLAUDE_HUD_DISABLE=1 claude

0, false, off, no 이외의 값은 settings.json을 건드리지 않고 해당 세션에서 HUD를 비웁니다.

보안

Claude HUD는 로컬 전용입니다. 네트워크 요청을 하지 않고, 자격 증명을 읽지 않으며, 문서화되지 않은 API도 호출하지 않습니다. Claude Code의 stdin, 세션 대화 기록, Claude 설정 파일, 그리고 현재 디렉터리의 git 또는 jj 메타데이터를 읽습니다. 유일한 쓰기 작업은 ~/.claude/plugins/claude-hud 아래에 있는 작은 상태 파일들(출력 속도와 비용 원장)이며, 권한은 비공개입니다.

--extra-cmd는 새로고침할 때마다 셸 명령을 실행하고 그 출력을 첫 번째 줄에 표시합니다. HUD 환경에 CLAUDE_HUD_ALLOW_EXTRA_CMD=1이 설정된 경우가 아니면 무시됩니다. 이를 임의 코드 실행으로 간주하고, 신뢰할 수 없는 출처의 명령은 절대 사용하지 마세요.

문제 해결

HUD가 나타나지 않음. 상호작용 후에 상태 줄이 렌더링되므로 메시지를 보내세요. 셸에 CLAUDE_HUD_DISABLE가 설정되어 있지 않은지도 확인하세요. Node 또는 Bun 경로가 바뀌었다면, 예를 들어 nvm이나 mise 업그레이드 후에는 /claude-hud:setup을 다시 실행하세요.

설정이 적용되지 않음. JSON에 구문 오류가 있는지 확인하세요. 잘못된 파일은 기본값으로 대체됩니다. 값이 범위 안에 있는지도 확인하세요. 옵션 표에 해당 값이 나와 있습니다.

사용량이 보이지 않음. 사용량은 Claude 구독자 로그인이 필요하며 첫 응답 후에 나타납니다. display.showUsage를 확인하세요.

git 또는 jj 상태가 보이지 않음. 저장소 안에 있는지, 그리고 gitStatus.enabled(또는 PATH에 jj가 있을 때의 jjStatus.enabled)가 켜져 있는지 확인하세요.

활동 줄이 보이지 않음. 도구, 에이전트, 할 일, 스킬, MCP 줄은 기본적으로 꺼져 있으며, 활동이 있을 때만 표시됩니다.

요구 사항

  • Claude Code v2.1.260 이상
  • macOS 또는 Linux: Node.js 18+ 또는 Bun
  • Windows: Node.js 18+

개발

shell
git clone https://github.com/jarrodwatts/claude-hud
cd claude-hud
npm ci && npm test

CONTRIBUTING.md를 참조하세요.

라이선스

MIT. LICENSE를 참조하세요.

Star History

Star History 차트
Star History 차트

출처

  • 원문: https://github.com/jarrodwatts/claude-hud (2026-10-22 · github.com)

자료 변경 기록을 불러오는 중입니다.

다음 자료를 불러오는 중입니다.

후기

아직 후기가 없습니다

직접 적용한 결과와 주의할 점을 공유하는 공간입니다.

로그인하고 후기 쓰기

참고 자료 · 도구와 릴리스 노트

댓글