【glowコマンド】端末でMarkdownを美しくプレビュー・閲覧する完全ガイド|インストール・テーマ設定・fzf連携

コマンドリファレンス

ターミナル上でMarkdown形式のREADMEや仕様書、ドキュメントを確認する際、catless では見出しや装飾がそのままテキストとして表示されて読みづらく、わざわざ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 / Debiansudo apt update && sudo apt install glow
Arch Linuxsudo 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-aTUIモード時に隠しファイル・無視ファイルも含めて表示glow -a
--line-numbers-l行番号を表示してレンダリングglow -l README.md
--mouse-mTUIモードでマウスホイールによるスクロールを有効化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(幅調整)を適切に使い分けることで快適なターミナル環境を実現。

関連コマンド・関連記事

Bash玄

はじめまして!Bash玄です。

エンジニアとしてシステム運用に携わる中で、手作業の多さに限界を感じ、Bashスクリプトを活用して業務を効率化したのがきっかけで、この道に入りました。「手作業は負け」「スクリプトはシンプルに」をモットーに、誰でも実践できるBashスクリプトの書き方を発信しています。

このサイトでは、Bashの基礎から実践的なスクリプト作成まで、初心者でもわかりやすく解説しています。少しでも「Bashって便利だな」と思ってもらえたら嬉しいです!

# 好きなこと
- シンプルなコードを書くこと
- コマンドラインを快適にカスタマイズすること
- 自動化で時間を生み出すこと

# このサイトを読んでほしい人
- Bashに興味があるけど、何から始めればいいかわからない人
- 定型業務を自動化したい人
- 効率よくターミナルを使いこなしたい人

Bashの世界に一歩踏み出して、一緒に「Bash道」を極めていきましょう!

Bash玄をフォローする

コメント