browsh
Browse the web via text-based interface
TLDR
Start browsh
Start browsh in a specific webpage
Focus URL bar
Exit browsh
Display help
SYNOPSIS
browsh [options] [URL]
PARAMETERS
--help
Print help information
--version
Print version information
--debug
Enable debug logging to stderr
--log
Log output to specified file
--config-dir
Set config directory (default: ~/.config/browsh)
--user-data-dir
Set user data directory (default: ~/.local/share/browsh)
--new-window
Open URL in new window
--block-default-downloads
Block all downloads by default
--disable-downloads
Disable downloads completely
--enable-images
Render images (default)
--disable-images
Disable image rendering
--enable-javascript
Execute JavaScript (default)
--disable-javascript
Disable JavaScript
--enable-webrtc
Enable WebRTC (default)
--disable-webrtc
Disable WebRTC
--enable-audio
Play audio (default)
--disable-audio
Disable audio
--enable-cookies
Store cookies (default)
--disable-cookies
Disable cookies
--help-config
Print config file template
--help-bindings
Print default key bindings
DESCRIPTION
Browsh is a fully-modern, text-based web browser designed for Linux terminals. It harnesses Mozilla's Gecko rendering engine (via Firefox) to support contemporary web features like images, CSS animations, JavaScript, WebGL, video playback, and even PDF viewing—all rendered efficiently using block characters and colors.
Unlike legacy text browsers, Browsh handles complex modern sites such as YouTube, Reddit, Twitter, and Gmail with minimal distortion. Images appear as pixelated block art, fonts use Unicode glyphs for style, and interactive elements respond to keyboard input.
Key strengths include low memory footprint (under 30MB typically), vi/emacs-like keybindings, multiple tabs/windows, bookmarks, history, downloads, and pixel-perfect rendering in truecolor terminals. It's ideal for servers, SSH sessions, embedded systems, or users preferring terminal workflows.
Browsh requires a compatible Firefox installation (ESR 78+ recommended) and geckodriver. It excels in resource-constrained environments but may lag on extremely JavaScript-heavy pages due to terminal rendering overhead.
CAVEATS
Requires Firefox (ESR 78+) and geckodriver; needs truecolor/256-color terminal; high CPU on JS-heavy sites; no HTTPS proxy support out-of-box; audio may require pulseaudio.
KEYBINDINGS
Vi-style: h/j/k/l for left/down/up/right; gg page top, G bottom; Ctrl+b/f page back/forward; yy yank URL; Tab next link.
CONFIG
Edit ~/.config/browsh/browsh.cfg for custom fonts, colors, bindings; use --help-config for template.
HISTORY
Developed by Thomas Buckley starting in 2019; initial release v0.1.0; reached v1.0 in 2023 with stable Gecko integration. Gained traction for SSH/server use; actively maintained with focus on performance and feature parity.


