ターミナル作業を変えるZellijの正体

Zellijは、Rust言語で開発されたオープンソースのターミナルマルチプレクサです。1つのターミナルウィンドウを複数のペインやタブに分割し、それぞれで独立したシェルを操作できます。

「Zellij(ゼリージュ)」という名前は、モロッコなど北アフリカの建築に見られるモザイクタイル装飾に由来しています。個々のタイルを組み合わせて幾何学模様を作る伝統工芸のように、ターミナル上で複数のペインを自在に配置する様子を表現しています(出典: GitHub README)。

公式は「A terminal workspace with batteries included(バッテリー同梱のターミナルワークスペース)」を掲げており、初期設定なしで使い始められる点を最大の特徴としています(出典: Zellij公式サイト)。

GitHubのStar数は29,100を超え、167名以上のコントリビューターが参加するアクティブなプロジェクトです(出典: GitHub)。コードの99.4%がRustで記述されており、MITライセンスの下で公開されています。

Zellijが解決する3つの課題

ターミナルマルチプレクサを使わない場合、開発者は次のような問題に直面します。

  • SSH接続の断絶でプロセスが終了する: サーバー上で長時間実行するタスクが、ネットワーク切断と同時に消える
  • ターミナルウィンドウの増殖: エディタ用、ビルド用、ログ監視用…と複数のウィンドウを行き来する手間が発生する
  • 作業環境の再構築コスト: PCを再起動するたびにペイン配置やディレクトリ移動をやり直す必要がある

Zellijはセッション管理・ペイン分割・レイアウト保存の3機能でこれらを解消します。

Zellij・tmux・GNU Screen — ターミナルマルチプレクサ3種の比較

ターミナルマルチプレクサにはZellij以外にもtmuxやGNU Screenが存在します。選択の判断材料として、技術的な違いを整理します。

観点ZellijtmuxGNU Screen
実装言語RustCC
初回リリース2021年2007年1987年
設定ファイル形式KDL独自(.tmux.conf)独自(.screenrc)
初期設定の要否不要(即座に利用可)実用にはカスタマイズが必要実用にはカスタマイズが必要
キーバインド表示画面下部に常時表示表示なし(暗記が必要)表示なし
プラグイン機構WebAssembly(WASM)なし(外部スクリプト連携)なし
フローティングペイン標準搭載tmux 3.3以降でポップアップ対応非対応
レイアウト定義ファイルKDL形式で宣言的に定義シェルスクリプトで手続き的に記述限定的
セッション共有マルチプレイヤーモードソケット共有で可能マルチユーザーモードで可能
Webクライアントv0.43で搭載(ブラウザからアクセス)非対応非対応
ライセンスMITISCGPL-3.0

tmuxからの乗り換えを検討すべきケース

tmuxを長年使っているユーザーにとって、乗り換えコストは無視できません。次のいずれかに当てはまる場合に移行メリットが大きくなります。

  • プラグインによる機能拡張を重視する(WASM対応の拡張性)
  • チーム開発でターミナルセッションを共有したい(Webクライアント対応)
  • 設定ファイルの可読性を高めたい(KDL形式)
  • 新しいキーバインドを覚える手間を減らしたい(画面ヒント表示)

一方で、既存のtmux設定が大量にある場合やtmuxプラグインエコシステム(TPM等)に依存している場合は、並行運用から始めるのが安全です。Zellijにはtmuxモード(Ctrl+B)が用意されており、tmuxの操作体系をそのまま使うこともできます。

OS別セットアップ手順

Zellijは現在Linux・macOS・Windows(WSL経由)に対応しています。ネイティブWindowsサポートは開発中です(出典: GitHub Issues)。

macOS

# Homebrewでインストール
brew install zellij

Linux(Ubuntu / Debian / その他)

# 公式インストールスクリプト(推奨)
bash <(curl -L zellij.dev/launch)

Arch Linux

sudo pacman -S zellij

Rust Cargo経由(全OS共通)

cargo install zellij

Rustツールチェーンが既にインストール済みの環境であれば、この方法が最もシンプルです。

Windows(WSL2経由)

Windows上ではWSL2内のLinux環境にインストールします。

# WSL2内で実行
bash <(curl -L zellij.dev/launch)

インストール確認

zellij --version
# 出力例: zellij 0.43.1

2026年2月時点の最新安定版はv0.43.1(2025年8月8日リリース)です(出典: GitHub Releases)。

モード切替とキーバインドの仕組み

Zellijの操作体系は「モードシステム」に基づいています。tmuxがプレフィックスキー(Ctrl+B)のあとにコマンドキーを入力する方式なのに対し、Zellijは操作対象ごとにモードを切り替える方式です。

主要モード一覧

モード切替キー用途
Normalデフォルト通常のシェル操作
PaneCtrl+Pペインの分割・移動・閉じる
TabCtrl+Tタブの作成・移動・名前変更
ResizeCtrl+Nペインサイズの調整
SessionCtrl+Oセッションのデタッチ・管理
ScrollCtrl+Sスクロールバック・検索
LockCtrl+GZellijのキーバインドを無効化
TmuxCtrl+Btmux互換操作

