0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Zellij + Yazi + Claude Code + Lazygit で作る 3ペインターミナル開発環境【2026年版】

Posted at

「ターミナルだけで開発なんて、IDEがないと不便でしょ」と思っていた時期が私にもありました。

ある日、Xで「Zellij + Yazi + Claude Code + Lazygit」という構成を紹介した投稿を見かけて、そのスクリーンショットに一目惚れしました。ファイラー、AIアシスタント、Git操作がすべてターミナル上で完結している美しいレイアウト。これは試してみるしかない!

そんなわけで、投稿を参考に自分の環境で再現してみたところ...想像以上に快適でした。この記事では、私が構築した開発環境のセットアップ方法を、ターミナル操作に不慣れな方にも分かりやすく解説します。

完成形のイメージ

今回構築する開発環境の画面構成はこちらです。

┌─────────────────────────┬─────────────────────────┐
│                         │                         │
│         Yazi            │      Claude Code        │
│      ファイラー          │         (60%)           │
│        (50%)            │                         │
│                         ├─────────────────────────┤
│                         │                         │
│                         │       Lazygit           │
│                         │         (40%)           │
│                         │                         │
└─────────────────────────┴─────────────────────────┘

左半分でファイルを探して、右上でClaude Codeと対話しながらコーディング、右下でGit操作。この3つがすべてターミナル内で完結します。

対象読者

  • ターミナルベースの開発環境に興味がある方
  • Claude Codeを導入したけど、周辺ツールとの連携方法を知りたい方
  • tmuxの代替を探している方
  • Rust製ツールが好きな方

使用ツール紹介

今回使用する4つのツールを紹介します。すべてRust製(Claude Code除く)で、高速かつモダンな設計が特徴です。

ツール バージョン 用途 特徴
Zellij v0.42.0 ターミナルマルチプレクサ tmux代替、レイアウト定義が直感的
Yazi v25.2.7 ファイルマネージャー 超高速、プレビュー機能が優秀
Claude Code 最新 AIコーディングアシスタント ターミナルネイティブなAI
Lazygit 最新 Git TUI Git操作をビジュアルに

選定理由

  • Rust製で統一感: Zellij、Yazi、LazygitはすべてRust製で高速
  • Unix哲学: 各ツールが単一責務を担い、組み合わせて使う設計
  • ターミナルネイティブ: GUIを使わず、すべてがCLI/TUIで完結

準備: ツールのインストール

まずは必要なツールをインストールしましょう。macOSユーザーはHomebrewで一括インストールできます。

Brewfile

以下の内容で Brewfile を作成します(すでに持っている場合は追記)。

# === Terminal Dev Tools ===
# Zellij: ターミナルを分割して複数のペインを管理
brew "zellij"

# Yazi: 超高速なターミナルファイルマネージャー
brew "yazi"

# Lazygit: Git操作をTUIで直感的に
brew "lazygit"

# fzf: あいまい検索(ディレクトリ移動などに使用)
brew "fzf"

# ripgrep: 高速grep(fzfと組み合わせて使用)
brew "ripgrep"

一括インストール

# Brewfileがあるディレクトリで実行
brew bundle

# または個別にインストール
brew install zellij yazi lazygit fzf ripgrep

インストール確認

正しくインストールされたか確認しましょう。

# 各ツールのバージョンを表示
zellij --version    # zellij 0.42.0
yazi --version      # yazi 25.2.7
lazygit --version   # lazygit version=...

Claude Codeについて: Claude Codeは Anthropic の公式CLIツールです。まだインストールしていない場合は、公式サイトからインストールしてください。

Step 1: Zellijの基本設定

Zellijは「ターミナルマルチプレクサ」です。1つのターミナルウィンドウを複数のペインに分割して、それぞれで別のプログラムを実行できます。tmuxと同じ役割ですが、設定がより直感的です。

設定ファイルの作成

まず設定ディレクトリを作成します。

mkdir -p ~/.config/zellij/layouts

次に、~/.config/zellij/config.kdl を作成して以下の内容を記述します。

// Zellij設定ファイル
// Vim風のキーバインドを設定

