zenbu-labs/terminal-browser

A browser inside your terminal

해결하는 문제

사용자가 터미널 에뮬레이터 내부에 완전히 기능하는 웹 브라우저를 직접 실행할 수 있게 해줍니다. 이로 인해 터미널과 별도의 브라우저 창 사이를 전환할 필요가 없어집니다. 특히 코드 환경과 웹 미리보기를 하나의 탭에 통합하고 싶은 개발자나, SSH를 통해 원격 머신에서 실행 중인 웹사이트를 미리 보고 싶은 사용자에게 매우 유용합니다.

작동 방식

이 도구는 kitty 그래픽스 프로토콜을 사용하여 터미널에 픽셀을 표시합니다. Electron의 오프스크린 렌더링 API를 활용해 Chromium의 GPU에서 픽셀을 캡처하고, Rust로 구축된 그래픽 엔진을 통해 렌더링합니다. 사용자 상호작용을 처리하기 위해 터미널에서 마우스 및 키보드 이벤트를 캡처하고, 합성 이벤트를 Chromium에 전송합니다. 스무스 스크롤이나 터치패드 이벤트와 같은 고급 입력을 처리하기 위해 백그라운드 Swift 앱이 OS 수준의 입력 이벤트를 읽습니다. 외부 UI는 React로 구축되었으며, 커스텀 렌더러를 사용합니다.

대상 사용자

  • 개발자: 코드와 브라우저가 같은 터미널 탭에 통합된 통합 워크스페이스를 원하는 사람.
  • AI 에이전트 사용자: 에이전트가 웹과 상호작용할 수 있는 방법이 필요하는 사람.
  • 시스템 관리자: 네트워크를 통해 프레임을 전송하는 지연을 피하고, SSH를 통해 원격 웹사이트를 미리 보고 싶은 사람.

주요 특징

  • 에이전트 호환성: AI 에이전트가 열린 브라우저 세션과 상호작용할 수 있는 CLI (terminal-browser action)를 포함합니다.
  • SSH 최적화: 픽셀 스트리밍이 아니라 리모트 서버를 통해 네트워크 요청을 프록시하여 효율적인 원격 사이트 미리보기를 가능하게 합니다.
  • 스플릿 패인 지원: 다른 터미널 프로세스 옆에 브라우저를 스플릿 패인으로 열 수 있습니다.
  • 앱 모드: 프리로드 스크립트와 메인 Node.js 스크립트를 사용해 브라우저 기술로 터미널 기반 앱을 만들 수 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트