モード切替後のキーバインドは画面下部のステータスバーに表示されるため、暗記不要で操作できます。

操作の流れ

ペインを水平分割する場合の操作例です。

Ctrl+P → D
  1. Ctrl+P でPaneモードに入る
  2. D で下方向にペインを分割
  3. 自動的にNormalモードに戻る

Normalモードへの復帰は Esc キーでも可能です。

ペイン・タブ・セッション操作の早見表

ペイン操作(Paneモード: Ctrl+P

キー操作内容
D下方向に分割
R右方向に分割
X現在のペインを閉じる
Fフルスクリーン切替
Wフローティングペイン切替
E埋め込み/フローティング切替
Cペイン名を変更
矢印キーフォーカス移動

タブ操作(Tabモード: Ctrl+T

キー操作内容
N新規タブ作成
X現在のタブを閉じる
Rタブ名を変更
矢印キー / 数字タブ切替
Tab次のタブに移動

セッション操作(Sessionモード: Ctrl+O

キー操作内容
Dセッションをデタッチ
Wセッションマネージャを開く

セッション管理コマンド

# 新規セッション作成(名前付き)
zellij -s my-project

# セッション一覧
zellij ls

# 既存セッションにアタッチ
zellij attach my-project

# セッション削除
zellij kill-session my-project

# 全セッション削除
zellij delete-all-sessions

config.kdlで自分好みの環境をつくる

Zellijの設定ファイルはKDL(KDL Document Language)形式で記述します。設定ファイルの場所は以下の通りです。

~/.config/zellij/config.kdl

デフォルト設定を出力して編集のベースにできます。

zellij setup --dump-config > ~/.config/zellij/config.kdl

設定例:テーマ・マウス・コピーコマンドの変更

// テーマ設定
theme "dracula"

// マウス操作を有効化
mouse_mode true

// コピーコマンドの指定(Linux)
copy_command "xclip -selection clipboard"

// コピーコマンドの指定(macOS)
// copy_command "pbcopy"

// ペインのフレームを非表示にしてスペースを節約
pane_frames false

// スクロールバックのバッファ行数
scroll_buffer_size 50000

キーバインドのカスタマイズ

keybinds {
    // Normalモードのキーバインドを追加
    normal {
        // Alt+矢印キーでペイン間を移動
        bind "Alt Left" { MoveFocus "left"; }
        bind "Alt Right" { MoveFocus "right"; }
        bind "Alt Up" { MoveFocus "up"; }
        bind "Alt Down" { MoveFocus "down"; }
    }
}

テーマの変更

Zellijには多数のビルトインテーマが用意されています。人気のテーマとして「dracula」「catppuccin」「nord」「gruvbox」などがあります。

# 利用可能なテーマ一覧は公式ドキュメント参照
# https://zellij.dev/documentation/themes

テーマの自作も可能で、themes ブロック内で色を定義します。

themes {
    my-theme {
        fg "#D8DEE9"
        bg "#2E3440"
        black "#3B4252"
        red "#BF616A"
        green "#A3BE8C"
        yellow "#EBCB8B"
        blue "#81A1C1"
        magenta "#B48EAD"
        cyan "#88C0D0"
        white "#E5E9F0"
        orange "#D08770"
    }
}

KDLレイアウトファイルでワークスペースを一発起動

レイアウト機能を使うと、ペイン配置・実行コマンド・作業ディレクトリをファイルに定義し、毎回同じ開発環境を再現できます。

レイアウトファイルの保存先

~/.config/zellij/layouts/

Web開発用レイアウトの例

// ~/.config/zellij/layouts/webdev.kdl
layout {
    tab name="editor" focus=true {
        pane command="nvim" size="70%"
        pane split_direction="vertical" size="30%" {
            pane command="npm" {
                args "run" "dev"
            }
            pane command="npm" {
                args "run" "test" "--" "--watch"
            }
        }
    }
    tab name="git" {
        pane command="lazygit"
    }
    tab name="logs" {
        pane command="tail" {
            args "-f" "logs/app.log"
        }
    }
}

レイアウトの起動

zellij --layout webdev

プロジェクトごとにレイアウトファイルを用意しておけば、1コマンドでエディタ・開発サーバー・テストランナー・ログ監視を立ち上げられます。

WASMプラグインで機能を拡張する

Zellijのプラグインシステムは、WebAssembly(WASM)ランタイム上で動作します。プラグインはサンドボックス内で実行されるため、ホストシステムへの影響を最小限に抑えつつ機能を追加できます。

組み込みプラグイン

Zellijには以下のプラグインが標準搭載されています。

プラグイン名機能
tab-bar画面上部のタブバー表示
status-bar画面下部のステータスバー・キーバインドヒント
compact-barタブバーとステータスバーを1行にまとめた表示
striderファイルブラウザ(ペイン内でディレクトリを閲覧)
session-managerセッション一覧・切替のUI
filepickerファイル選択ダイアログ

サードパーティプラグインの導入

レイアウトファイル内でプラグインのURLまたはパスを指定できます。

layout {
    pane {
        plugin location="https://example.com/my-plugin.wasm"
    }
}

コミュニティが開発したプラグインはawesome-zellijリポジトリにまとめられています。zjstatusによるカスタムステータスバーや、room(セッション切替強化)などが人気です。

プラグイン開発

プラグイン開発で現在公式サポートされている言語はRustのみです。公式が zellij-tile クレートを提供しており、イベントハンドラの実装だけでプラグインを作成できます。他のWASI対応言語での開発はコミュニティベースで進行中で、将来的に対応が拡大する予定です(出典: 公式プラグインドキュメント)。

Claude Codeユーザーが知っておくべきZellij活用術

AnthropicのCLIツールであるClaude Codeをターミナルで使う場合、Zellijとの組み合わせが効果的です。

複数セッションの並行管理

Claude Codeを複数プロジェクトで同時に走らせたい場合、Zellijのタブやペインで各セッションを分離できます。例えば、あるタブでフロントエンドのコード生成を指示しながら、別のタブでバックエンドの実装を進行させる使い方です。

# プロジェクトA用のペインで
claude

# 別のペインに移動して(Ctrl+P → 矢印キー)
cd /path/to/project-b
claude

zjstatusによるClaude Code監視

claude-code-zellij-statusプラグインを使うと、各ペインでのClaude Codeの動作状態(実行中・待機中・完了)をステータスバーにリアルタイム表示できます。

SSHリモート開発での活用

SSH先のサーバーにZellijをインストールしておけば、Claude Codeのセッションを切断しても作業が継続します。再接続時は zellij attach で復帰可能です。

# リモートサーバーに接続
ssh dev-server

# Zellijセッションを開始
zellij -s claude-work

# Claude Codeを起動
claude

# 切断してもセッションは維持される
# 再接続後:
zellij attach claude-work

v0.43のWebクライアント — ブラウザからセッション共有

v0.43.0(2025年8月リリース)で追加されたWebクライアント機能により、ターミナルセッションをブラウザから直接操作できるようになりました(出典: Zellij公式ブログ)。

主な特徴

  • 既存のターミナルセッションをWebブラウザで共有可能
  • 各クライアントが独立したカーソルを持つマルチプレイヤー対応
  • 認証とHTTPS通信を標準搭載(セキュリティ対策済み)
  • 明示的な操作や設定がなければサーバーは起動しない(オプトイン方式)

ユースケース

  • ペアプログラミング時に相手にブラウザURLを共有するだけでターミナルを見せられる
  • スマートフォンやタブレットからリモートサーバーのターミナルを確認
  • CI/CDのビルド状況をチームメンバーがブラウザ上でリアルタイム監視

その他v0.43の改良点

  • 複数ペインの一括操作(Alt+左クリックで複数ペインを選択し、まとめてスタック化やタブ分離が可能)
  • 非同期レンダリングエンジンの導入による体感速度の向上
  • ハイパーリンクの行折り返し対応改善(OSC 8の活用)
  • スタックペインを直接開く操作の追加(Ctrl+P → S

よくあるエラーと解決の手引き

Zellijが起動しない

# 古いセッションが残っている可能性あり
zellij delete-all-sessions

# ソケットファイルをクリア
rm -rf /tmp/zellij-*

Neovimやエディタとキーバインドが衝突する

ZellijとNeovimはどちらもCtrlキーを多用するため、操作が競合します。対処法は3つあります。

  1. Lockモード(Ctrl+G)を活用: Lockモードに入るとZellijのキーバインドが全て無効化され、エディタに全キーが渡ります。解除は再度Ctrl+G
  2. tmuxモードに切替: Ctrl+Bをプレフィックスとするtmux互換操作に統一
  3. config.kdlでキーバインドを変更: 競合するキーを別のキーに割り当て

日本語表示が崩れる

ターミナルエミュレータ側のフォント設定が原因であることが多いです。

  • Nerd Fontなどの等幅フォントに変更
  • ターミナルエミュレータの文字幅設定を確認(「東アジアの文字幅」を「全角」に設定)

マウスが反応しない

// config.kdl に追加
mouse_mode true

セッションが残り続ける

# 不要なセッションを削除
zellij kill-session <セッション名>

# 全セッションを削除
zellij delete-all-sessions

導入判断のポイント

Zellijは「設定なしで即座に生産性を上げたいユーザー」に最適なターミナルマルチプレクサです。画面下部のキーバインドヒント、KDLによる宣言的な設定、WASMプラグインによる拡張性は、tmuxやGNU Screenにはない独自の優位点です。

v0.43で搭載されたWebクライアント機能は、リモートワーク時代のペアプログラミングやチーム開発に新しい選択肢を提供します。

一方で、tmuxの成熟したエコシステム(TPM、大量のプラグイン、豊富なStack Overflow回答)を手放すかどうかは、個人やチームの技術スタックに依存します。まずは bash <(curl -L zellij.dev/launch) でインストール不要のお試し起動を行い、操作感を確かめるのが効率的です。

公式サイト: https://zellij.dev/ GitHubリポジトリ: https://github.com/zellij-org/zellij