keybinds {
    // Ctrl+w をペイン操作のプレフィックスに(Vim風)
    shared {
        bind "Ctrl w" { SwitchToMode "Pane"; }
    }

    // Paneモードでh,j,k,lで移動
    pane {
        bind "h" { MoveFocus "Left"; SwitchToMode "Normal"; }
        bind "j" { MoveFocus "Down"; SwitchToMode "Normal"; }
        bind "k" { MoveFocus "Up"; SwitchToMode "Normal"; }
        bind "l" { MoveFocus "Right"; SwitchToMode "Normal"; }

        // 分割もVim風に
        bind "v" { NewPane "Right"; SwitchToMode "Normal"; }
        bind "s" { NewPane "Down"; SwitchToMode "Normal"; }

        // ペインを閉じる
        bind "q" { CloseFocus; SwitchToMode "Normal"; }

        // キャンセル
        bind "Esc" { SwitchToMode "Normal"; }
    }
}

キーバインド一覧

この設定で使えるキーバインドをまとめました。

キー 動作
Ctrl+w h 左のペインに移動
Ctrl+w j 下のペインに移動
Ctrl+w k 上のペインに移動
Ctrl+w l 右のペインに移動
Ctrl+w v 右に分割(vertical)
Ctrl+w s 下に分割(split)
Ctrl+w q ペインを閉じる

Vimユーザーにはお馴染みの Ctrl+w プレフィックスです。Vimと同じ感覚でペイン間を移動できます。

Step 2: 開発用レイアウトファイルの作成

Zellijの強力な機能の1つが「レイアウト定義」です。KDL(Kubernetes Definition Language)形式でペイン構成を定義しておくと、コマンド一発で複数のツールを起動できます。

レイアウトファイルの作成

~/.config/zellij/layouts/dev.kdl を作成して以下の内容を記述します。

// 開発用レイアウト
// 使い方: cd ~/project/xxx && zellij --layout dev
layout {
    // cwd を起動時のディレクトリに設定
    // 空文字列にすると、zellij起動時のカレントディレクトリを使用
    cwd ""

    pane split_direction="vertical" {
        // 左: Yazi ファイラー (50%)
        pane size="50%" {
            command "yazi"
            args "."
        }
        // 右: Claude Code + Lazygit (50%)
        pane size="50%" split_direction="horizontal" {
            // 右上: Claude Code (60%)
            // focus=true で起動時にこのペインにフォーカス
            pane size="60%" focus=true {
                command "claude"
            }
            // 右下: Lazygit (40%)
            pane size="40%" {
                command "lazygit"
            }
        }
    }
}

設定項目の解説

設定項目 説明
cwd "" 起動時のカレントディレクトリをそのまま使用
split_direction vertical(左右分割)or horizontal(上下分割)
size ペインのサイズをパーセントで指定
focus=true 起動時にこのペインにフォーカスを当てる
command ペインで実行するコマンド
args コマンドの引数

図解: ペイン構成

┌─────────────────────────┬─────────────────────────┐
│                         │                         │
│    pane (50%)           │   pane (60%) [focus]    │
│    command: yazi        │   command: claude       │
│    args: "."            │                         │
│                         ├─────────────────────────┤
│                         │                         │
│                         │   pane (40%)            │
│                         │   command: lazygit      │
│                         │                         │
└─────────────────────────┴─────────────────────────┘

Step 2.5: 4ペインレイアウト(おまけ)

複数のタスクを並列で進めたいとき用に、4つのClaude Codeを2x2グリッドで起動するレイアウトも用意しました。

画面構成

┌─────────────────┬─────────────────┐
│  Claude Code    │  Claude Code    │
│   (フォーカス)    │                 │
├─────────────────┼─────────────────┤
│  Claude Code    │  Claude Code    │
│                 │                 │
└─────────────────┴─────────────────┘

レイアウトファイル

~/.config/zellij/layouts/quad.kdl を作成して以下の内容を記述します。

// 4ペインClaude Codeレイアウト
// 使い方: zellij --layout quad
// エイリアス: cc4
layout {
    // cwd を起動時のディレクトリに設定
    cwd ""

    pane split_direction="horizontal" {
        // 上段 (50%)
        pane size="50%" split_direction="vertical" {
            // 左上: Claude Code
            pane size="50%" focus=true {
                command "claude"
            }
            // 右上: Claude Code
            pane size="50%" {
                command "claude"
            }
        }
        // 下段 (50%)
        pane size="50%" split_direction="vertical" {
            // 左下: Claude Code
            pane size="50%" {
                command "claude"
            }
            // 右下: Claude Code
            pane size="50%" {
                command "claude"
            }
        }
    }
}

