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
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
- 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
- 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
- SPACE or ENTER - Click at cursor position
- i - Toggle inspect mode (show element info on hover)
- e or ESC - Return to STANDARD mode
Requirements
Terminal
Any terminal emulator with Sixel graphics support:
- foot - Wayland terminal (recommended)
- mlterm - X11 terminal with excellent Sixel support
- xterm - With VT340 mode:
xterm -ti vt340 - wezterm - Modern GPU-accelerated terminal
- yaft - Framebuffer terminal for TTY
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
- Arch Linux: AUR Package (brow6el-git)
- Artix Linux: Omniverse Repository
License & Credits
Brow6el is released under the MIT License.
Uses:
- CEF (Chromium Embedded Framework) - BSD 3-Clause License
- libsixel - MIT License
Project repository: codeberg.org/janantos/brow6el