Mitchell Hashimoto. HashiCorp를 창업하고 Vagrant, Packer, Terraform을 세상에 내놓은 사람이 회사에서 한 발 빼고 몇 년째 매달리는 사이드 프로젝트가 있다. 터미널 에뮬레이터다. 그 결과물 Ghostty가 오늘 GitHub 트렌딩 11위에 올랐고, 단 하루 동안 별이 411개 추가됐다. 터미널이라는, 이미 끝났다고 여겨졌던 영역에서 무엇이 사람들을 다시 움직이게 만드는가.
첫 번째 단서는 언어 선택이다. Ghostty는 Rust도 Go도 아닌 Zig로 작성됐다. Zig는 메모리 안전성을 전면에 내세우는 Rust와 달리 C와의 매끄러운 호환과 컴파일 타임 메타프로그래밍에 강점을 둔 시스템 프로그래밍 언어다. PTY와 직접 대화하고, OS 시스템 콜을 빈번히 호출하며, 폰트와 GPU 사이를 매개해야 하는 터미널에서는 Rust의 borrow checker가 오히려 마찰이 될 수 있다. Hashimoto의 선택은 유행을 따른 게 아니라 도메인에 맞춘 결정에 가깝다.
두 번째 단서는 UI 철학이다. 크로스플랫폼 데스크톱 앱의 통상적인 답은 "Electron 위에 자체 UI를 올려 모든 OS에서 동일하게 보이게 만든다"였다. Ghostty는 반대로 갔다. macOS 빌드는 SwiftUI를 직접 쓰고 Linux 빌드는 GTK4를 쓴다. 그래서 macOS에서는 Cmd 단축키, 탭 바, 시스템 폰트 렌더링, 풀스크린 동작이 OS의 일부처럼 자연스럽고, Linux에서는 GNOME 환경에 깔끔하게 녹는다. 사용자가 체감하는 "이 앱은 내 OS의 시민이다"라는 느낌은 단축키 하나, 탭 애니메이션 한 컷에서 만들어진다. Ghostty는 그 비용을 기꺼이 치른다.
세 번째 단서는 구조다. 핵심 로직은 libghostty라는 라이브러리로 분리되어 있다. 즉 터미널 기능을 다른 앱이 임베드할 수 있다. VS Code 같은 에디터, IDE, 커스텀 개발 도구가 Ghostty의 렌더러와 PTY 핸들링을 그대로 가져다 쓸 수 있다는 뜻이다. 단일 앱으로 끝나지 않고 생태계의 한 컴포넌트로 자리잡으려는 야심이 보인다.
물론 트레이드오프는 분명하다. Windows 빌드가 없고, GUI 설정창 대신 텍스트 파일을 직접 열어야 하며, 플러그인 생태계는 막 시작 단계다. 하지만 "크로스플랫폼은 곧 동일한 UI"라는 오랜 등식에 균열을 내고 있다는 점, 그리고 Zig라는 새 언어가 Bun, TigerBeetle에 이어 또 한 번 진지한 프로덕트로 등장했다는 점만으로도 Ghostty는 오늘 트렌딩의 자리를 충분히 설명한다. 해결된 줄 알았던 도구도 누가, 어떤 원칙으로 다시 짜느냐에 따라 다시 흥미로워질 수 있다.