LinuxCommandLibrary

browsh

Browse the web via text-based interface

TLDR

Start browsh

$ browsh
copy

Start browsh in a specific webpage
$ browsh --startup-url [URL]
copy

Focus URL bar
$ <Ctrl l>
copy

Exit browsh
$ <Ctrl q>
copy

Display help
$ browsh [[-h|--help]]
copy

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.

SEE ALSO

lynx(1), w3m(1), links(1), elinks(1)

Copied to clipboard