정말 놀라움. Kyle이 이런 걸 만들고 있는 줄 몰랐음
패치가 매우 유익해서 내가 도와야 할 부분이 명확해졌음
지금 성능이 xterm보다 좋지는 않을 것 같음. viewport를 잡는 방식이 좀 비싸 보이기 때문임
혹시 벤치마크를 해봤는지 궁금함
새로운 RenderState API를 사용하는 게 좋을 것 같음. 현재는 행 단위로 데이터를 가져오는데, 이건 느림. RenderState API는 상태 기반으로 고성능 델타 렌더링을 지원함
실제 GPU 렌더러도 이 API 위에서 동작함. 어떤 렌더러에도 호환 가능함
이런 초기 단계에서도 xterm.js와의 성능 비교가 궁금함. 훌륭한 작업임
아직 성능에는 많은 시간을 쓰지 않았음. 지금은 POC(Proof of Concept) 수준임
장기적으로는 xterm.js의 drop-in 대체품이 되길 바람
곧 RenderState API로 전환하고 벤치마크를 공유할 예정임
생각보다 쉽게 구현돼서 놀랐음
나도 비슷한 걸 만들어봤음. ghostty-vt를 이용해 다른 터미널 안에서 TUI 앱을 실행할 수 있게 함
opentui에서 TMUX 같은 기능을 구현하기 위해 사용함
ANSI 렌더링을 opencode 안에서 처리할 예정임 ghostty-opentui 프로젝트 링크
“브라우저에서의 진짜 VT100 구현”이라는 표현이 흥미로움
Ghostty도 결국 다른 언어로 구현된 에뮬레이션 아닌가? 약간 과한 표현처럼 느껴짐
터미널은 본래 에뮬레이터임. 이 논리라면 모든 현대 터미널이 일종의 근사치임
다만 어떤 건 VT 사양과의 호환성 수준이 더 높을 뿐임
동의함. 그래서 README에서 “not a JavaScript approximation” 문구를 삭제했음
macOS에서 Ghostty와 fzy를 이용해 Apple Notes 제목을 퍼지 검색하는 앱을 만들었음
꽤 잘 작동함 hot-notes 프로젝트 링크
Wasmer를 이용해 온라인 데모를 만들었음. 누구나 쉽게 실행 가능함 (cowsay hello 입력해볼 것) 데모 링크
로컬에서 실행하려면 아래처럼 하면 됨
npx @ghostty-web/demo@next
# 또는
wasmer run wasmer/ghostty-web
-> http://localhost:8080/ 접속
소스코드는 webassembly.sh에서 확인 가능함. xterm에서 ghostty-web으로 무리 없이 전환됨
Chrome에서는 잘 작동하지만 Firefox(v145.0.2)에서는 동작하지 않음
Chrome JS 디버거에서 여러 오류가 보이고, cowsay hello나 ls 명령이 출력되지 않음
멋진 데모임. 고마움
Ghostty는 정말 훌륭함. Mac과 Linux 모두 네이티브로 동작하면서도 크로스플랫폼임
핵심이 독특한 언어로 작성되어 있음에도 Mac 앱처럼 안정적으로 작동함. 디자인도 훌륭함
libghostty가 정말 뛰어남. 나는 이를 터미널 세션 복원 도구에 사용 중임
사용자가 세션에 재접속하면 ghostty로 터미널 상태와 출력을 렌더링함
사실상 1k LoC짜리 tmux-lite임 zmx 프로젝트 링크
macOS에서 텍스트 검색 기능과 멀티탭 지원만 추가되면 완벽할 것 같음
새로운 vt100 구현을 볼 때마다 즐거움
지금은 Unreal Engine 5 안에서 동작하는 내 버전을 만들고 있음 스크린샷 모음
Claude와 함께 UE5 Editor 탭 안에서 코딩하는 게 꽤 재밌음. Remote Control API를 통해 아바타 제어, 스크린샷 촬영 등도 가능함. 3D 게임 디버깅에 유용함
Claude는 Hyperspace GLSL 셰이더도 만들어주지만, 스크린샷 표 헤더는 제대로 못 맞춤
Claude가 UE Editor와 어떻게 상호작용하는지 궁금함. MCP를 통해 Remote Control API를 사용하는지?
멋진 작업임 Kyle! webassembly.sh를 추가하면 브라우저 안에서 패키지 설치까지 가능한 완전한 셸 환경이 될 것 같음
훨씬 개선된 데모를 위해 그렇게 할 예정임
현재는 명령줄에서만 실행 가능해서 UX가 아쉬움
이제 누군가 Visual Studio Code (특히 code-server)에 ghostty-web을 터미널로 통합할 수도 있겠음?
Hacker News 의견
패치가 매우 유익해서 내가 도와야 할 부분이 명확해졌음
지금 성능이 xterm보다 좋지는 않을 것 같음. viewport를 잡는 방식이 좀 비싸 보이기 때문임
혹시 벤치마크를 해봤는지 궁금함
새로운 RenderState API를 사용하는 게 좋을 것 같음. 현재는 행 단위로 데이터를 가져오는데, 이건 느림. RenderState API는 상태 기반으로 고성능 델타 렌더링을 지원함
실제 GPU 렌더러도 이 API 위에서 동작함. 어떤 렌더러에도 호환 가능함
이런 초기 단계에서도 xterm.js와의 성능 비교가 궁금함. 훌륭한 작업임
장기적으로는 xterm.js의 drop-in 대체품이 되길 바람
곧 RenderState API로 전환하고 벤치마크를 공유할 예정임
생각보다 쉽게 구현돼서 놀랐음
opentui에서 TMUX 같은 기능을 구현하기 위해 사용함
ANSI 렌더링을 opencode 안에서 처리할 예정임
ghostty-opentui 프로젝트 링크
Ghostty도 결국 다른 언어로 구현된 에뮬레이션 아닌가? 약간 과한 표현처럼 느껴짐
다만 어떤 건 VT 사양과의 호환성 수준이 더 높을 뿐임
꽤 잘 작동함
hot-notes 프로젝트 링크
cowsay hello입력해볼 것)데모 링크
로컬에서 실행하려면 아래처럼 하면 됨 소스코드는 webassembly.sh에서 확인 가능함. xterm에서 ghostty-web으로 무리 없이 전환됨
cowsay hello나ls명령이 출력되지 않음핵심이 독특한 언어로 작성되어 있음에도 Mac 앱처럼 안정적으로 작동함. 디자인도 훌륭함
사용자가 세션에 재접속하면 ghostty로 터미널 상태와 출력을 렌더링함
사실상 1k LoC짜리 tmux-lite임
zmx 프로젝트 링크
지금은 Unreal Engine 5 안에서 동작하는 내 버전을 만들고 있음
스크린샷 모음
Claude와 함께 UE5 Editor 탭 안에서 코딩하는 게 꽤 재밌음. Remote Control API를 통해 아바타 제어, 스크린샷 촬영 등도 가능함. 3D 게임 디버깅에 유용함
Claude는 Hyperspace GLSL 셰이더도 만들어주지만, 스크린샷 표 헤더는 제대로 못 맞춤
webassembly.sh를 추가하면 브라우저 안에서 패키지 설치까지 가능한 완전한 셸 환경이 될 것 같음
현재는 명령줄에서만 실행 가능해서 UX가 아쉬움