Building a Custom Status Line for Claude Code
저는 하루의 대부분을 Claude Code에서 보냅니다. Claude Code는 저의 프로그래머이자 리뷰어 역할을 합니다.
며칠 지나고 나니 한 가지 문제가 눈에 띄었습니다. 제가 토큰을 얼마나 사용했는지, 세션 비용이 얼마인지, 컨텍스트가 얼마나 남았는지 알 수 없었습니다.
이런 사실들을 확인하기 위해 매번 명령어를 실행하고 싶지는 않았습니다. 실시간으로 확인하고 싶었습니다. 터미널을 슥 훑어보는 것만으로도 상태를 바로 알 수 있기를 원했습니다.
그래서 커스텀 상태 표시줄을 만들었습니다.
저는 세 가지 주요 요소에 집중했습니다:
- 세션 비용: Claude Opus는 무료가 아닙니다. 비용을 실시간으로 확인하면 작업을 언제 마무리할지 결정하는 데 도움이 됩니다.
- 컨텍스트 창: 남은 컨텍스트의 백분율을 보고 싶습니다. 이를 통해 언제 새로운 세션을 시작할지 결정할 수 있습니다.
- 프로젝트 정보: 현재 디렉토리, git 브랜치, 그리고 사용 중인 모델을 확인해야 합니다.
상태 표시줄 API는 간단합니다. Claude Code가 셸 스크립트를 가리키도록 설정하면 됩니다. 도구가 stdin을 통해 스크립트로 JSON 문서를 전달하고, 스크립트는 그 결과를 stdout으로 출력합니다.
SDK나 프레임워크를 사용하지 않습니다. 그저 stdin과 stdout을 사용할 뿐입니다. 로컬에서 실행되므로 비용도 들지 않습니다.
설정 방법:
~/.claude/statusline.sh에 스크립트를 생성합니다.jq를 사용하여 JSON 데이터를 파싱합니다.- 경로, 브랜치, 모델, 토큰 및 비용이 표시되도록 출력을 포맷팅합니다.
~/.claude/settings.json파일에 스크립트를 추가합니다.
새로고침 간격을 1초로 설정할 수 있습니다. 이렇게 하면 실시간 대시보드를 갖게 됩니다.
코드를 직접 작성하고 싶지 않다면 Claude Code의 단축 명령어를 사용할 수 있습니다. 다음을 실행하세요:
/statusline show me model, branch, token counts, context percentage, and cost
이렇게 하면 자동으로 한 줄의 상태 표시줄이 생성됩니다.
간단한 셸 스크립트로 도구를 커스텀하면 작업 방식이 바뀝니다. 기능이 추가되기를 기다리는 대신, 자신만의 자동화를 직접 만들기 시작하게 됩니다.
Source: https://dev.to/ndrone/building-a-custom-status-line-for-claude-code-5822
Optional learning community: https://t.me/GyaanSetuAi
