ターミナル上でMarkdown形式のREADMEや仕様書、ドキュメントを確認する際、cat や less では見出しや装飾がそのままテキストとして表示されて読みづらく、わざわざGUIエディタやブラウザを開くのが億劫だと感じたことはありませんか?
glow(グロー) は、Go言語で作られたターミナル専用のMarkdownレンダラー/ビューアです。見出しの階層デザイン、太字・斜体、箇条書きリスト、コードブロックのシンタックスハイライト、テーブルの罫線整形などをCLI/TUI上で美しく描画してくれます。
本記事では、glowの各OSへのインストール手順から基本構文、主要オプション早見表、テーマ設定、そして実務を劇的に効率化する「fzfと連携したリアルタイムMarkdownプレビュー」「GitHub READMEの直接閲覧」といったキラーレシピまで徹底解説します。
glowのインストール方法(各環境別)
glow はGo製のシングルバイナリとして配布されており、macOS、Linux、Windowsなど主要なパッケージマネージャーから簡単に導入できます。
| 環境 / OS | インストールコマンド |
|---|---|
| macOS(Homebrew) | brew install glow |
| Ubuntu / Debian | sudo apt update && sudo apt install glow |
| Arch Linux | sudo pacman -S glow |
| Windows(Scoop) | scoop install charm-scoop/glow |
| Windows(Winget) | winget install Charmbracelet.Glow |
| Go環境(最新版) | go install github.com/charmbracelet/glow@latest |
インストールが完了したら、バージョン確認コマンドを実行して正常に認識されているか確認してください。
# glowのバージョンを確認
glow --version
※ パッケージマネージャーが使えない環境では、GitHubのReleasesページからコンパイル済みバイナリをダウンロードして /usr/local/bin/ などのパスに通すだけで即座に利用可能です。
基本構文と最短で動かす基本コマンド
glowの基本構文は非常にシンプルで、引数に対象のファイルパスやURL、オプションを指定します。
# 基本構文
glow [オプション] [対象(ファイルパス/URL/標準入力)]
最短で動かす2つの基本操作
1. ローカルのMarkdownファイルを整形表示する
# 単一のMarkdownファイルをターミナル上に美しく描画
glow README.md
2. 対話型TUI(Text User Interface)モードでブラウズする
# 引数なしで実行するとカレントディレクトリ配下のMarkdownを一覧・選択閲覧できる
glow
TUIモードではカーソルキーでファイルを選択でき、? キーを押すことで操作キーバインドの一覧ヘルプを確認できます。
glowの主要オプション一覧・早見表
実務でよく利用するコマンドラインオプションをまとめました。
| オプション | 短縮形 | 説明 | 実用コマンド例 |
|---|---|---|---|
--pager | -p | ページャ(less等)経由で長文をスクロール表示 | glow -p README.md |
--style | -s | 表示テーマ/スタイル(dark/light/auto/JSON)を指定 | glow -s dark README.md |
--width | -w | 折り返し文字幅の指定(0で自動折り返し無効) | glow -w 80 README.md |
--tui | -t | 指定ファイルを明示的にTUI内蔵ビューアで開く | glow -t docs/spec.md |
--all | -a | TUIモード時に隠しファイル・無視ファイルも含めて表示 | glow -a |
--line-numbers | -l | 行番号を表示してレンダリング | glow -l README.md |
--mouse | -m | TUIモードでマウスホイールによるスクロールを有効化 | glow -m |
--preserve-new-lines | -n | 元のMarkdownの改行コードをそのまま保持 | glow -n README.md |
--config | – | 設定ファイル(glow.yml)のパスを明示指定 | glow --config ~/.glow.yml |
実務で使える頻出パターン&キラーレシピ
【キラーレシピ1】fzfと連携したリアルタイムMarkdownプレビュー
あいまい検索CLIツール fzf と組み合わせることで、リポジトリ内のMarkdownファイルをインクリメンタル検索しながら、右ペインに glow の整形結果をリアルタイム表示する最強の閲覧環境が構築できます。
# カレントディレクトリ配下のMarkdownをfzfで検索し、右ペインでglowプレビュー
find . -type f -name "*.md" | fzf --preview 'glow -s dark -w 80 {}' --preview-window=right:65%
日常的に使いたい場合は、~/.bashrc や ~/.zshrc に以下の関数エイリアスを追記しておくと便利です。
# Markdownファイル対話型セレクター関数(.bashrc / .zshrc に追記)
fmd() {
local target_file
target_file=$(find . -maxdepth 4 -type f -name "*.md" 2>/dev/null | \
fzf --preview 'glow -s dark -w 80 {}' \
--preview-window=right:65%:wrap \
--header="Select Markdown to view with glow (ESC to exit)")
if [[ -n "$target_file" ]]; then
glow -p "$target_file"
fi
}
シェルを再読み込み(source ~/.bashrc)後、fmd コマンドを実行するだけで、キー入力による絞り込みとリアルタイム整形プレビューが可能になります。
【キラーレシピ2】GitHub / GitLab の README をURLから直接閲覧
glow はリモートURLの解決機能を内蔵しており、ブラウザを開かずに GitHub や GitLab のリポジトリ指定だけで最新の README.md を直接取得・レンダリングできます。
# GitHubリポジトリのREADMEを直接プレビュー
glow github.com/charmbracelet/glow
# 巨大なドキュメントはページャ(-p)を併用してスクロール閲覧
glow -p github.com/torvalds/linux
開発中のライブラリの使い方や仕様を手元でサッと確認したいときに威力を発揮します。
パターン3:標準入力(パイプ)からのリアルタイムMarkdown整形
末尾にハイフン - を指定することで、標準入力から受け取ったMarkdown文字列をそのまま整形表示できます。
# curlで取得したWeb上のRaw Markdownを直接パイプ表示
curl -fsSL https://raw.githubusercontent.com/charmbracelet/glow/master/README.md | glow -
# スクリプトやヒアドキュメントから整形出力
echo -e "# 本日の作業ログ\n\n- [x] サーバー保守\n- [ ] バックアップ確認" | glow -
パターン4:ページャ(less)連携と折り返し幅(width)の調整
長文ドキュメントを閲覧する際は -p オプションでページャを起動し、-w オプションで文字幅を指定すると視認性が大幅に向上します。
# 80桁幅・ダークテーマでページャ表示(qキーで終了、/で検索可能)
glow -p -w 80 -s dark docs/architecture.md
# 折り返しを無効化(横幅が広いテーブルを崩さず閲覧したい場合)
glow -w 0 table_data.md
パターン5:設定ファイル(glow.yml)によるテーマ・デフォルト値の永続化
毎回オプションを指定するのが面倒な場合は、設定ファイルを作成してデフォルトの挙動をカスタマイズできます。
# デフォルトエディタで設定ファイルを開く(自動生成)
glow config
設定ファイル(通常 ~/.config/glow/glow.yml)には以下のようにYAML形式で設定を記述します。
# ~/.config/glow/glow.yml 設定例
style: "dark" # テーマ: dark, light, auto, pink, notty
mouse: true # TUIモードでマウスホイール操作を有効化
pager: true # 常にless等のページャ経由で表示
width: 90 # デフォルトの折り返し文字幅
よくあるエラー・落とし穴と対処法
1. 日本語や全角文字でレイアウト・折り返しが崩れる
原因:ターミナルの文字幅計算(東アジアの文字幅)と、glow内部のレンダラー(Glamour)による文字幅判定にズレが生じることが原因です。
対策:-w 80 や -w 100 のように余裕を持った幅を明示指定するか、-w 0(折り返し無効)を指定してページャで閲覧してください。
2. 古い解説記事にある「stash」コマンドがエラーになる
原因:glow v2.0.0 のメジャーアップデートに伴い、クラウド同期機能である stash サブコマンドは完全に廃止されました。
対策:Markdownドキュメントの保存・共有はローカルストレージやGitリポジトリで行い、glowは純粋なMarkdownビューアとして利用してください。
3. GitHubリポジトリ閲覧時に404や通信エラーになる
原因:指定したリポジトリがプライベートリポジトリであるか、組織の認証プロキシでブロックされている場合に発生します。
対策:パブリックリポジトリであることを確認してください。プライベートリポジトリのREADMEを閲覧したい場合は、GitHub CLI(gh)とパイプ連携するのが実務の鉄則です。
# GitHub CLI経由でプライベートリポジトリのREADMEを取得してglowで描画
gh api repos/OWNER/PRIVATE_REPO/readme --jq .content | base64 -d | glow -
まとめ
- 美しく高機能なCLIビューア:
glowはターミナル上でMarkdownの装飾・コードハイライト・テーブルを完璧にレンダリングできる必須ツール。 - 実務効率を極めるキラーレシピ:
fzf連携によるリアルタイムプレビューや、GitHub READMEの直接閲覧でドキュメント確認が劇的に高速化。 - 設定の永続化と安全設計:
glow configによるテーマ固定や、-p(ページャ)・-w(幅調整)を適切に使い分けることで快適なターミナル環境を実現。

コメント