본문으로 건너뛰기
claudemods

Context Bar: 무엇이 채우는지 보여 주는 Claude Code 컨텍스트 창 막대

Claude Code 컨텍스트 창을 프롬프트 위 누적 막대 하나로 보여 줍니다. 카테고리마다 색이 다르고 토큰 수도 표시됩니다.

권한

  • UI 변경Claude Code 화면에 밴드, 패널, 상태 텍스트, 토스트를 그립니다(ui.render / $.ui.*).
  • 명령어/도구 추가사용자나 Claude가 호출할 수 있는 새 슬래시 명령어나 도구를 등록합니다($.command.register / $.tool.register).
  • 데이터 저장플러그인 전용 저장소에 세션 간 데이터를 보관합니다($.store.*).
테스트 버전
v2.1.291
마지막 테스트
필요 버전
Claude Code ≥ 2.1.287
표시 위치
프롬프트 위

Claude Code 안에서 설치:

/plugin install context-bar --marketplace hamzafer/claude-code-mods
모든 설치 방법 ↓

이 모드는 무엇을 하나요?

Context Bar는 Hamza Zafar(hamzafer)가 만든 커뮤니티 모드로, 그의 claude-code-mods 컬렉션에 속해 있습니다. 이 Claude Code 컨텍스트 창 막대는 한 가지 질문에 답합니다. 내 컨텍스트 창을 무엇이 채우고 있을까? Claude Code 프롬프트 위에 테두리가 있는 작은 띠를 그리고, 그 안에 터미널 너비만큼의 누적 막대 하나를 표시합니다. 막대는 /context가 쓰는 것과 같은 카테고리, 즉 시스템 프롬프트, 도구, MCP 도구, 메모리 파일, 스킬, 메시지로 나뉘고, 그 뒤에 빈 공간과 자동 압축 버퍼가 이어집니다.

머리글 줄은 48k of 200k · compacts at 167k처럼 표시되며 색이 있는 퍼센트 배지가 붙습니다. 배지는 초록색이고, 압축 지점의 70%에서 노란색, 90%에서 빨간색으로 바뀝니다(자동 압축이 꺼져 있으면 전체 창을 기준으로 잽니다). 막대 아래의 범례는 각 카테고리의 토큰 수와 창에서 차지하는 비율을 나열하며, 터미널 너비에 맞춰 필요한 만큼의 줄에 채워 넣습니다. 필요할 때만 불러오는 도구 스키마는 /context가 격자에서 빼는 것처럼 여기서도 제외됩니다.

Context Bar는 저희의 컨텍스트 미터와 비슷하지만 보여 주는 것이 다릅니다. 컨텍스트 미터는 상태 표시줄의 한 줄 문자열로 전체 컨텍스트 비율, 5시간 및 7일 플랜 창, 세션 비용, 그리고 80%에서 한 번 뜨는 경고를 보여 줍니다. Context Bar는 플랜 사용량이나 비용을 보여 주지 않는 대신 컨텍스트를 카테고리별로 나누어, MCP 도구나 메모리 파일, 혹은 대화 자체가 공간을 차지하고 있는지 알 수 있게 해 줍니다. 작성자의 README에 따르면 Claude Code 2.1.287 이상이 필요합니다.

데모

녹화 영상에서는 작은 데모 프로젝트에서 모드를 불러온 채 Claude Code를 시작하고, Claude에게 README.md를 읽고 프로젝트를 한 문장으로 설명해 달라고 요청합니다. 턴이 끝나면 프롬프트 위 띠에 카테고리별로 나뉜 컨텍스트 창(시스템 프롬프트, 시스템 도구, 스킬, 메시지, 빈 공간), 54k of 200k 같은 합계, 자동 압축이 시작되는 지점, 사용 비율이 표시됩니다.

설치

설치 블록의 방법 중 아무것이나 사용하십시오. 모두 작성자 자신의 마켓플레이스에서 바로 설치합니다. 막대는 다음 세션 시작 때 나타나며, /context-bar로 숨기거나 보일 수 있습니다.

