[Claude Code 스킬] 커스텀 상태표시줄(Statusline) — 모델·컨텍스트·비용을 화면 맨 아래에 상주시키기 | DAKER 커뮤니티
무엇
상태표시줄(status line)은 Claude Code 화면 맨 아래에서, 내가 지정한 셸 스크립트를 실행해 그 출력 텍스트를 항상 띄워두는 막대입니다. 동작 원리는 단순합니다 — Claude Code가 매번 세션 데이터를 JSON으로 만들어 스크립트의 stdin으로 흘려보내면, 스크립트는 필요한 필드만 골라 stdout으로 찍고, 그 출력이 그대로 막대에 표시됩니다. 자동차 계기판에 비유할 수 있습니다. 주행 중에도 속도·연료·기어가 늘 보이듯, 코딩 중에도 모델 이름·컨텍스트 사용률·세션 비용·git 브랜치가 한눈에 보입니다. 이 막대는 로컬에서 돌아가며 API 토큰을 소비하지 않습니다.
언제 쓰나
컨텍스트 윈도우가 얼마나 찼는지 작업하면서 실시간으로 보고 싶을 때
세션 비용(누적 추정치)을 추적하고 싶을 때
여러 세션·워크트리를 동시에 열고 서로 구분해야 할 때
git 브랜치와 변경(스테이지/수정) 상태를 늘 띄워두고 싶을 때
사용법
1) 가장 빠른 길 — /statusline에 자연어로 지시:
/statusline show model name and context percentage with a progress barClaude Code가 ~/.claude/에 스크립트를 만들고 settings.json까지 자동으로 고쳐줍니다.
2) 수동 설정 — ~/.claude/settings.json에 statusLine 추가:
{
"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로 디바운스됩니다.
팁
빠르게 유지하세요. 스크립트는 자주 실행되므로
git status같은 느린 명령은 막대를 멈추게 합니다. 무거운 호출은session_id를 키로/tmp에 5초 캐시하세요(같은 세션 내내 안정적이고 세션마다 고유). 출력은 짧게 — 폭이 제한적이라 길면 잘립니다.null을 방어하세요. 첫 API 응답 전에는 값이
null일 수 있으니 jq의// 0,// empty로 폴백을 주세요. 색은 ANSI(\033[32m=초록), 클릭 링크는 OSC 8 이스케이프로 넣습니다.시간 기반 표시(시계 등)나 유��� 구간에는
refreshInterval(최소 1초)을 줘서 이벤트가 잠잠해도 N초마다 다시 실행되게 하세요. 상태표시줄은 셸을 실행하므로 워크스페이스 신뢰(trust) 수락이 필요합니다 — 안 뜨면 trust부터 확인.