mcpField
C
configuring-ghostty-vibe-stack

configuring-ghostty-vibe-stack

github.com/psylch開発865 回インストール36 週間前に更新
リポジトリ

configuring-ghostty-vibe-stack について

configuring-ghostty-vibe-stackは、Apple Silicon搭載MacにターミナルベースのAIコーディング環境を構築する手順型スキルです。Ghostty、Fish、Neovimなどのインストールと設定を案内し、確認、バックアップ、ロールバック手順も含みます。

主な機能

  1. 01macOSとApple Siliconの事前確認
  2. 02HomebrewによるGhosttyとCLIツールの導入
  3. 03Ghostty、Fish、各種ツールの設定
  4. 04設定構文と内容の検証
  5. 05既存設定のバックアップと復旧手順
  6. 06CJK向けまたはラテン文字向けフォント設定

活用シーン

  1. 01新しいMacにターミナル型コーディング環境を構築
  2. 02GhosttyとFishの設定を調整
  3. 03NeovimとLazyVimをワークフローに追加
  4. 04設定トラブル後に変更を復旧・取り消し

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/psylch/ghostty-vibe-coding-stack --skill configuring-ghostty-vibe-stack

インストール後、Claude Code で/configuring-ghostty-vibe-stackを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
fish-config.md
ghostty-config.md
lazygit-config.md
set-default-terminal.md
yazi-config.md

詳細

言語

ユーザーの言語に合わせる:ユーザーが使用する言語で応答してください。

Ghostty バイブコーディングスタック

macOS(Apple Silicon)向けの、ターミナルベースの完全な AI コーディング環境です。Claude Code/AI 支援開発向けに、重い IDE を軽量で組み合わせ可能なツールに置き換えます。

動作の仕組み

以下の手順を順番に実行してください。ツールがすでにインストールされている手順は省略します。

このチェックリストをコピーして、進捗を記録してください。

Setup Progress:
- [ ] Step 1: Pre-flight checks
- [ ] Step 2: Install Ghostty
- [ ] Step 3: Install CLI tools
- [ ] Step 4: Install fonts
- [ ] Step 5: Configure Ghostty
- [ ] Step 6: Configure Fish shell
- [ ] Step 7: Install Fish plugins
- [ ] Step 8: Configure lazygit
- [ ] Step 9: Configure yazi
- [ ] Step 10: Install Neovim + LazyVim
- [ ] Step 11: Set Ghostty as default terminal
- [ ] Step 12: Validate and verify
ステップ 1:事前確認

開始前に前提条件を確認してください。

# Check macOS and architecture
uname -m  # expect: arm64
sw_vers --productVersion  # expect: 13.0+

# Check Homebrew
brew --version || echo "Homebrew not installed — install from https://brew.sh"

Homebrew がない場合は、インストールしてください。

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

すでにインストールされているものを確認し、重複する手順を省略してください。

for cmd in ghostty fish yazi lazygit nvim fzf zoxide atuin fd rg bat delta; do
  printf "%-10s: " "$cmd"
  which $cmd 2>/dev/null || echo "not installed"
done

以下の表を使って、不足している項目を解決してください。

確認項目対処方法
Homebrew がインストールされていない上記のインストールスクリプトを実行
ghostty が見つからないステップ 2:brew install --cask ghostty
CLI ツールが見つからないステップ 3:brew install <tool>(すべてのツールをまとめてインストール)
アーキテクチャが arm64 ではないこのスキルは Apple Silicon を対象としています。Intel Mac では一部のツールで互換性の問題が発生する場合があります
ステップ 2:Ghostty のインストール

Ghostty がすでにインストールされているか確認してください。

ls /Applications/Ghostty.app 2>/dev/null && echo "Ghostty installed" || echo "Not installed"

インストールされていない場合:

brew install --cask ghostty
ステップ 3:CLI ツールのインストール

すべてのツールを 1 つのコマンドでインストールします(インストール済みのツールは自動的にスキップされます)。

