[Claude Code 스킬] 커스텀 상태표시줄(Statusline) — 모델·컨텍스트·비용을 화면 맨 아래에 상주시키기 | DAKER 커뮤니티

무엇

상태표시줄(status line)은 Claude Code 화면 맨 아래에서, 내가 지정한 셸 스크립트를 실행해 그 출력 텍스트를 항상 띄워두는 막대입니다. 동작 원리는 단순합니다 — Claude Code가 매번 세션 데이터를 JSON으로 만들어 스크립트의 stdin으로 흘려보내면, 스크립트는 필요한 필드만 골라 stdout으로 찍고, 그 출력이 그대로 막대에 표시됩니다. 자동차 계기판에 비유할 수 있습니다. 주행 중에도 속도·연료·기어가 늘 보이듯, 코딩 중에도 모델 이름·컨텍스트 사용률·세션 비용·git 브랜치가 한눈에 보입니다. 이 막대는 로컬에서 돌아가며 API 토큰을 소비하지 않습니다.

언제 쓰나

사용법

1) 가장 빠른 길 — /statusline에 자연어로 지시:

/statusline show model name and context percentage with a progress bar

Claude Code가 ~/.claude/에 스크립트를 만들고 settings.json까지 자동으로 고쳐줍니다.

2) 수동 설정 — ~/.claude/settings.jsonstatusLine 추가:

{
  "statusLine": {
    "type": "command",
    "command": "~/.claude/statusline.sh",
    "padding": 2
  }
}

3) 스크립트 예시 (모델 + 컨텍스트 진행 막대). JSON을 stdin으로 받아 stdout으로 출력:

#!/bin/bash
input=$(cat)
MODEL=$(echo "$input" | jq -r '.model.display_name')
PCT=$(echo "$input" | jq -r '.context_window.used_percentage // 0' | cut -d. -f1)
FILLED=$((PCT/10)); EMPTY=$((10-FILLED))
printf -v F "%${FILLED}s"; printf -v P "%${EMPTY}s"
echo "[$MODEL] ${F// /#}${P// /-} ${PCT}%"

chmod +x ~/.claude/statusline.sh 하면 끝. 스크립트 없이 한 줄 inline 명령으로도 됩니다:

"command": "jq -r '\"[\\(.model.display_name)] \\(.context_window.used_percentage // 0)% context\"'"

받을 수 있는 주요 필드: model.display_name, context_window.used_percentage, cost.total_cost_usd, workspace.current_dir·workspace.repo, rate_limits.five_hour/seven_day, vim.mode, pr.number 등. 막대는 새 응답마다, /compact 후, 권한 모드 변경 시, vim 모드 토글 시 갱신되며 300ms로 디바운스됩니다.

출처

Redirecting to [Claude Code 스킬] 커스텀 상태표시줄(Statusline) — 모델·컨텍스트·비용을 화면 맨 아래에 상주시키기 | DAKER 커뮤니티...