【プロンプト】StarshipでMacのターミナルをかっこ良く使いやすくする(2025年版)

9 min

こんにちは。ナミレリです。この記事では2025年に新調した私のStarshipの設定を紹介します。

以前にStarship自体について詳しく紹介した記事もありますので、Starshipをより詳しく知りたい方はご覧ください。

Starshipについて詳しく紹介した記事

この記事はこんな人にオススメ

  • プロンプトの見た目にこだわるユーザー
  • カスタマイズ性を重視するユーザー
  • クロスプラットフォームの一貫性を求めるユーザー
  • 高パフォーマンスを求めるユーザー
この記事のMac環境
  • M3 MacBook Air 15インチ、M2 MacBook Air 13インチ
  • macOS Sequoia 15.2
  • zsh 5.9 (arm64-apple-darwin24.0)
  • starship 1.21.1
  • WezTerm 20240203-110809-5046fc22
  • Parallels Desktop 20 for Mac バージョン 20.1.2 (55742)
Parallels Desktop 20 for Macの無料トライアル もありますので、ぜひダウンロードして試してみてください。M1/M2/M3のMac上で快適にMacやUbuntu、Windowsが動作します。

WezTermについてこちらの記事で詳しく紹介しています。

はじめに(完成形の紹介)

今回の完成形のプロンプトが下の画像です。

下のプロンプトは、現在のディレクトリとgitの各種情報を表示し、右側にpythonのバージョンと現在時刻を表示しています。

基本的なプロンプト

下のプロンプトでは、私はATOKを使っていますが、ATOKの日本語入力がONの状態でプロンプトにATOKと表示させています。

ATOKがONの状態

下のプロンプトは、pythonvenv環境と、direnvの状態を表示しています。

venv + direnvの状態

書き込み権限のないディレクトリでは、鍵のマークを表示しています。

Read Onlyのディレクトリ

下のプロンプトは、sudo状態の時の表示です。

sudoの状態

カレントディレクトリに.py.lua.rsがあると右プロンプトにpythonluarustのバージョンを表示します。

pythonなどのバージョンを表示

下のプロンプトは、右プロンプトにコマンドの実行時間を表示。

コマンドの実行時間を表示

各種カラーテーマについて

私の使っているカラーテーマについてまとめます。基本的にはcatppuccinで統一しています。

テーマ
batCatppuccin-mocha
weztermCatppuccin Mocha
neovimcatppuccin-mocha
alacrittycatppuccin-mocha
tmuxcatppuccin mocha

では、starshipのプロンプトの設定方法を解説していきます。

準備

Nerd Fontは必須ですのでお気に入りのNerd Fontをインストールします。

Nerd Fontフォントはbrewでインストールがおすすめです。

今回はjetbrains-mono-nerd-fontcicaをインストールします。


brew install font-jetbrains-mono-nerd-font
brew install font-cica

formatright_formatの設定

starshipのデフォルトの設定ファイルの場所は、~/.config/starship.tomlです。STARSHIP_CONFIGという環境変数を使って、設定ファイルを指定することもできます。

formatright_formatの設定です。formatとはプロンプトのフォーマットでプロンプト全体の形式を定義します。right_formatは右プロンプトのフォーマットです。


format = """
$os\
$sudo\
$custom\
$direnv\
$directory\
$git_branch\
$git_state\
$git_status\
$git_metrics\
$fill\
$conda\
$python\
$lua\
$rust\
\n$character\
"""

right_format = """
$cmd_duration\
$time\
"""

OSモジュールの設定

[os]セクションでは、osモジュールの設定を記載します。現在使用しているosのアイコンや名前、色などをプロンプトに表示するためのモジュールです。

https://starship.rs/ja-JP/config/#os


###########################################
[os.symbols]
Macos = "  "
Linux = " 󰌽 "
Ubuntu = "  "
Debian = "  "

###########################################
[os]
disabled = false
format = """
[](fg:#89b4fa)\
[$symbol]($style)\
[](fg:#89b4fa)\
"""
style = "fg:#313244 bg:#89b4fa"

catppuccinのカラーテーマを参考に色を設定しています。

sudoモジュールの設定

[sudo]セクションでは、sudoモジュールの設定を記載します。このモジュールはsudoのパスワードがキャッシュ(credential)されている場合に表示します。

https://starship.rs/ja-JP/config/#sudo