brew install fish yazi lazygit neovim fzf zoxide atuin fd ripgrep bat git-delta
ステップ 4:フォントのインストール

インストール前に、希望するフォント設定をユーザーに確認してください。

オプション A:CJK 最適化(中国語/日本語/韓国語ユーザーに推奨)

brew install --cask font-maple-mono-nf-cn font-sarasa-gothic font-jetbrains-mono-nerd-font

オプション B:ラテン文字のみ(英語を主に使うユーザー向け)

brew install --cask font-jetbrains-mono-nerd-font
ステップ 5:Ghostty の設定

references/ghostty-config.md から設定テンプレート全体を読み込んでください。

書き込む前に、ユーザーの希望を確認してください。

  • テーマ:ghostty +list-themes を実行して候補を表示します。人気のテーマ:Monokai Vivid、Rose Pine、TokyoNight Storm、Catppuccin Mocha
  • 透明度:背景の不透明度を有効にするかどうか(完全に不透明な表示を好むユーザーもいます)
  • フォントサイズ:デフォルトは 15 です。ディスプレイに合わせて調整します

書き込む前に、設定ファイルがすでに存在するか確認してください。

mkdir -p ~/.config/ghostty
ls ~/.config/ghostty/config 2>/dev/null && echo "Config exists" || echo "No config"

設定ファイルが存在する場合は、現在の内容を表示して、ユーザーに以下を確認してください。

  • (A)バックアップして置き換える:cp ~/.config/ghostty/config ~/.config/ghostty/config.backup.$(date +%s) を実行してから、新しい設定を書き込みます
  • (B)スキップする:既存の設定を維持します
  • (C)差分を表示して統合する:差分を表示し、セクションごとにユーザーに判断してもらいます

書き込み後、必ず検証してください。

ghostty +validate-config

検証でテーマのエラーが表示された場合は、テーマ名の大文字小文字を正確に指定する必要がある可能性があります。ghostty +list-themes | grep -i <name> で確認してください。

ステップ 6:Fish シェルの設定

references/fish-config.md から設定テンプレート全体を読み込んでください。

Fish をログインシェルとして登録するか、ユーザーに確認してください。登録すると、以下のようになります。

  • Fish が chsh のログインシェルの選択肢として使用可能になります
  • /etc/shells を変更するために sudo が必要です
  • 後でユーザーが明示的に chsh -s $(which fish) を実行しない限り、現在のシェルがデフォルトのままです

ユーザーが同意した場合は、Fish を登録してください。

grep -q "$(which fish)" /etc/shells || echo "$(which fish)" | sudo tee -a /etc/shells

chsh を自動的に実行しないでください。 Fish をデフォルトのシェルにしたいとユーザーから求められた場合に限り、次の手順として任意で実行できることを伝えてください。

書き込む前に、設定ファイルがすでに存在するか確認してください。

mkdir -p ~/.config/fish/{completions,conf.d,functions}
ls ~/.config/fish/config.fish 2>/dev/null && echo "Config exists" || echo "No config"

設定ファイルが存在する場合は、現在の内容を表示して、ユーザーに以下を確認してください。

  • (A)バックアップして置き換える:cp ~/.config/fish/config.fish ~/.config/fish/config.fish.backup.$(date +%s) を実行してから、新しい設定を書き込みます
  • (B)スキップする:既存の設定を維持します
  • (C)差分を表示して統合する:差分を表示し、セクションごとに統合します。冪等性の確認:初期化行(fzf --fish | source、zoxide init fish | source、atuin init fish | source)やエイリアスを追加する前に、既存ファイルを grep で検索して重複を避けてください。

設定を書き込んだ後、Fish が設定を解析できることを検証してください。

fish -n ~/.config/fish/config.fish && echo "Fish config syntax OK" || echo "Fish config has syntax errors"

構文エラーが見つかった場合は、エラー出力を表示し、先に進む前に設定を修正してください。

既存のシェル履歴を atuin にインポートしてください。

fish -c "atuin import auto"
ステップ 7:Fish プラグインのインストール

Fisher(プラグインマネージャー)がインストールされているか確認してください。

