はじめに
ブラウザで GitHub のレポジトリページを開くと、 README 、 commit 履歴、 Issue / PR 一覧、 contribution heatmap などがトップにまとまっていて、いま何が起きているかがぱっと見でわかります。
一方、ターミナルを開いたときに見えるのはプロンプト 1 行くらいで、出てくる情報量はかなり少なめです。
ターミナルでも Web / GitHub くらいの情報量を出せないか、と思って作ったのが今回紹介する splashboard です。
シェル起動時と cd のたびにカスタマイズ可能なダッシュボードを描画する Rust 製の CLI ツールです。
特徴
- 🌊 シェル起動時 /
cdのたびに描画-
.zshrcにeval "$(splashboard init zsh)"を 1 行入れるだけ。
-
- 🎨 TOML で自在にカスタマイズ
- widget / 配置 / 見た目を
dashboard.tomlで自由に組み立て可能。情報を詰め込むのも、極限までシンプルにするのも好みで。
- widget / 配置 / 見た目を
- ✨ アニメーション系から情報密度系まで揃う renderer
- ASCII アート、 scanline / 波 / スプリットフラップなどリッチな見た目から、 heatmap / sparkline / timeline / calendar / chart などダッシュボードらしく情報を詰める表示まで対応(renderer 一覧)。
- 📦 Home / Project のデフォルトとプリセット同梱
-
splashboard installのライブプレビューから、 home / project それぞれのプリセット dashboard とテーマ(tokyo_night/catppuccin_mocha/dracula/nord/gruvbox_darkなど)を選ぶだけで使える。
-
- 📁 レポジトリごとに上書き可能
- レポジトリ直下に
./.splashboard/dashboard.tomlを置けば、cdした瞬間にそのレポジトリ専用の splash に切り替わる。
- レポジトリ直下に
- ⚡ シェル起動時の描画が速い
- 初回はキャッシュ済みのデータから即座に描画されるので、シェル起動を待たせない。最新データはバックグラウンドで再取得。
- 🔒 per-directory config の trust モデル
- クローンしたレポジトリ同梱の
dashboard.tomlで URL を config から渡す系の widget ( rss / calendar など)は、splashboard trustを通すまで動かない。
- クローンしたレポジトリ同梱の
インストール
ワンライナー( Linux / macOS / Windows )
curl -fsSL https://raw.githubusercontent.com/unhappychoice/splashboard/main/install.sh | bash
Homebrew ( Linux / macOS )
brew install unhappychoice/tap/splashboard
ソースからビルド Cargo ( Universal )
cargo install splashboard
使い方
インストール後、対話セットアップを起動します。
splashboard install
シェル( zsh / bash / fish / PowerShell )を自動検出し、 Home 用 dashboard / Project 用 dashboard / テーマをライブプレビュー付きで選ぶと、 ~/.splashboard/ 以下に設定が書かれて rc に init スニペットが追記されます。
新しいシェルを開けば、もうそこに splash が出ます。
レポジトリに同梱したい場合は、レポジトリ直下に .splashboard/dashboard.toml を置きます。
[[widget]]
id = "branch"
fetcher = "git_branch"
render = "text_plain"
[[widget]]
id = "ci"
fetcher = "github_ci_status"
render = "status_badge"
[[row]]
height = { length = 1 }
[[row.child]]
widget = "branch"
[[row.child]]
widget = "ci"
cd した瞬間にこの dashboard に切り替わります。
なぜ作ったか
ターミナル起動時に何かを表示するツール自体はいくつかありますが、 GitHub のレポジトリページくらいの情報密度を出すものは見当たりませんでした。
-
system info ツール( neofetch / fastfetch )
OS / カーネル / メモリの表示が中心で、レポジトリの状態のような動的なデータは出てこない。 -
prompt ( starship )
1 行のスペースに集約する道具。 ASCII アート、 heatmap 、 timeline のような大きな表示はできない。 -
MOTD (
/etc/motd、update-motd) などのログインメッセージ
SSH ログイン時の伝統的なテキスト表示機能。 update-motd で動的にもできるが、サーバ管理者目線の機能でレポジトリ単位の cd 連動やリッチな TUI 表示はできない。 -
shell rc に書いた手製のスクリプト
表示したい情報が増えると、すぐに管理しづらくなる。
シェル起動時や cd のたびに GitHub のレポジトリページくらいの情報量を出してくれるツールがほしくて、 splashboard を作りました。
技術
- Rust
- ratatui ( TUI 描画)
- crossterm (端末制御)
- tokio (バックグラウンドのキャッシュリフレッシュ)
- git2 ( git 系 fetcher )
- Claude Code をヘビーユース
リンク
- ドキュメントサイト: https://splashboard.unhappychoice.com/
- crates.io: https://crates.io/crates/splashboard
おわりに
GitHub のレポジトリページを開かなくても、ターミナルだけでレポジトリの現在地がだいたいわかる、くらいを目指しています。
気になった方はぜひ試してみてください。
curl -fsSL https://raw.githubusercontent.com/unhappychoice/splashboard/main/install.sh | bash
splashboard install