[sudo]
disabled = false
symbol = ' 󰿆 sudo'
format = """
[](fg:#eba0ac)\
[$symbol]($style)\
[](fg:#eba0ac)\
"""
style = "bold fg:#313244 bg:#eba0ac "

カスタムモジュール(ATOK表示)の設定

customモジュールは任意のコマンド出力を表示することができます。IMEの状態をmacismを使って取得し、表示するようにしています。

https://starship.rs/ja-JP/config/#カスタムコマンド

ATOKが有効かどうかをmacismを使って判定し、有効の場合は「ATOK」という文字列を返すスクリプトを用意します。今回は~/dotfiles/bin/ime_status.shに設置します。


#!/bin/bash

# macismの出力に基づいてIMEの状態を確認
if [ "$(macism)" == "com.justsystems.inputmethod.atok34.Japanese" ]; then
    echo "ATOK"

このスクリプトを指定したカスタムモジュールを定義します。


[custom.ime_status]
command = "$HOME/dotfiles/bin/ime_status.sh"
when = "test -n \"$($HOME/dotfiles/bin/ime_status.sh)\""
format = """
[](fg:#f9e2af)\
[$output]($style)\
[](fg:#f9e2af)\
"""
style = "bold fg:#313244 bg:#f9e2af"

カスタムモジュール(venv環境表示)の設定

customモジュールは任意のコマンド出力を表示することができます。basename $VIRTUAL_ENVの結果を表示します。

https://starship.rs/ja-JP/config/#カスタムコマンド


[custom.venv]
command = "basename \"$VIRTUAL_ENV\""
when = "test -n \"$VIRTUAL_ENV\""
format = """
[](fg:#cba6f7)\
[$output]($style)\
[](fg:#cba6f7)\
"""
style = "bold fg:#313244 bg:#cba6f7"

direnvモジュールの設定

[direnv]モジュールは、direnvのステータスとdirenvの設定ファイルがロードされているか、また許可されているかを表示するモジュールです。

https://starship.rs/ja-JP/config/#direnv


[direnv]
disabled = false
format = """
[](fg:#89dceb)\
[$symbol$allowed]($style)\
[](fg:#89dceb)\
"""
style = "bold fg:#313244 bg:#89dceb"

direcotoryモジュールの設定

[directory]モジュールは、現在の作業ディレクトリのパスをプロンプトに表示します。

https://starship.rs/ja-JP/config/#directory


[directory]
truncation_length = 6
truncation_symbol = ' '
truncate_to_repo = false
home_symbol = '󰋞 ~'
read_only = ' 󰌾 '
format = """
[](fg:#b4befe)\
[$path]($style)\
[$read_only]($read_only_style)\
[](fg:#b4befe)\
"""
style = 'bold fg:#313244 bg:#b4befe'
read_only_style = 'bold fg:#313244 bg:#b4befe'

gitモジュールの設定

[git_branch]モジュールは、現在のディレクトリにおけるgitリポジトリのアクティブなブランチ名を表示するモジュールです。

https://starship.rs/ja-JP/config/#git-branch


[git_branch]
symbol = '  '
truncation_length = 4
truncation_symbol = ''
style = 'bold fg:#89dceb bg:#45475a'
format = """
[](fg:#45475a)\
[$symbol$branch(:$remote_branch)]($style)\
"""

[git_status]モジュールは、現在のディレクトリにおけるgitリポジトリの状態に関する情報を表示するモジュールです。

https://starship.rs/ja-JP/config/#git-status


[git_status]
disabled = false
style = 'bold fg:#eba0ac bg:#45475a'
conflicted = '='
ahead = '⇡${count}'
behind = '⇣${count}'
diverged = '⇕'
up_to_date = '✓'
untracked = '?'
stashed = '$'
modified = '!${count}'
renamed = '»'
deleted = '✘'
format = """
[  ](fg:#89dceb bg:#45475a)\
[$all_status$ahead_behind]($style)\
"""

[git_metrics]モジュールは、現在のgitリポジトリ内で追加された行数と削除された行数を表示します。

https://starship.rs/ja-JP/config/#git-metrics


[git_metrics]
disabled = false
added_style = 'bold fg:#a6e3a1 bg:#45475a'
deleted_style = 'bold fg:#89b4fa  bg:#45475a'
format = """
[  ](fg:#89dceb bg:#45475a)\
[+$added]($added_style)[-$deleted]($deleted_style)[](fg:#45475a)\
"""

