TL;DR

  • statusline-anywhere는 Claude Code 2.1.286 이상에서 기존 statusLine 명령을 실행해 Claude Desktop 프롬프트 위에 컬러 상태 표시줄을 표시하는 플러그인임.
  • 상태 표시줄은 기존 스크립트에 전달되는 것과 같은 형식의 JSON 데이터를 바탕으로 표시되며, 세션 시작 시와 각 응답 뒤, 또는 설정한 간격에 따라 새로 고침됨.
  • 플러그인은 터미널 밖에서만 작동하며, 터미널에서는 Claude Code의 기존 상태 표시줄이 계속 표시됨.
  • 플러그인이 제공하지 않는 변경된 줄 수, PR, Vim 모드, 프롬프트 캐시, 노력 수준, 출력 스타일 정보는 Claude Desktop 상태 표시줄에서 빈칸으로 남음.
  • 플러그인 자체는 네트워크 요청을 보내거나 파일을 쓰지 않지만, Windows를 지원하지 않고 상태 표시줄의 링크를 클릭할 수 없음.

statusline-anywhere

  • statusline-anywhere는 Claude Code 상태 표시줄을 Claude Desktop에서도 표시하는 플러그인임.
  • statuslin.es의 Catppuccin Frappé 상태 표시줄을 Claude Desktop에서 실행하는 예시가 제시됨.
  • Claude Desktop은 사용자 지정 상태 표시줄을 표시하지 않으며(#41456), 이 플러그인은 기존 statusLine 명령을 실행해 출력 결과를 프롬프트 위에 컬러로 표시함.

설치

  • 터미널에서 claude plugin marketplace add NathanAB/statusline-anywhere && claude plugin install statusline-anywhere@statusline-anywhere를 실행해 마켓플레이스를 추가하고 플러그인을 설치함.
  • Claude Desktop에서 새 Code 세션을 열면 프롬프트 위에 상태 표시줄이 표시됨.
  • Claude Code 2.1.286 이상과 상태 표시줄이 필요하며, 아직 상태 표시줄이 없다면 statuslin.es에서 선택할 수 있음.
  • Claude Code 내부에서는 /plugin marketplace add NathanAB/statusline-anywhere, /plugin install statusline-anywhere@statusline-anywhere, /reload-plugins를 차례로 실행해 설치함.
  • 제거 명령은 claude plugin uninstall statusline-anywhere@statusline-anywhere임.

작동 방식

  • Claude Code가 상태 표시줄 스크립트에 보내는 것과 같은 종류의 JSON을 사용해 statusLine 명령을 실행하므로, 기존 스크립트를 그대로 사용할 수 있음.
  • 터미널 밖에서만 표시하며, 터미널에서는 Claude Code가 이미 상태 표시줄을 표시하므로 플러그인이 개입하지 않음.
  • 세션 시작 시, 각 응답 뒤, 기본적으로 60초마다 새로 고침하며, refreshInterval을 설정하면 해당 초 단위 간격을 사용함.

스크립트에 전달되는 정보

  • Claude Code는 상태 표시줄 스크립트에 표준 입력(stdin)으로 JSON 객체를 전달하며, statusline-anywhere는 플러그인에서 확인할 수 있는 정보로 같은 객체를 구성함.
  • 제공되는 필드는 session_id, transcript_path, cwd, model의 id·display_name, workspace의 current_dir·project_dir, version, cost의 total_cost_usd·total_duration_ms, context_window의 total_input_tokens·context_window_size·used_percentage·remaining_percentage, exceeds_200k_tokens, rate_limits의 five_hour·seven_day·spend_limit임.
  • 플러그인은 Claude Code가 확인할 수 있는 모든 정보를 볼 수 없으며, 변경된 줄 수, PR, Vim 모드, 프롬프트 캐시, 노력 수준, 출력 스타일 필드는 제공되지 않음.
  • 상태 표시줄이 누락된 필드 중 하나를 표시한다면 Claude Desktop에서는 해당 부분이 빈칸으로 남음.
  • Claude Code도 값이 없는 필드는 전달하지 않으므로, 공식 문서를 따르는 스크립트는 이미 누락 필드를 처리함.

로컬 기기에서의 동작

  • 플러그인은 터미널의 Claude Code와 마찬가지로 사용자 권한으로 상태 표시줄 명령을 실행함.
  • 그 외에는 설정과 세션 정보만 읽고 화면에 표시하며, 플러그인 자체는 네트워크 요청을 보내지 않고 파일을 쓰지 않음.
  • claude plugin validate는 전체 접근 범위를 표시하며, 항목은 $.settings.read, $.session.* 읽기, HOME 및 CLAUDE_CONFIG_DIR에 대한 $.env.get, $.process.run, $.clock, 화면 표시임.

제한 사항

  • 명령을 sh로 실행하므로 아직 Windows에서는 사용할 수 없음.
  • 상태 표시줄의 링크는 클릭할 수 없으며 일반 텍스트로 표시됨.
  • 다른 플러그인이 같은 위치를 차지할 수 있으며, 프롬프트 위에 표시하는 플러그인이 둘이라면 하나만 표시됨.

개발

  • statusline-anywhere는 Claude Code 모드이며 Claude Code 2.1.286 이상이 필요함.
  • claude plugin validate .와 claude plugin test로 검증과 테스트를 실행함.
  • 세션에서 변경 사항을 시험하려면 claude --plugin-dir ..을 실행함.
  • 타입 검사를 위해 먼저 --plugin-dir로 플러그인을 한 번 불러오면 Claude Code가 .claude-plugin/types/에 타입을 작성함.
  • 이후 npx tsc -p .claude-plugin/types/tsconfig.json으로 타입 검사를 실행함.

라이선스

  • 라이선스는 MIT이며, Claude Code 상태 표시줄 갤러리인 statuslin.es가 제작함.