fish -c "type fisher" 2>/dev/null || fish -c "curl -sL https://raw.githubusercontent.com/jorgebucaran/fisher/main/functions/fisher.fish | source && fisher install jorgebucaran/fisher"

Tide プロンプトをインストールしてください。

fish -c "fisher install IlanCosman/tide@v6"
ステップ 8:lazygit を設定する

references/lazygit-config.md の設定テンプレートをすべて読み込みます。

このリファレンスには、Monokai、TokyoNight、Rose Pine のカラーテーマが含まれています。ステップ 5 でユーザーが選んだ Ghostty のテーマに合わせて、lazygit のテーマを選んでください。

書き込む前に、設定ファイルがすでに存在するか確認します。

mkdir -p ~/.config/lazygit
ls ~/.config/lazygit/config.yml 2>/dev/null && echo "Config exists" || echo "No config"

設定ファイルが存在する場合は、現在の内容を表示して、ユーザーに次のいずれかを尋ねます。

  • (A) バックアップして置き換える:cp ~/.config/lazygit/config.yml ~/.config/lazygit/config.yml.backup.$(date +%s) を実行してから、新しい設定を書き込みます
  • (B) スキップする:既存の設定を保持します
  • (C) 差分を表示してマージする:差分を表示し、セクションごとにユーザーに判断してもらいます

書き込み後、lazygit で YAML を解析できることを確認します。

lazygit -c ~/.config/lazygit/config.yml --version && echo "lazygit config OK" || echo "lazygit config may have issues"

lazygit がまだ利用できない場合は、次のコマンドで YAML の構文を確認します。

python3 -c "import yaml; yaml.safe_load(open('$HOME/.config/lazygit/config.yml'))" && echo "YAML syntax OK" || echo "YAML syntax error"
ステップ 9:yazi を設定する

references/yazi-config.md の設定テンプレートをすべて読み込みます。

書き込む前に、設定ファイルがすでに存在するか確認します。

mkdir -p ~/.config/yazi
ls ~/.config/yazi/yazi.toml 2>/dev/null && echo "Config exists" || echo "No config"

設定ファイルが存在する場合は、現在の内容を表示して、ユーザーに次のいずれかを尋ねます。

  • (A) バックアップして置き換える:cp ~/.config/yazi/yazi.toml ~/.config/yazi/yazi.toml.backup.$(date +%s) を実行してから、新しい設定を書き込みます
  • (B) スキップする:既存の設定を保持します
  • (C) 差分を表示してマージする:差分を表示し、セクションごとにユーザーに判断してもらいます

書き込み後、TOML を解析できることを確認します。

python3 -c "import tomllib; tomllib.load(open('$HOME/.config/yazi/yazi.toml', 'rb'))" && echo "yazi config OK" || echo "TOML syntax error"
ステップ 10:Neovim + LazyVim をインストールする

nvim の設定がすでに存在するか確認します。

ls ~/.config/nvim/init.lua 2>/dev/null && echo "Nvim config exists" || echo "No config"

設定が存在する場合は、ユーザーに次のいずれかを尋ねます。

  • (A) バックアップして置き換える:cp -r ~/.config/nvim ~/.config/nvim.backup.$(date +%s) を実行してから、新しい設定をクローンします
  • (B) スキップする:既存の Neovim の設定を保持します

既存の設定がない場合(またはユーザーが A を選んだ場合)は、クローンに失敗しても既存の設定が失われないよう、まず一時ディレクトリにクローンします。

NVIM_TMP=$(mktemp -d)
git clone https://github.com/LazyVim/starter "$NVIM_TMP/nvim" && rm -rf "$NVIM_TMP/nvim/.git"

クローンが成功した場合にのみ、設定を置き換えます。

rm -rf ~/.config/nvim
mv "$NVIM_TMP/nvim" ~/.config/nvim
rm -rf "$NVIM_TMP"

クローンに失敗した場合は、既存の設定(またはバックアップ)がそのまま残っていることをユーザーに伝え、ネットワークが利用可能になってから再試行するよう案内します。