fillモジュールの設定

[fill]モジュールは、行の余分なスペースを記号で埋めます。

https://starship.rs/ja-JP/config/#fill


[fill]
symbol = '─'
style = 'fg:#89b4fa) bg:none'

pythonモジュールの設定

[python]モジュールは、pythonのバージョンとvenv仮想環境名を表示するモジュールです。デフォルトでは次の条件のいずれかが満たされると、pythonのバージョンが表示されます。

  • カレントディレクトリに.python-versionファイルがある場合
  • カレントディレクトリにPipfileファイルがある場合
  • カレントディレクトリに__init__.pyファイルがある場合
  • カレントディレクトリにpyproject.tomlファイルがある場合
  • カレントディレクトリにrequirements.txtファイルがある場合
  • カレントディレクトリにsetup.pyファイルがある場合
  • カレントディレクトリにtox.iniファイルがある場合
  • カレントディレクトリに.pyの拡張子ファイルがある場合
  • venv仮想環境がアクティブな場合

https://starship.rs/ja-JP/config/#python


[python]
pyenv_version_name = false
symbol = '[ ](fg:#f9e2af bg:#8093fd)'
format = '[](fg:#8093fd)[ ${symbol}${pyenv_prefix}(${version})(\($virtualenv\))]($style)[](fg:#8093fd)'
style = 'bold fg:#313244 bg:#8093fd'

luaモジュールの設定

[lua]モジュールは、luaのバージョンを表示するモジュールです。デフォルトでは次の3つの条件のいずれかが満たされると、luaのバージョンが表示されます。

  • カレントディレクトリに.lua-versionがある場合
  • カレントディレクトリにluaディレクトリがある場合
  • カレントディレクトリに.luaの拡張子のファイルがある場合

https://starship.rs/ja-JP/config/#lua


[lua]
symbol = "[ ](fg:#1e66f5 bg:#89b4fa)"
format = '[](fg:#89b4fa)[ ${symbol}(${version})]($style)[](fg:#89b4fa)'
style = 'bold fg:#313244 bg:#89b4fa'

rustモジュールの設定

[rust]モジュールは、rustのバージョンを表示するモジュールです。デフォルトでは次の2つの条件のいずれかが満たされると、rustのバージョンが表示されます。

  • カレントディレクトリにCargo.tomlファイルがある場合
  • カレントディレクトリに.rsの拡張子のファイルがある場合

https://starship.rs/ja-JP/config/#rust


[rust]
symbol = "[󱘗 ](fg:#e64553 bg:#eba0ac)"
format = '[](fg:#eba0ac)[ ${symbol}(${version})]($style)[](fg:#eba0ac)'
style = 'bold fg:#313244 bg:#eba0ac'

cmd_durationモジュールの設定

[cmd_duration]モジュールは、コマンドの実行時間を表示するモジュールです。

https://starship.rs/ja-JP/config/#command-duration


[cmd_duration]
show_milliseconds = true
min_time = 100
format = '[󰞌 $duration  ](fg:#f9e2af)'

timeモジュールの設定

[time]モジュールは、現在時間を表示するモジュールです。

https://starship.rs/ja-JP/config/#時刻


[time]
disabled = false
format = '[ $time](bold fg:#6c7086)'
time_format = '%T'

キャラクターモジュールの設定

[character]モジュールは、プロンプトの最後に表示される文字($>等)をカスタマイズするための設定を記載します。

https://starship.rs/ja-JP/config/#character


[character]
success_symbol = "[❯](bold #74c7ec)[❯](bold #b4befe)[❯](bold #89b4fa)"
error_symbol = "[❯](bold #eba0ac)[❯](bold #f38ba8)[❯](bold #f17497)"

最後に

最後まで読んでいただきありがとうございます。StarshipでMacのターミナルをかっこ良く使いやすくする(2025年版)はいかがでしたでしょうか。この記事で2025年に再設定した私のStarshipの設定方法やカスタマイズ方法を紹介しました。

自分好みのプロンプトにするとモチベが上がりますのでぜひいろいろ試してください。

定番おすすめ記事

ターミナルを活用する記事をまとめました。ターミナルの活用方法やコマンドの使い方などは、UbuntuなどのLinuxでも活用できます。Macの大元がUnix系統であるからこそです。

関連記事