Ghostty + Claude Codeで作るVSCode風・軽量ターミナル開発環境(alias編)
ご注意
本記事の内容はmacOS + Ghostty環境での動作を前提としています。ターミナルの種類やマシンスペック、OSのバージョンによってはうまく動作しない場合があります。また、私自身の理解が間違っている部分もあるかもしれません。「ここ違うよ」「こうした方がいいよ」などありましたら、ぜひコメントで教えていただけると嬉しいです!
きっかけ
先日、こちらの記事を拝見しました。
GhosttyのペインでVSCode風の開発環境を再現するという内容で、FileTree、keifu、zellijを組み合わせた構成が紹介されていました。
早速試してみましたが、いくつかの問題に直面しました。
zellijとGhosttyの相性問題
記事ではzellijを使ってセッション管理をしていましたが、私の環境ではうまくいきませんでした。
問題点:
- Ghosttyで設定していた
Cmd+D(右に分割)やCmd+Shift+D(下に分割)が効かない -
Cmd+{/Cmd+}でのペイン移動もzellijに奪われる - Ghosttyのネイティブなペイン操作が使えなくなる
zellijは素晴らしいツールですが、Ghosttyの快適なキーバインドを活かしたかった私には合いませんでした。(zellij、Ghosttyへの認識の間違いやもっと良い方法があればご指摘ください🙇)
解決策:aliasで自動化する
そこで考えたのが、zellijを使わずにGhosttyのネイティブ機能だけで完結させる方法です。
ペイン分割とコマンド実行を自動化し、aliasとして登録することで、ワンコマンドで開発環境を構築できるようにしました。
最終的な構成

