Brow6el

Terminal Web Browser with Sixel Support

Brow6el is a full-featured web browser that runs entirely in your terminal using Sixel graphics. Built on Chromium (CEF), it brings modern web browsing to the command line with a powerful vim-style keyboard interface, mouse support, JavaScript console, bookmarks, user scripts, and more. Perfect for terminal enthusiasts who want a complete browsing experience without leaving their workflow.

Download & Install

Full-featured Chromium-based web browser for your terminal.

AppImage Downloads

Package Repositories

Build from Source

git clone https://codeberg.org/janantos/brow6el.git
cd brow6el
./download_cef.sh
./build.sh
./build/run_brow6el.sh https://example.com

Screenshots

See Brow6el in action:

Video Demo

Browser in Action

Brow6el web browser showing Codeberg website

Features

🖼️ Sixel Graphics

Full page rendering with automatic resolution detection in your terminal.

🖱️ Mouse Support

Click, scroll, and interact with web pages naturally.

⌨️ Vim-Style Control

Efficient keyboard navigation with modal control (STANDARD, INSERT, MOUSE).

🔍 Element Inspector

DevTools-like element inspection in MOUSE mode.

💻 JavaScript Console

Execute JS commands and view console logs.

📚 Bookmarks

Save and organize your favorite pages.

🔧 User Scripts

Inject custom JavaScript into pages (Greasemonkey-style).

📥 Download Manager

Save files with progress tracking.

🪟 Multi-Instance

Run multiple browser windows simultaneously.

🔒 Privacy Modes

Temporary or persistent profiles for different use cases.

🌐 Modern Web

Full HTML5/CSS3/JavaScript support via Chromium/CEF.

🎯 Popup Handling

Terminal-friendly popup dialogs and alerts.

Usage & Controls

Modal Navigation System

Brow6el uses three distinct modes for efficient navigation:

[S] STANDARD Mode - Default

Vim-like navigation with single-key commands (no Ctrl required):

Navigation:
  • h j k l or arrow keys - Navigate (left/down/up/right)
  • t g - Scroll up/down
  • p n - Back/forward in history
Actions:
  • r - Reload page
  • u - Navigate to URL
  • c - Toggle JavaScript console
  • d - Add bookmark
  • b - Open bookmarks
  • f - Hint mode (keyboard link navigation)
  • s - User scripts menu
  • m - Downloads manager
  • x - Exit browser
Mode Switch:
  • i - Enter INSERT mode
  • e - Enter MOUSE mode

[I] INSERT Mode

All keypresses pass through to the webpage. Use for typing in forms, text areas, etc.

  • ESC - Return to STANDARD mode

[M] MOUSE Mode

Keyboard-driven mouse emulation with visual cursor:

Movement:
  • h j k l or arrow keys - Move mouse
  • q f - Toggle precision/fast speed
Actions:
  • SPACE or ENTER - Click at cursor position
  • i - Toggle inspect mode (show element info on hover)
Exit:
  • e or ESC - Return to STANDARD mode

Requirements

Terminal

Any terminal emulator with Sixel graphics support:

Build Dependencies

# Ubuntu/Debian
sudo apt-get install build-essential cmake git pkg-config curl \
    libsixel-dev libx11-dev libxcomposite-dev libxdamage-dev \
    libxext-dev libxfixes-dev libxrandr-dev libgbm-dev \
    libpango1.0-dev libatk1.0-dev libcups2-dev libasound2-dev \
    libnss3-dev libnspr4-dev libglib2.0-dev

# Arch Linux
sudo pacman -S base-devel cmake git pkg-config curl \
    libsixel libx11 libxcomposite libxdamage libxfixes \
    libxrandr mesa pango atk cups alsa-lib nss nspr glib2

Advanced Features

📖 User Scripts

Greasemonkey-style custom JavaScript injection:

mkdir -p ~/.brow6el/userscripts
nano ~/.brow6el/userscripts.conf

Example configuration:

auto_inject=true

dark-mode.js|Dark Mode|true|*
google-custom.js|Google Custom|true|*google.com*

Press s in STANDARD mode to open user scripts menu.

🔐 Profile Modes

Temporary Mode (Default): Each session uses a new profile, all data deleted on exit - perfect for private browsing.

Persistent Mode: Profile saved in ~/.brow6el/profile, cookies and sessions maintained.

# ~/.brow6el/browser.conf
profile_mode=temporary  # or: persistent, custom
cache_size_mb=500
clear_cache_on_exit=false

🔧 CEF Configuration

Customize Chromium flags in ~/.brow6el/cef_flags.conf:

  • Enable/disable WebGL support
  • Configure rendering options
  • Set custom user agent
  • Adjust logging verbosity

How It Works

CEF renders web pages offscreen → libsixel converts to sixel graphics → Terminal displays output

The browser continuously renders frames as pages update, with synchronized input handling for mouse and keyboard events.

Community Packages

License & Credits

Brow6el is released under the MIT License.

Uses:

Project repository: codeberg.org/janantos/brow6el