
目次
- 背景
- プロンプトをカスタマイズするには
- インストール
- プリセット
- Starship.toml
- 自分が使っているフォーマット
- おすすめのモジュール
- timeモジュール
- directoryモジュール
- Git関連
- cmd_durationモジュール
- statusモジュール
- sudoモジュール
- 言語のバージョン
- おまけ
- まとめ
- PR
- 関連記事
背景
こんにちは。 かりんとうマニア(@karintozuki)です。
皆さん、プロンプトはご存知でしょうか?
プロンプトとはターミナルを開いたときに左側に出るユーザ名とかマシン名を表示しているあれです。
1 | karinto@macbook:~$ |
突然ですが、ぼくの考えたさいきょうのプロンプト私のプロンプトをご覧ください。
![[プロンプト]](/2025/07/2025-0706-starship-prompt/01.png)
どうでしょうか。
私だけかもしれませんが、カラフルなアイコンと細々した数字が出ているUIに惹かれるんですよね。コクピットみたい、といったら伝わるでしょうか。ターミナルを開くたびに笑顔になってしまいます。
プロンプトをカスタマイズするのがこんなに楽しいことだったとは正直、知りませんでした。
これは私が最高だと思うプロンプトですが、あなたも自分が最高だと思えるプロンプトを作ってみたくなりませんか?
プロンプトをカスタマイズするには
プロンプトは特にツールを入れなくても.bashrc
などでカスタマイズできなくはないのですが、そのためにはPS1というクセの強い言語(?)を覚える必要があります。PS1の例は以下のような感じです。
1 | # PS1の例 |
でもちょっととっつきづらいですよね?
そこで、この記事で紹介するStarship Promptが使います。
Starship PromptはPS1より可読性の高いtomlで設定ができ、PS1にはない機能もたくさんあるプロンプトのカスタマイズに特化したソフトウェアです。またRustで書かれているため高速とのことです。
この記事ではそんなStarship Promptの使い方を紹介していきます。
インストール
Starship Promptはこの手のツールにしては珍しく(?)日本語対応がしてあります。
多分AI翻訳だと思いますが、ありがたいですね。
インストールもこちらのページに従うだけですが、NerdFontが必要です。
私はUbuntuを使っているので、以下のコマンドを実行するだけでした。
1 | curl -sS https://starship.rs/install.sh | sh |
プリセット
いきなりTomlを編集するのはちょっとハードルが高いので、用意されているプリセットから自分が目指すプロンプトに近いものを雛形として選ぶのがかんたんと思います。
こちらのページから好きなものを選んでみたください。
https://starship.rs/ja-JP/presets/
私は基本的にシェルもnvimもcatppuccinのカラーテーマを使うのでcatppuccinのプリセットを使うところから始めました。
Starship.toml
プリセットで一通り遊んだら自分の好きにプロンプトをカスタマイズしましょう。
~/.config/starship.toml
に設定ファイルがあります。
この記事では細かい文法などは公式におまかせして、個人的に使っている設定を紹介します。
最近はこういうツールの設定などは割とChatGPTに聞いたらよしなにやってくれるので、どんなことができるのか知るほうが大事かなと思います。
自分が使っているフォーマット
設定ファイルの中にはformat
というフィールドがあります。
これはPS1と同じコンセプトで、プロンプトに何をどんなスタイルで表示するかを記述したものですが、PS1より読みやすくなっています。
トップレベルのものとモジュール(次に解説します。)レベルのものがあります。
私のトップレベルのフォーマットはこんな感じです。細かいことは覚えなくて大丈夫で、なんとなくこんなこんな雰囲気なんだなーと思ってもらえれば大丈夫です。
それとこの記事全体に言えることですが、NerdFontのアイコンがうまく表示されていません。なるべくコメントをつけようと思います。
1 | format = """ |
ここで例えば$time
という行がありますが、これはそのまま時間を表示するモジュールを指しています。他にも$git_branch
だったらGitのブランチ名を表示する、など割と直感的になっていることが分かると思います。
おすすめのモジュール
先程もサラッと説明しましたが、Starship Promptはモジュールという概念があります。
ここでは私のおすすめのモジュールを紹介します。
timeモジュール
$time
はそのまんまですが、時間を表示します。私は以下のような設定で、style
にラベンダー色を指定し、フォーマットは%T
、つまり00:34:60
のようになります。
1 | [time] |
directoryモジュール
個人的には必須です。自分が今どのフォルダにいるのかを表示してくれます。
デフォルトでは、もしGitのレポジトリだったら、レポジトリのルートをルートとして表示してくれるようになっています。
自分の設定はこんな感じです。
1 | [directory] |
Git関連
Git関連のモジュールはいくつかあるのですが、私はgit_branch
とgit_status
を使っています。
git_branch
は文字通り、自分が今どのブランチを使っているのかを表示します。
git_status
はローカルの変更状況(untracked, stagedなど)とリモートと比べた状態(ahead, behind, divergedなど)を表示してくれます。
結構便利です。
1 | [git_branch] |
cmd_durationモジュール
これはコマンドの実行にかかった時間を表示、または通知を送ってくれます。
表示と通知それぞれに閾値を設定できて、私は700ms以上のコマンドは実行時間を表示、45秒以上かかったコマンドは通知を送るように設定しています。
1 | [cmd_duration] |
statusモジュール
これは実行したコマンドの返り値を表示します。
私は成功したら✅、エラーなら❌と終了コード、終了コードの意味(Command not foundなど)を表示させています。
1 | [status] |
sudoモジュール
これはシンプルでsudo
コマンドのパスワードがキャッシュされていたら🔒マークを表示させています。地味に便利です。
言語のバージョン
私は有効にしていませんが、プロジェクトの設定ファイル、例えばJSならpackage.jsonなどを見てその言語のバージョンを表示するなども設定できます。
おまけ
私のstarship.tomlの全文はこちらから見られます。
記事内にコピペしてもいいのですが、Nerdfontがうまく表示できないので、GitHubからダウンロードして開いてもらったらいいと思います。
https://github.com/karintomania/dotfiles/blob/main/.config/starship.toml
まとめ
少しでもStarship Promptの楽しさが伝わったでしょうか。この記事で紹介した以外にもたくさんの機能・モジュールがありますので、ぜひ試してみてください!
それじゃ今日はこの辺で。
PR
あなたの会社はあなたの技術を評価してくれていますか?
技術力を高めようと頑張っているのに、
技術が評価されないような会社にいたらそれは良い環境なのでしょうか?
エンジニアとして技術を高めたいのなら環境を選ぶことも大事です。
レバテックキャリア
エンジニアとして働いていて実務経験があるなら、
求人数の充実具合からレバテックキャリアがおすすめです。
IT転職ではデファクト・スタンダードですね。
▼レバテック キャリア 登録はこちら▼
Tech Clips
Tech Clipsは年収500万以上&自社サービスを持った会社に特化した求人サイトです。
首都圏限定になってはしまいますが、
収入を増やしたい、自社サービスを持った企業への転職をしたい人におすすめです。
関連記事
こちらの記事もおすすめです。