- 左上: yazi(ファイルマネージャー)
- 左下: keifu(Git履歴)
- 右: Claude Code
使用ツールの紹介
yazi
Rust製の高速なターミナルファイルマネージャーです。元記事ではFileTreeが紹介されていましたが、私の環境では特定のディレクトリで動作しなかったため、yaziを採用しました。
採用理由:
- どのディレクトリでも安定して動作する
- 設定でシンプルな1カラム表示にカスタマイズ可能
- 非同期I/Oで高速
元記事でも「yaziもいいんですけどね、リッチすぎる」と触れられていましたが、ratio = [0, 1, 0] の設定でシンプルなサイドバー的表示にできるので、今のところリッチさを抑えられていると感じています。
keifu
Gitのコミット履歴をツリー表示してくれるTUIツールです。元記事の著者の同僚の方が作成されたとのこと。
特徴:
- 縦長の画面でも見やすいレイアウト
- LazyGitよりシンプルで軽量
- ブランチの状態が一目でわかる
サイドバーとしてコンパクトに使いたい場合に最適です。
Claude Code
Anthropic公式のCLIコーディングツールです。ターミナル上でClaudeと対話しながらコーディングできます。
特徴:
- ターミナルで完結するAIコーディング環境
- ファイルの読み書き、コマンド実行が可能
- VSCodeやCursorより軽量
セットアップ
1. 必要なツールをインストール
# yazi(ファイルマネージャー)
brew install yazi
# keifu(Git履歴ビューア)
cargo install keifu
# Claude Code
npm install -g @anthropic-ai/claude-code
2. Ghosttyのキーバインド設定
~/.config/ghostty/config に以下を追加:
# ペイン分割
keybind = cmd+d=new_split:right
keybind = cmd+shift+d=new_split:down
# ペイン移動
keybind = ctrl+option+h=goto_split:left
keybind = ctrl+option+l=goto_split:right
keybind = ctrl+shift+j=goto_split:down
keybind = ctrl+shift+k=goto_split:up
# ペインリサイズ(40px単位)
keybind = cmd+ctrl+left=resize_split:left,40
keybind = cmd+ctrl+right=resize_split:right,40
keybind = cmd+ctrl+up=resize_split:up,40
keybind = cmd+ctrl+down=resize_split:down,40
注意:
Ctrl+Option+J/Kは私の環境では動作しなかったため、Ctrl+Shift+J/Kに変更しています。環境によってはmacOSや他のアプリと競合する可能性があります。
3. yaziの設定(シンプル表示)
~/.config/yazi/yazi.toml を作成:
[mgr]
ratio = [0, 1, 0]
これで親ディレクトリとプレビューを非表示にし、現在のディレクトリのみ表示されます。
4. tcode コマンドを登録
~/.zshrc に以下を追加:
# Ghosttyターミナル開発レイアウト
# 使い方: tcode [ディレクトリ]
# 左上: yazi, 左下: keifu, 右: claude-code
tcode() {
local target_dir="${1:-$(pwd)}"
local cmd_yazi="cd ${target_dir} && yazi"
local cmd_keifu="cd ${target_dir} && keifu"
local cmd_claude="cd ${target_dir} && claude"
osascript \
-e 'on run argv' \
-e ' set cmd_yazi to item 1 of argv' \
-e ' set cmd_keifu to item 2 of argv' \
-e ' set cmd_claude to item 3 of argv' \
-e ' tell application "Ghostty" to activate' \
-e ' tell application "System Events"' \
-e ' tell process "Ghostty"' \
-e ' keystroke "d" using command down' \
-e ' delay 0.25' \
-e ' key code 4 using {control down, option down}' \
-e ' delay 0.1' \
-e ' set the clipboard to cmd_yazi' \
-e ' keystroke "v" using command down' \
-e ' keystroke return' \
-e ' delay 0.4' \
-e ' keystroke "d" using {command down, shift down}' \
-e ' delay 0.25' \
-e ' set the clipboard to cmd_keifu' \
-e ' keystroke "v" using command down' \
-e ' keystroke return' \
-e ' delay 0.15' \
-e ' key code 37 using {control down, option down}' \
-e ' delay 0.1' \
-e ' set the clipboard to cmd_claude' \
-e ' keystroke "v" using command down' \
-e ' keystroke return' \
-e ' delay 0.2' \
-e ' -- 左ペインを狭くする' \
-e ' key code 4 using {control down, option down}' \
-e ' repeat 25 times' \
-e ' key code 123 using {command down, control down}' \
-e ' end repeat' \
-e ' -- 左上を大きくする' \
-e ' key code 40 using {control down, shift down}' \
-e ' repeat 8 times' \
-e ' key code 125 using {command down, control down}' \
-e ' end repeat' \
-e ' -- 右ペインに戻る' \
-e ' key code 37 using {control down, option down}' \
-e ' end tell' \
-e ' end tell' \
-e 'end run' \
-- "${cmd_yazi}" "${cmd_keifu}" "${cmd_claude}"
}
カスタマイズのポイント
repeat 25 timesの数値で左右の比率を調整できます(大きいほど左が狭くなる)repeat 8 timesの数値で左上・左下の比率を調整できます(大きいほど左上が大きくなる)delayの値はPCのスペックによって調整が必要です。動作が不安定な場合は値を大きくしてください
5. 使い方
source ~/.zshrc
tcode /path/to/your/project
これだけで、3ペイン構成の開発環境が自動的に立ち上がります。
ポイント: 新規ウィンドウを開かず、
tcodeを実行したウィンドウでそのまま分割が始まります。実行元のターミナルがそのまま左上ペイン(yazi)になるため、余分なウィンドウが残りません。
なぜこの方法にしたか
zellijを使わないメリット
-
Ghosttyのキーバインドがそのまま使える:
Cmd+Dでの分割、ペイン間移動など - シンプル: 追加のmultiplexerなしで完結
- 軽量: 余計なプロセスが走らない
yaziを選んだ理由
- 安定動作: どのディレクトリでも動く
-
カスタマイズ性:
ratio = [0, 1, 0]でシンプル表示に - 高速: Rust製で軽量
元記事でも触れられていましたが、yaziはリッチな機能が多いです。ただ、設定でシンプルにできるので、サイドバー的な使い方にも十分対応できます。
ペインサイズの自動調整について
Ghosttyにはデフォルトでペインリサイズのキーバインドが設定されていないため、上記の設定で Cmd+Ctrl+矢印 を追加しています。
tcodeコマンドでは、resize_split を呼び出すことで、ペイン分割後に自動でサイズ調整を行っています。
# 左ペインを狭くする(25回 = 25 × 40px = 1000px分)
repeat 25 times
key code 123 using {command down, control down} -- Cmd+Ctrl+Left
end repeat
この回数は好みに応じて調整してください。私の環境(MacBook Pro 14インチ)では、左右比率を25回、上下比率を8回に設定しています。
おわりに
zellijやFileTreeがうまく動かなくて困っていましたが、結果的にGhosttyのネイティブ機能を活かしたシンプルな構成に落ち着きました。
自動化は少しハマりどころがありましたが(日本語入力が有効だとコマンドが文字化けする、など)、クリップボード経由でペーストする方法で解決できました。
ターミナルベースの軽量開発環境を探している方の参考になれば幸いです。
動作が不安定な場合
delay 値はPCのスペックや負荷状況によって調整が必要です。コマンドが正しく入力されない、ペインの配置がおかしい等の症状が出る場合は、delay の値を大きくしてみてください(例: 0.25 → 0.4)。
逆に、高スペックなマシンでは delay を小さくすることで、より高速に動作させることも可能です。
フィードバック歓迎
記事の内容に誤りや改善点があれば、コメントでお知らせいただけると助かります!
参考リンク
Discussion