はじめに
ターミナル上で(テキストベースの)web ブラウザを動かす試みは、何も近年始まったことではない。 最も有名な例としては、東北大学の伊藤彰則教授によって開発された w3m が挙げられるだろう(現在は Debian のリポジトリ内で開発が継続されている)。 また、それ以外にもLynxやBrowshなどの実装がある。
しかし、これらのブラウザは宿命的にある特徴を持っていた ── 基本的に CSS が効かない1。 「構造化文書が読めればそれでいい」という人にとっては問題ないかもしれないが、現代のブラウザとしては CSS に対応していないのは辛い。 そう思っていたある日、Hacker News で話題となっていたサイトが目に入った。 そこで紹介されていたブラウザが、本記事で紹介する Chawan である。
Chawan: TUI web browser


Chawan は Unix 系のシステム2で動作するテキストベースの web ブラウザであり、Nim で実装されている。 基本的な使い方としては、
cha google.com
でリンク先を閲覧することが出来る。
Chawan のメリットとして、
- CSS に対応している
- (DOM 操作や API を叩くなどの)JavaScript に対応している
- sixel を用いて画像表示が出来る3
などがある。テキストベースの web ブラウザとしては、頭一つ抜けてモダンな機能が実装されている。
インストール
バイナリを入手する
Package | Link |
---|---|
AUR | https://aur.archlinux.org/packages/chawan-git |
NixOS | https://search.nixos.org/packages?show=chawan |
AppImage | https://git.lerch.org/lobo/chawan-appimage/ |
一部のパッケージマネージャには既に登録されている。また、AppImage ファイルを直接ダウンロードすることも可能である。
ビルドする
https://sr.ht/~bptato/chawan/#compilingを参考にビルドしていく。
- Chawan のリポジトリをクローンする
git clone https://git.sr.ht/~bptato/chawan && cd chawan
- Nim コンパイラをインストールする
- 依存関係をインストールする
- OpenSSL
- libssh2
- brotli
- pkg-config
- GNU make
make
を実行するsudo make install
を実行する
各種設定
画像表示
Chawan では、画像表示プロトコルとして Sixel または Kitty を用いている。 そのため、画像を表示したい場合はこれらをサポートしているターミナルを使う必要がある。 なお、筆者のおすすめは Wezterm である(Sixel をサポートしている)。
設定ファイル(参考)
config.toml
の設定は以下。
include = "w3m.toml"[buffer]images = true
また、w3m.toml
(キーバインディングを w3m のものに近づける設定)は以下。
おわりに
w3m に代わる新たな TUI ブラウザとして期待が持てるが、欲を言えば
- より広範な CSS 対応(grid や object-fit など)
- より多くのパッケージマネージャへの採用(e.g. apt, xbps, homebrew)
などが実現されるとさらに嬉しい。