初めて nvim を開くときは、LazyVim がすべてのプラグインを自動インストールするため、約 30 秒待つようユーザーに伝えてください。

ステップ 11:Ghostty をデフォルトのターミナルに設定する(任意)

Finder の「ターミナルで開く」で、現在のデフォルトターミナルを Ghostty に置き換えるかどうか、ユーザーに尋ねます。

希望する場合は、references/set-default-terminal.md の Swift ヘルパーを読み込んで実行します。

ステップ 12:検証と確認

最終確認を実行します。

echo "=== Tool Versions ==="
for cmd in fish yazi lazygit nvim fzf zoxide atuin fd rg bat delta; do
  printf "%-10s: " "$cmd"
  $cmd --version 2>&1 | head -1
done

echo ""
echo "=== Ghostty Config ==="
ghostty +validate-config 2>&1 || echo "Config OK (no output = no errors)"

echo ""
echo "=== Fish Shell ==="
fish -c "echo Fish is working"

インストールおよび設定した項目の概要と、以下のクイックリファレンスをユーザーに提示します。

クイックリファレンス

エイリアスコマンド
yyazi(ファイルマネージャー)
yy終了時に cd する yazi
lglazygit
vnvim
ccclaude
z <keyword>zoxide のスマートな cd
Ghostty ショートカットアクション
Cmd+D垂直分割
Cmd+Shift+D水平分割
Cmd+Alt+Arrow分割間を移動
Ctrl+`クイックターミナル(グローバル)
Fish キーアクション
Tab自動提案を確定
Alt+Tab1 語を確定
→補完メニュー
Ctrl+R履歴を検索(atuin)

復旧/ロールバック

新しい設定によって問題が発生した場合は、Terminal.app(macOS に標準搭載されており、いつでも使用できます)を開き、適切な修正コマンドを実行してください。

問題修正方法
Ghostty が起動しない、または正しく描画されないmv ~/.config/ghostty/config ~/.config/ghostty/config.broken — 次回起動時、Ghostty はデフォルト設定を使用します
Fish シェルの起動時に問題が発生するmv ~/.config/fish/config.fish ~/.config/fish/config.fish.broken — Fish はカスタム設定を読み込まずに起動します
Fish をログインシェルとして使うのをやめたいchsh -s /bin/zsh
/etc/shells から Fish を削除したい`sudo sed -i '' '|/fish$
lazygit または yazi に問題がある設定ファイル(~/.config/lazygit/config.yml または ~/.config/yazi/yazi.toml)を削除します — ツールはデフォルト設定に戻ります
Neovim/LazyVim に問題があるrm -rf ~/.config/nvim — バックアップがある場合は、cp -r ~/.config/nvim.backup.<timestamp> ~/.config/nvim を実行します
.backup.<timestamp> が付いた設定ファイルバックアップしたバージョンを復元するには、cp <file>.backup.<timestamp> <file> を実行します

トラブルシューティング

テーマ名では、大文字・小文字とスペースを正確に指定する必要があります:

  • 誤り:rose-pine、tokyo-night
  • 正しい例:Rose Pine、TokyoNight Storm
  • 利用可能なテーマの一覧:ghostty +list-themes
  • 設定の検証:ghostty +validate-config

Cmd+V で Claude Code に画像を貼り付けられない(Ghostty のバグ、Discussion #10117):

  • 代わりに Ctrl+V を使用するか、画像ファイルをドラッグ&ドロップします

Fish のキー割り当て構文は Zsh と異なります:

  • 誤り:bind -k right complete(-k は zsh の構文です)
  • 正しい例:bind right complete
  • エスケープシーケンスを直接上書きする方法:bind \e\[C complete

中国語のテキストが大きすぎる、またはずれて表示される:

  • CJK フォントを font-family の先頭に追加します
  • adjust-cell-height = 20% を設定します

利用可能なフォントの一覧:ghostty +list-fonts

利用可能なテーマの一覧:ghostty +list-themes

コメント