zenbu-labs/terminal-browser
A browser inside your terminal
What it solves
It allows users to run a fully functional web browser directly inside a terminal emulator. This eliminates the need to switch between a terminal and a separate browser window, which is particularly useful for developers who want to keep their coding environment and web previews in a single tab or for those needing to preview websites running on remote machines via SSH.
How it works
The tool leverages the kitty graphics protocol to display pixels in the terminal. It uses Electron's offscreen rendering API to capture pixels from Chromium's GPU and renders them via a graphics engine built with Rust. To handle user interaction, it captures mouse and keyboard events from the terminal and sends synthetic events to Chromium. For advanced inputs like smooth scrolling and trackpad events, it uses a background Swift app to read OS-level input events. The outer UI is built using React with a custom renderer.
Who it’s for
- Developers who want a unified workspace where their code and browser are in the same terminal tab.
- AI Agent users who need to provide their agents with a way to interact with the web.
- System Administrators who need to preview remote websites over SSH without the latency of sending every frame over the network.
Highlights
- Agent Compatibility: Includes a CLI (
terminal-browser action) that allows AI agents to interact with open browser sessions. - SSH Optimization: Proxies network requests through a remote server rather than streaming pixels, enabling efficient remote site previews.
- Ssplit Pane Support: Can open browsers in split panes next to other terminal processes.
- App Mode: Allows the creation of terminal-based applications using browser technology via preload scripts and a main Node.js script.
Related
- Project
- Project
- Project
- Project
- Project