$ install context-bar

Claude Code 2.1.287 이상 필요

작성자의 마켓플레이스에서 설치: hamzafer/claude-code-mods

  1. 1.Claude Code 안에서 한 줄로

    /plugin install context-bar --marketplace hamzafer/claude-code-mods

    실행 중인 세션(v2.1.275 이상)에 붙여 넣으세요. Claude Code가 먼저 마켓플레이스 추가 여부를 묻습니다.

  2. 2.셸에서 설치

    claude plugin marketplace add hamzafer/claude-code-mods
    claude plugin install context-bar@claude-code-mods

    그런 다음 이미 열려 있는 세션에서 /reload-plugins를 실행하세요.

  3. 3.설치하지 않고 사용해 보기

    git clone https://github.com/hamzafer/claude-code-mods
    claude --plugin-dir ./claude-code-mods/mods/context-bar

    한 세션에서만 모드를 불러옵니다. 설정에는 아무것도 추가되지 않습니다.

작동 방식

모드는 최신 측정값을 호스트가 보관하는 $.state 아톰에 저장하므로 핫 리로드 후에도 유지되며, AbovePrompt 렌더 사이트에 다시 그립니다. hooks/register.tsx의 갱신 함수는 다음과 같습니다.

// Asks the engine for /context's breakdown, estimated locally (no token-count calls).
async function refresh($: EngineInterface) {
  if (await read($, isHidden)) return
  const usage = await $.session.usage({ breakdown: 'summary' })
  const b = usage.context.breakdown
  if (!b || !(b.rawMaxTokens > 0)) return // no window to measure against
  await update($, reading, () => toReading(b))
}

refresh는 session.start에서, agentId가 없을 때의 turn.complete에서(서브에이전트 턴은 건너뜀), 그리고 session.compact에서 실행됩니다. /compact는 턴이 끝나지 않아도 창을 비우기 때문입니다. toReading은 지연 로딩 카테고리와 빈 카테고리를 버리고, 사용 중인 행을 빈 공간과 버퍼보다 앞에 정렬한 뒤 색을 배정합니다. 순수 헬퍼 함수 cells와 legend는 측정값을 막대 구간과 범례 줄로 바꿉니다. 사용 중인 모든 카테고리는 최소 한 칸을 받고, 반올림으로 남는 칸은 먼저 빈 공간으로 갑니다. 안쪽 너비가 20열 미만이면 막대를 그리지 않습니다. 설문이 프롬프트 위 공간을 쓰고 있으면 띠는 자리를 비켜 줍니다.

사용자 지정

/config에는 옵션이 없습니다. 유일한 스위치는 /context-bar 명령이며, 숨김/표시 상태는 $.store에 저장됩니다. 모양을 바꾸려면 register.tsx 맨 위의 상수를 수정하십시오. PALETTE는 카테고리 색, MESSAGES는 메시지 색, GLYPH는 막대 문자, MIN_WIDTH는 막대를 그리는 최소 너비입니다.

권한 및 안전

저희는 실행하기 전에 플러그인이 실행할 수 있는 모든 파일을 읽었습니다. hooks/hooks.json, hooks/register.tsx, 타입 선언, 테스트입니다. package.json, 설치 스크립트, 번들된 코드는 없습니다.

UI 변경은 프롬프트 위의 띠에 해당합니다. 명령 추가는 /context-bar에 해당합니다. 모드는 $.session.usage로 컨텍스트 수치를 읽고, $.store에 참/거짓 값 하나를 저장하며, 측정값은 $.state에 보관합니다. 셸 명령을 실행하거나, 파일을 읽고 쓰거나, 네트워크를 사용하거나, 환경 변수를 읽거나, 모델을 호출하지 않습니다. claude plugin validate는 오류나 경고를 보고하지 않았고, 작성자의 테스트 6개가 Claude Code 2.1.291에서 모두 통과했습니다.

