Brow6l - Web browser inside the Terminal

Download Markdown

Pre-requisites

  • In order to utilize the Sixel graphics, you would need to run an SSH client that supports it. One example that works well and is free is Tabby - all common platforms like Win, Mac OS and Linux are supported, inc. the ARM64 CPU architecture.
  • Alternatively, for a text-based only approach, install links2.

Concerns

  • Sixel is an 'ancient' tech that may have security vulnerabilities, which is concerning, especially in combination with SSH tunnels.
  • The project's developer is Chinese, which could be a concern for some users.

Update System and install dependencies

sudo apt update && sudo apt upgrade -y
sudo apt install -y git build-essential cmake libsixel-dev libsixel-bin libgtk-3-dev libnss3-dev libasound2-dev curl wget

Clone repo & build it

mkdir -p /opt/brow6el
git clone https://codeberg.org/janantos/brow6el.git
cd brow6el

# Download the Chromium-based framework
./download_cef.sh

# Build the rest and set permissions to allow others to execute it
./build.sh

# If you have more than one user, make it executable and accessible for them:
sudo chmod -R 755 /opt/brow6el

Run a test

./brow6el https://codeberg.org

Create a Global Command

  • We will create a command that will be accessible to all users on the Debian system.
  • Create a script file:
sudo nano /usr/local/bin/browse

#!/bin/bash

# Move to the installation directory so it can find local dependencies
cd /opt/brow6el

# Run the application, passing all arguments ("$@") to it
# We use LD_LIBRARY_PATH to ensure it finds the CEF libraries in the same folder
LD_LIBRARY_PATH=. ./brow6el "$@"
  • Make it accessible:
sudo chmod +x /usr/local/bin/browse
  • Test it
cd /
browse https://google.com
  • I tried accessing a page called seznam.cz via Tabby SSH client:

1 create a global command

Quick Controls

  • x = Exit
  • u = Enter URL

Quick Tips

  • For more settings, go to ~/.brow6el/cef_flags.conf

Troubleshooting

  • Missing Libraries: If the application fails to start, complaining about libcef.so or similar, ensure the library path is correct. You might need to set LD_LIBRARY_PATH:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)
  • "Garbage" text output: If you see a stream of random characters instead of images, your terminal client does not support Sixel.
  • Solution: Close the Proxmox web console. Install WezTerm or Foot on your local machine and SSH into the VM (ssh user@your-vm-ip).