用途

  • 複数のClaude Codeを同時起動して並列作業
  • 異なるプロジェクトやタスクを同時に進行
  • コードレビューと実装を同時に行う

Step 3: Yaziの設定

YaziはRust製の超高速ファイルマネージャーです。デフォルトでも使いやすいですが、少しカスタマイズするとさらに快適になります。

設定ファイルの作成

mkdir -p ~/.config/yazi

~/.config/yazi/yazi.toml を作成して以下の内容を記述します。

# Yazi設定ファイル
# レイアウト設定
# ratio = [親ディレクトリ, カレント, プレビュー]
# 親を0にすると非表示(VSCode風の2カラムレイアウト)
[mgr]
ratio = [0, 1, 2]
show_hidden = true

設定の意味

設定項目 説明
ratio = [0, 1, 2] 親ディレクトリ非表示、カレント:プレビュー = 1:2
show_hidden = true .zshrc などの隠しファイルを常に表示

デフォルトのYaziは3カラム(親・カレント・プレビュー)ですが、この設定で2カラムになりプレビューが広くなります。

Yaziの便利なキーバインド

Yaziはデフォルトでも便利なキーバインドが揃っています。

キー 動作
. 隠しファイル表示切り替え
h 親ディレクトリへ
l / Enter ディレクトリに入る / ファイルを開く
j / k 上下移動
y ヤンク(コピー)
p ペースト
d 削除
r リネーム
Space 選択
/ 検索
z fzfでディレクトリ移動

特に z キーが便利です。fzfと連携して、どこからでも目的のディレクトリにジャンプできます。

Step 4: シェル統合設定

最後に、シェルの設定を行います。.zshrc に以下を追加してください。

# === Terminal Dev Tools ===

# yazi: シェル統合(終了時にカレントディレクトリを変更)
# Yaziで移動したディレクトリを、終了後もシェルに反映させる
function y() {
  local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd
  yazi "$@" --cwd-file="$tmp"
  if cwd="$(command cat -- "$tmp")" && [ -n "$cwd" ] && [ "$cwd" != "$PWD" ]; then
    builtin cd -- "$cwd"
  fi
  rm -f -- "$tmp"
}

# lazygit: エイリアス(短縮コマンド)
alias lg="lazygit"

# zellij: 開発レイアウトで起動
alias zdev="zellij --layout dev"
alias cc4="zellij --layout quad"

# fzf + ripgrep: 検索設定
# fzfのデフォルト検索にripgrepを使用(.gitを除外、隠しファイルは含む)
export FZF_DEFAULT_COMMAND='rg --files --hidden --glob "!.git"'
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
alias ff='fzf --preview "cat {}"'

# fzf: キーバインド設定(fzf installで生成)
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh

エイリアス一覧

エイリアス 展開 用途
y yazi関数 ファイラー起動(終了後にcdも反映)
lg lazygit Git操作
zdev zellij --layout dev 3ペイン開発環境起動
cc4 zellij --layout quad 4ペインClaude Code起動
ff fzf --preview "cat {}" プレビュー付きファジー検索

設定を反映

source ~/.zshrc

実際に使ってみる

設定が完了したら、実際に使ってみましょう。

zdevコマンドでの起動

# プロジェクトディレクトリに移動して開発環境を起動
cd ~/project/my-project && zdev

たったこれだけで、Yazi + Claude Code + Lazygitの3ペイン構成が起動します!

基本的な操作フロー

  1. 左ペイン(Yazi): ファイルを探して確認
  2. 右上ペイン(Claude Code): AIにコーディングを依頼
  3. 右下ペイン(Lazygit): 変更をコミット・プッシュ

ペイン間の移動は Ctrl+w h/j/k/l です。

Zellijの基本操作

キー 動作
Ctrl+w h/j/k/l ペイン移動
Ctrl+nh/l ペインサイズ変更(Resizeモード)
Ctrl+t 新しいタブ
Ctrl+q Zellij終了

セッション管理

Zellijにはセッション機能があり、作業を中断しても後から再開できます。

# 名前付きセッションで起動
zellij --session my-project --layout dev

