zenbu-labs/terminal-browser
Rust0 / 0
Chromium을 터미널 그래픽 프로토콜로 렌더링하고 SSH·에이전트 연동까지 지원하는 Rust CLI 도구입니다.
TL;DR
terminal-browser는 Chromium을 터미널의 그래픽 프로토콜 위에 렌더링하는 독립형 Rust CLI 도구입니다. Electron offscreen rendering으로 얻은 픽셀을 Rust 엔진의 공유 캔버스에 그리고, 터미널 입력을 Chromium 이벤트로 변환해 실제 웹페이지를 조작합니다. SSH 모드에서는 웹페이지를 로컬에서 표시하면서 네트워크 요청만 원격 서버로 전달해 원격 localhost 미리보기에 활용할 수 있습니다. 터미널 기반 coding agent와 웹 브라우저를 같은 작업 공간에 두거나, `--app-mode`로 웹 기술 기반 터미널 앱을 만들려는 경우에 적합하지만 kitty graphics protocol 지원 터미널이 필요합니다.
핵심 포인트
- 독립형 CLI 도구로, kitty graphics protocol을 지원하는 터미널에서 Chromium 화면을 픽셀 단위로 렌더링합니다. Rust 그래픽 엔진과 Electron offscreen rendering API를 결합해 웹 브라우저를 터미널 창 안에서 실행합니다. 일반 터미널에서는 그래픽 프로토콜 지원 여부를 먼저 확인해야 합니다.
- 터미널의 마우스·키보드 입력을 Chromium의 synthetic event로 전달하고, 운영체제 입력 이벤트는 백그라운드 Swift 앱으로 보완합니다. 이 구조가 트랙패드 스크롤과 무한 캔버스 같은 웹 상호작용을 처리하는 방식입니다. 브라우저 외곽 UI는 React와 custom renderer로 구성되어 TypeScript 기반 확장이 가능합니다.
- `terminal-browser open --ssh <user@host> <url>`은 웹사이트를 로컬에서 렌더링하면서 네트워크 요청만 원격 서버를 거치게 합니다. 원격 화면의 모든 프레임을 전송하는 방식보다 SSH 환경에서 지연과 전송 부담을 줄이는 구조입니다. 원격 localhost 사이트를 로컬 터미널에서 확인하려는 작업에 적합합니다.
- `--app-mode`와 preload·main-script 옵션으로 Electron 기반 웹 앱을 터미널용 앱처럼 실행할 수 있습니다. `--no-toolbar`, `--no-shortcuts`, `--no-frame` 같은 옵션으로 브라우저 UI를 제거하고 페이지를 전체 창에 배치합니다. Claude Code·에이전트와 같은 터미널 작업 흐름에서 웹 조작이나 결과 미리보기를 연결할 수 있으며, `action`은 agent-browser 호환 CLI를 제공합니다.
1.9k
Stars
83
Forks
+218
Trending
0
조회수
1.9k watchers28 open issuesMIT License
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.