터미널에서 실행되는 프로그램의 상태를 터미널에 직접 전달하는 새로운 프로토콜 'OSC 7501'이 공개되었습니다. 이 프로토콜은 프로그램이 대기(idle), 실행(working), 사용자 개입 필요(blocked), 완료(done), 실패(error) 등 자신의 상태와 그 이유를 터미널에 명확하게 알리는 이스케이프 시퀀스 명세입니다. 기존에는 터미널이 화면 출력이나 창 제목을 통해 프로그램의 상태를 추측해야 했지만, OSC 7501은 프로그램 스스로 상태를 보고함으로써 이러한 한계를 극복합니다.
OSC 7501은 Superlogical과 Ghostty 개발 과정에서 탄생했지만, 특정 제품에 종속되지 않는 범용 명세로 설계되었습니다. 특히 SSH나 컨테이너 환경에서도 기존 pty(pseudo-terminal)를 통해 상태를 전달할 수 있다는 점이 큰 장점입니다. 'state'를 필수로 하는 'key=value' 형식으로 진행률, 사용자에게 필요한 행동, 메시지 등을 전달하며, 계층형 ID를 통해 여러 하위 작업의 상태를 동시에 표현할 수도 있습니다. 예를 들어, Terraform(테라폼) 같은 배포 도구는 루트 작업이 진행 중인 동안 특정 리전의 이미지 전송 상태나 다른 리전의 배포 승인 대기 상태를 동시에 터미널에 알릴 수 있습니다. 이는 POSIX sh(셸)만으로 연동 가능하며, 별도의 SDK, 소켓, 환경 변수, JSON 등이 필요 없어 구현이 매우 간단합니다.
이 프로토콜의 등장은 장시간 실행되는 빌드, 배포, 패키지 업그레이드, 데이터 처리, AI 코딩 에이전트 같은 작업의 사용자 경험을 혁신할 잠재력을 가집니다. 사용자는 더 이상 터미널 화면만 응시하며 작업 완료나 개입 시점을 기다릴 필요 없이, 터미널이 제공하는 알림이나 통합 상태 표시 기능을 통해 정확한 정보를 받을 수 있습니다. 기존의 휴리스틱 방식(화면 내용 분석)이나 터미널 외부 API 방식(별도 소켓 통신)이 가졌던 한계, 즉 부정확성, 연동 복잡성, SSH/컨테이너 환경에서의 제약을 OSC 7501은 효과적으로 해결합니다. 프로그램이 자신의 상태를 직접 전달함으로써, 터미널은 이를 활용하여 사용자에게 더욱 풍부하고 정확한 정보를 제공할 수 있게 됩니다. 이는 터미널을 단순한 텍스트 입출력 도구를 넘어, 더욱 지능적인 작업 관리 및 알림 플랫폼으로 발전시키는 중요한 단계가 될 것입니다.