Ryan X. Charles
Ryan X. Charles
Follow

TermSurf 0.1.0 Has Been Released on Homebrew!

April 6, 2026 · Ryan X. Charles

TermSurf is now available on Homebrew:

brew tap termsurf/termsurf
brew install --cask termsurf

Two commands and you have a full Chromium browser running inside your terminal panes at 60fps with Metal GPU acceleration at Retina resolution. No Electron. No webview wrapper. Real Chromium — with real DevTools, real JavaScript, and real web pages — composited directly into your terminal window.

The Problem

Developers live in the terminal. We write code, run builds, manage servers, read logs — all from the command line. But then we need to check documentation. Or look at a dashboard. Or test localhost. So we alt-tab to a browser, lose our place, alt-tab back, and repeat this dozens of times a day.

Every context switch is a small tax on your focus. Over the course of a day, it adds up.

The Solution

TermSurf puts the browser next to your terminal:

web google.com

A browser pane opens right alongside your terminal panes. It resizes with your splits. It blocks like vim or less — press q to quit and you’re back at your shell prompt. It’s a command-line tool that happens to render full web pages.

web localhost:3000          # check your dev server
web :8080                   # shorthand for localhost
web ./docs/index.html       # open a local file
web github.com/termsurf     # browse a repo

Smart URL resolution means you don’t need to type https:// — TermSurf figures it out.

Key Features

Vim-style modal control. Four modes: Control (terminal keybindings), Browse (keyboard and mouse go to the browser), Edit (vim-style URL editing with Normal/Insert submodes), and Command (: prefix for commands like :quit and :devtools). Press Enter to browse, Esc to go back to control.

Profile isolation. Like Chrome profiles, but from the command line. Separate cookies, sessions, and storage per profile:

web --profile work slack.com
web --profile personal github.com

Dark mode. Toggle with :dark or :da in command mode. System color scheme is forwarded to Chromium automatically.

Chrome DevTools. Open in a split pane with :devtools or :de. Full DevTools, not a simplified version.

Mouse, keyboard, and clipboard. Full mouse input — click, drag, scroll, text selection. Cmd+C/V/A/X/Z go to the browser. Copy and paste works between browser and terminal.

What Gets Installed

The Homebrew cask installs:

  • Wezboard — the terminal emulator (a WezTerm fork with browser integration)
  • web — the browser TUI (opens browser panes from any terminal command)
  • Roamium — the Chromium engine binary

All your existing WezTerm configuration and keybindings work in Wezboard out of the box.

It’s a Protocol

TermSurf isn’t just an app — it’s a protocol. The TermSurf protocol defines protobuf messages over Unix domain sockets that let any terminal emulator host any browser engine. Wezboard + Chromium is the first implementation, but the protocol is designed for:

  • Multiple terminals — Ghostty, Kitty, Alacritty, iTerm2
  • Multiple engines — WebKit, Gecko, Ladybird

The protocol handles tab lifecycle, navigation, input forwarding, GPU compositing, and state synchronization. Any terminal that speaks the protocol can embed any browser engine that speaks it. I wrote about this vision in more detail in Why We Need a Webview Overlay Protocol for Terminal Emulators.

Try It

brew tap termsurf/termsurf
brew install --cask termsurf

Open Wezboard, type web termsurf.com, and you’re browsing the web inside your terminal.

TermSurf is open source under the MIT license. You can find the code on GitHub and the project homepage at termsurf.com. For the full backstory on how TermSurf came to be, see Introducing TermSurf: A Browser Inside Your Terminal.


Earlier Blog Posts


Back to Blog

Copyright © 2026 Ryan X. Charles