Hacker News기타

프로그램 상태를 터미널에 직접 보내는 OSC 7501 스펙 공개

원제 A Terminal Protocol for Program Status (OSC 7501)

116 포인트댓글 35
Key Point

터미널에서 돌아가는 장시간 작업(빌드, 배포, AI 에이전트)의 상태를 프로토콜로 표준화함으로써, 창 제목이나 화면 내용을 추측하는 비효율을 없앨 수 있게 된다.

핵심 요약

  • Mitchell Hashimoto가 새로운 터미널 이스케이프 시퀀스 OSC 7501(Program Status Protocol) 스펙을 발표했다.
  • 프로그램이 현재 상태(idle, working, blocked, done, error)와 이유를 터미널에 직접 전송할 수 있게 하는 프로토콜이다.
  • 기존 방식은 창 제목 읽기·정규식 패턴 매칭(Herdr 예시: Claude Code 상태 감지에만 3개월간 10번 수정) 또는 socket API 같은 비표준 연동에 의존했다.
  • OSC 7501은 key=value 쌍을 콜론으로 구분한 형식으로, pty를 통해 SSH와 컨테이너 환경까지 동작하며 표준 터미널에선 무시된다.
  • state(필수)는 idle/working/done/blocked/error 중 하나, kind(blocked 때 permission/question/auth), msg(base64 인코딩된 메시지), app(프로그램명)을 포함하고, 계층적 id로 여러 작업을 동시에 보고할 수 있다.
  • POSIX sh로 작성한 rsync 래퍼는 printf '\e]7501;state=%s:msg=%s\e\\' 한 줄로 프로토콜을 지원하며, SDK나 소켓이 불필요하다.
  • Terraform, Claude Code, Codex, Homebrew 등에서 이미 증명 개념이 구현되었고, libghostty와 Rex에서 정식 구현되었다.
  • 스펙은 저자가 직접 작성했으며 기능 감지, terminfo 지원, 크기 제한, 보안을 다룬다.
  • 많은 터미널 개발자와 유지보수자가 검토해 스펙을 개선했으며, 구현 사례가 있으면 메일로 알려달라고 했다.
AI 요약 안내

AI가 한국어로 정리한 내용입니다. 정확한 정보는 원문을 확인해 주세요.

요약 원칙 ↗