ターミナルでウェブサイトを閲覧できるブラウザとしてはLynxやw3m、ELinksなどがありますが、いずれもHTML5やCSS3、JavaScriptへの完全対応は行われていません。「どうしてもターミナルでモダンなウェブサイトを閲覧したい」というマニアックな願いや、テザリング環境など「データ通信の容量をできるだけ節約しつつグラフィカルなブラウジングをしたい」といったニーズにマッチするのが、無料のテキストベースブラウザ「Browsh」です。

Browsh

https://www.brow.sh/



GitHub - browsh-org/browsh: A fully-modern text-based browser, rendering to TTY and browsers

https://github.com/browsh-org/browsh

BrowshはGUIを描画しない「ヘッドレスモード」のFirefoxをバックエンドとしており、通常のブラウザと同じ見た目でウェブサイトを表示することが可能。DebianやUbuntu、Fedoraなどの一般的なLinuxディストリビューションのほか、macOSやWindowsにも試験的に対応しています。



Browshの動作にはFirefoxが必須ですが、UbuntuなどでFirefoxをインストールしようとすると、GUI関係のパッケージも同時にインストールされてしまいます。GUIパッケージがひとつもインストールされていないストイックなCLI環境を構築したい人は、Browshが配布するDockerイメージを利用することが可能。今回は下記コマンドを実行して、DockerコンテナからBrowshを利用してみました。

docker run --rm -it browsh/browsh


コマンドを実行すると、Browshのウェブサイトが表示されました。Browshは画像や動画といったコンテンツの表示にUTF-8のハーフブロック(▄)を利用しているため、解像度はかなり粗くなっています。



カーソルをリンクに移動させると、リンクが赤枠で囲われます。



クリックでリンク先に移動。前のページに戻るには「Backspace」キーを使います。他にも「Ctrl+R」キーでリロード、「Ctrl+T」キーで新しいタブを開くといった、通常のブラウザにも存在するショートカットを利用することが可能。



ページのスクロールは通常のブラウザと同じく、マウスのホイールやキーボードの十字キーで行えます。



URLを入力したい場合は「Ctrl+L」キーでカーソルをURLバーに移動。閲覧したいウェブサイトのURLを入力して……



「Enter」キーを押下すれば、指定したURLのページへ移動できます。



グラフィカルにウェブサイトを表示できるBrowshですが、日本語は正常に表示できません。



また、YouTubeのムービーも「Windows Terminal」と「WSL2 Ubuntu 20.04」および「Bash」を利用した環境では再生することができませんでした。試しにこのムービーのページにアクセスしてみたところ、以下のようにサムネイルが表示されるものの、クリックしてもムービーがスタートしないという結果に。



Browshの開発チームによると、「遠隔サーバー上のブラウザでコンテンツを読み込み、遠隔サーバーからSSH経由で表示結果だけを受信することで、クライアント側のネットワーク帯域に依存せずリッチなウェブサイトを楽しむ」というのが、Browshのコンセプトだとのです。