# セッション一覧
zellij list-sessions

# セッションに再接続
zellij attach my-project

# セッションを終了せずに離脱
# Ctrl+o d(デフォルト)

他のPCへの展開

「この環境を別のMacにも入れたい!」という方向けに、dotfilesとして管理する方法を紹介します。

ディレクトリ構成

dotfiles/
├── .config/
│   ├── zellij/
│   │   ├── config.kdl           # キーバインド設定
│   │   └── layouts/
│   │       ├── dev.kdl          # 開発用レイアウト
│   │       └── quad.kdl         # 4ペインClaude Code
│   └── yazi/
│       └── yazi.toml            # Yaziレイアウト設定
├── .zshrc                        # シェル設定
├── Brewfile                      # Homebrewパッケージ
└── setup.sh                      # セットアップスクリプト

セットアップスクリプト

setup.sh を作成して以下の内容を記述します。

#!/bin/bash
# dotfiles セットアップスクリプト
# 使い方: ./setup.sh

set -e

DOTFILES_DIR="$(cd "$(dirname "$0")" && pwd)"

echo "=== dotfiles セットアップ ==="
echo "dotfiles ディレクトリ: $DOTFILES_DIR"

# シンボリックリンクを作成する関数
link_file() {
    local src="$1"
    local dest="$2"

    # 既存のシンボリックリンクがあれば削除
    if [ -L "$dest" ]; then
        echo "  既存のリンクを削除: $dest"
        rm "$dest"
    # 既存のファイルがあればバックアップ
    elif [ -e "$dest" ]; then
        echo "  バックアップ: $dest -> ${dest}.backup"
        mv "$dest" "${dest}.backup"
    fi

    # 親ディレクトリを作成してリンク
    mkdir -p "$(dirname "$dest")"
    ln -s "$src" "$dest"
    echo "  リンク作成: $dest -> $src"
}

echo ""
echo "=== シェル設定 ==="
link_file "$DOTFILES_DIR/.zshrc" "$HOME/.zshrc"

echo ""
echo "=== Zellij 設定 ==="
link_file "$DOTFILES_DIR/.config/zellij/config.kdl" "$HOME/.config/zellij/config.kdl"
link_file "$DOTFILES_DIR/.config/zellij/layouts/dev.kdl" "$HOME/.config/zellij/layouts/dev.kdl"
link_file "$DOTFILES_DIR/.config/zellij/layouts/quad.kdl" "$HOME/.config/zellij/layouts/quad.kdl"

echo ""
echo "=== Yazi 設定 ==="
link_file "$DOTFILES_DIR/.config/yazi/yazi.toml" "$HOME/.config/yazi/yazi.toml"

echo ""
echo "=== Homebrew パッケージ ==="
if command -v brew &> /dev/null; then
    echo "  brew bundle でパッケージをインストール..."
    brew bundle --file="$DOTFILES_DIR/Brewfile"
else
    echo "  Homebrew がインストールされていません。先にインストールしてください:"
    echo "  /bin/bash -c \"\$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\""
fi

echo ""
echo "=== セットアップ完了 ==="
echo "シェルを再起動してください: source ~/.zshrc"

セットアップ手順

別のPCでこの環境を再現する手順です。

# 1. リポジトリをクローン
git clone git@github.com:yourname/dotfiles.git ~/project/dotfiles

# 2. セットアップ実行
cd ~/project/dotfiles
chmod +x setup.sh
./setup.sh

# 3. シェル再起動
source ~/.zshrc

# 4. fzfのキーバインド設定(初回のみ)
$(brew --prefix)/opt/fzf/install

まとめ

この構成のメリット

  • 起動が一瞬: zdev コマンドで3つのツールが同時起動
  • Rust製で統一: 高速でリソース消費が少ない
  • カスタマイズ性: レイアウトを自由に定義できる
  • 再現性: dotfilesで管理すればどこでも同じ環境

この記事で紹介した設定ファイル

ファイル 役割
~/.config/zellij/config.kdl Zellijキーバインド
~/.config/zellij/layouts/dev.kdl 3ペインレイアウト
~/.config/zellij/layouts/quad.kdl 4ペインレイアウト
~/.config/yazi/yazi.toml Yaziレイアウト
~/.zshrc シェル設定・エイリアス

参考リンク

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?