UI 변경
Claude Code 화면에 밴드, 패널, 상태 텍스트, 토스트를 그립니다(ui.render / $.ui.*).
명령어/도구 추가
사용자나 Claude가 호출할 수 있는 새 슬래시 명령어나 도구를 등록합니다($.command.register / $.tool.register).
데이터 저장
플러그인 전용 저장소에 세션 간 데이터를 보관합니다($.store.*).

호환성 및 문제 해결

macOS에서 Claude Code 2.1.291로 확인했습니다(validate와 테스트). 막대가 나타나지 않으면 다음을 확인하십시오.

  • claude --version이 2.1.287 이상인지 확인하십시오.
  • 이전에 숨기지 않았는지 확인하십시오. /context-bar를 한 번 실행하고 "Context bar on"이 나오는지 보십시오.
  • 터미널이 충분히 넓은지 확인하십시오. 띠에는 최소 24열이 필요합니다.
  • 입력창 위에 설문이 열려 있을 수 있습니다. 설문이 닫히면 띠가 돌아옵니다.
  • 분석 정보는 Claude Code가 창 크기를 알게 된 뒤에만 제공됩니다. 맨 처음에 띠가 없다면 프롬프트를 하나 보내십시오.

자주 묻는 질문

Context Bar가 토큰을 쓰거나 API를 호출하나요?
아닙니다. /context가 그리는 것과 같은 요약 분석을 Claude Code에 요청하며, 코드 주석에 따르면 이 값은 토큰 카운트 호출 없이 로컬에서 추정됩니다. 모드 자체는 네트워크 요청을 하지 않습니다.
막대를 숨기려면 어떻게 하나요?
/context-bar를 실행하십시오. 막대를 끄고 켜는 토글이며, 선택은 플러그인 자체 저장소에 저장되므로 새 세션도 마지막 상태 그대로 시작합니다.
막대는 언제 갱신되나요?
세션 시작 시, 메인 에이전트의 각 턴이 끝난 뒤, 그리고 압축(compaction) 이후입니다. 서브에이전트 턴은 사용자의 창이 아니라 자기 창을 채우므로 건너뜁니다.
컨텍스트 미터(cm-context-meter)와 무엇이 다른가요?
컨텍스트 미터는 상태 표시줄에 컨텍스트 비율, 5시간 및 7일 플랜 사용량, 세션 비용을 짧은 한 줄로 쓰고 80%에서 경고 토스트를 띄웁니다. Context Bar는 프롬프트 위에 테두리가 있는 띠를 그려 컨텍스트를 카테고리별로 나누며, 플랜 사용량·비용·토스트는 없습니다.
색과 글리프는 무엇을 뜻하나요?
사용 중인 각 카테고리(시스템 프롬프트, 도구, MCP 도구, 메모리 파일, 스킬 등)는 고정 팔레트에서 고유한 색을 받고, 메시지는 주황색으로 그려집니다. 빈 공간은 얇은 회색 선, 자동 압축 버퍼는 빗금으로 표시됩니다.
Claude Code에서 실행 중인 컨텍스트 미터추천

컨텍스트 미터

컨텍스트 창 사용률, 5시간·7일 요금제 사용량, 세션 비용을 상태 표시줄에 보여 주고 한도에 가까워지면 경고합니다.

  • 상태 표시줄
  • 토스트
  • UI 변경

v2.1.310에서 테스트됨

Claude Code에서 실행 중인 도구 호출 카운터추천

도구 호출 카운터

Claude의 도구 호출을 턴별·세션별로 세어 스피너 옆에 표시하고, 상세 내역을 보는 /tally 명령을 추가합니다.

  • 스피너
  • 대화 기록
  • 상태 표시줄
  • 도구 호출 가로채기
  • UI 변경
  • 명령어/도구 추가

v2.1.310에서 테스트됨

더 보기: 컨텍스트, 사용량, 비용, 상태 표시줄 및 프롬프트 바.