ターミナルを複数ペインに分割して同時に操作したいとき、Rust製マルチプレクサ Zellij は設定なしですぐ使える操作ガイドを画面下部に表示してくれます。しかし実際に業務で使い込むと「CLIのサブコマンドが把握しきれない」「モード別のキーバインドを一覧で確認したい」という場面が出てきます。

ここでは Zellij のコマンド体系を CLIサブコマンドモード別キーバインドアクション定義 の3つの軸で整理し、tmux との操作比較やカスタマイズ例まで含めて解説します。

Zellij の概要と基本構造

Zellij は Rust で実装されたターミナルマルチプレクサです。GitHub で 29,000 以上の Star を獲得しており(出典: GitHub)、MIT ライセンスで公開されています。最新の安定版は v0.43.1(2025年8月リリース)です。

tmux や screen と同じ「セッション → タブ → ペイン」の階層構造を持ちますが、以下の点で異なります。

観点Zellijtmux
実装言語RustC
設定形式KDL (.kdl)独自形式 (.tmux.conf)
操作ガイド画面下部にリアルタイム表示なし(暗記前提)
プラグインWebAssembly(WASM)対応なし
フローティングペイン標準搭載tmux 3.3+ で popup
プレフィックスキーモード切替方式Ctrl+b(デフォルト)

CLI サブコマンド一覧

zellij コマンドには以下のサブコマンドがあります。引数なしで実行すると新しいセッションが起動します。

セッション管理

サブコマンド短縮形機能
attach <session-name>a既存セッションに接続
list-sessionsls実行中セッション名の一覧表示
kill-session <target>k指定セッションを終了
kill-all-sessionska全セッションを終了
# セッション一覧の表示
zellij ls

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

# 既存セッションへの再接続
zellij attach my-project

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

セットアップ・設定

サブコマンド機能
setup --dump-configデフォルト設定ファイルを標準出力に出力
setup --dump-layout <name>指定レイアウトファイルを標準出力に出力
setup --generate-completion <shell>シェル補完スクリプトを生成(bash/zsh/fish)
setup --check設定ファイルの構文チェック
setup --cleanデフォルト設定で起動
options起動時の動作オプションを変更
# デフォルト設定の書き出し
zellij setup --dump-config > ~/.config/zellij/config.kdl

# zsh 補完の生成
zellij setup --generate-completion zsh > ~/.zfunc/_zellij

# レイアウト指定で起動
zellij --layout my-layout

zellij run(コマンド実行)

新しいペインでコマンドを直接実行するサブコマンドです。短縮形は zr です。

# フローティングペインでhtopを起動
zellij run -f -- htop

# 下方向のペインでログを監視(終了時にペインを自動で閉じる)
zellij run -d down -c -- tail -f /var/log/syslog

# 名前付きペインでdevサーバーを起動
zellij run -n "dev-server" -- npm run dev
オプション短縮形機能
--close-on-exit-cコマンド終了時にペインを自動で閉じる
--cwd <path>なし作業ディレクトリを指定
--direction <dir>-dペインの配置方向(down/right)
--floating-fフローティングペインとして開く
--height <size>なしペインの高さを指定
--width <size>なしペインの幅を指定
--in-place-i現在のペインを置き換えて実行
--name <name>-nペインに名前を付与
--start-suspended-s中断状態でペインを開く(Enterで実行開始)

zellij action(アクション実行)

実行中のセッションに対して外部からアクションを送信するサブコマンドです。シェルスクリプトやキーバインドカスタマイズから Zellij を操作する際に使います。

# 新しいペインを作成
zellij action new-pane

# 指定番号のタブへ移動
zellij action go-to-tab 3

# ペインにテキストを書き込む
zellij action write-chars "echo hello"

# 現在のレイアウトをダンプ
zellij action dump-layout

主要なアクション一覧:

カテゴリアクション機能
ペインnew-pane新規ペイン作成
ペインclose-paneペインを閉じる
ペインmove-focus <方向>フォーカス移動
ペインmove-pane <方向>ペインの位置移動
ペインtoggle-fullscreenフルスクリーン切替
ペインtoggle-floating-panesフローティング切替
ペインtoggle-pane-embed-or-floating埋め込み/フローティング切替
ペインrename-pane <名前>ペイン名変更
タブnew-tab新規タブ作成
タブclose-tabタブを閉じる
タブgo-to-tab <番号>番号指定でタブ移動
タブgo-to-next-tab次のタブへ移動
タブgo-to-previous-tab前のタブへ移動
タブrename-tab <名前>タブ名変更
スクロールscroll-up / scroll-down上下スクロール
スクロールhalf-page-scroll-up / half-page-scroll-down半ページスクロール
スクロールpage-scroll-up / page-scroll-down1ページスクロール
その他write-chars <文字列>ペインへの文字列入力
その他dump-screen <ファイル>ペイン内容をファイル出力
その他dump-layout現在のレイアウトを出力
その他switch-mode <モード>モード切替
その他edit <ファイル>ファイルをエディタで開く

zellij plugin(プラグイン起動)

プラグインを新しいペインで起動するサブコマンドです。

# ファイルマネージャー(strider)をフローティングで起動
zellij plugin -f -- zellij:strider

# セッションマネージャーを起動
zellij plugin -- zellij:session-manager

# 外部プラグインをURLから読み込み
zellij plugin -- file:/path/to/my-plugin.wasm
オプション短縮形機能
--configuration <設定>-cプラグイン設定を指定
--floating-fフローティングペインとして起動
--in-place-i現在のペインを置き換えて起動
--skip-plugin-cache-sプラグインキャッシュをスキップ
--width <size>なし幅を指定
--height <size>なし高さを指定

グローバルフラグ

全サブコマンドで使用できるフラグです。

フラグ短縮形機能
--help-hヘルプメッセージの表示
--version-Vバージョン情報の表示
--debugなしデバッグ情報の収集
--layout <path>-lレイアウトファイルを指定して起動
--session <name>-sセッション名を付けて起動
--config <path>-c設定ファイルパスを指定
--config-dir <path>なし設定ディレクトリパスを指定

モード体系の全体像

Zellij は モードベース の操作体系を採用しています。vim と同様に、現在のモードによって同じキーが異なる操作にマッピングされます。

利用可能なモード一覧

モードデフォルト切替キー用途
NormalEsc / 各モードから自動復帰通常入力 + クイックアクション
LockedCtrl+gZellij のキーバインドを無効化(Neovim 等との競合回避)
PaneCtrl+pペインの作成・移動・閉じるなど
TabCtrl+tタブの作成・切替・リネームなど
ResizeCtrl+nペインサイズの変更
MoveCtrl+hペイン位置の入れ替え
ScrollCtrl+sスクロール操作・テキスト検索
SearchScroll モード内から遷移テキスト検索
EnterSearch検索文字入力用検索クエリの入力
RenameTabTab モードから遷移タブ名の変更
RenamePanePane モードから遷移ペイン名の変更
SessionCtrl+oセッション管理・デタッチ
TmuxCtrl+btmux 互換操作

Normal モードのクイックアクション

Normal モードではモード切替なしで直接実行できるショートカットがあります。

キー操作
Alt+n新規ペイン(水平方向)
Alt+矢印キー / Alt+h/j/k/lペイン間フォーカス移動
Alt+[/]タブ切替(前/次)
Alt+= / Alt+-ペインサイズの拡大/縮小
Alt+fフローティングペインの表示切替
Alt+i次のレイアウトへスワップ

モード別キーバインド詳細

Pane モード(Ctrl+p)

ペインの作成・分割・移動に関する操作をまとめたモードです。

キー操作
n新規ペイン(デフォルト方向)
d下方向に分割して新規ペイン
r右方向に分割して新規ペイン
xフォーカス中のペインを閉じる
fフルスクリーン切替
wフローティングペイン切替
e埋め込み/フローティング切替
sスタックペイン作成
cペイン名変更
iペインのピン留め切替
矢印キー / h/j/k/lフォーカス移動

Tab モード(Ctrl+t)

タブの管理を行うモードです。

キー操作
n新規タブ作成
x現在のタブを閉じる
rタブ名変更
左右矢印 / h/lタブ切替(前/次)
1-9番号指定でタブ移動
Tab直前のタブへ切替
sタブの同期モード切替
bフォーカス中のペインを新規タブに分離
]ペインを右隣のタブへ分離
[ペインを左隣のタブへ分離

Resize モード(Ctrl+n)

ペインのサイズを変更するモードです。

キー操作
矢印キー / h/j/k/lフォーカス方向にリサイズ(拡大)
H/J/K/L指定方向にリサイズ(縮小)
= / +全体リサイズ拡大
-全体リサイズ縮小

Move モード(Ctrl+h)

ペインの位置を入れ替えるモードです。

キー操作
矢印キー / h/j/k/l指定方向にペインを移動
n / Tab次のペイン位置と入替
p前のペイン位置と入替

Scroll モード(Ctrl+s)

スクロールバッファの操作とテキスト検索を行うモードです。

キー操作
j / Down1行下スクロール
k / Up1行上スクロール
d / Ctrl+d半ページ下スクロール
u / Ctrl+u半ページ上スクロール
f / PageDown1ページ下スクロール
b / PageUp1ページ上スクロール
sテキスト検索モードへ遷移
eデフォルトエディタでバッファを開く

Session モード(Ctrl+o)

セッションの管理やZellijの終了を行うモードです。

キー操作
dセッションをデタッチ(バックグラウンド化)
wセッションマネージャーを開く
c設定画面を開く
pプラグインマネージャーを開く
lレイアウトマネージャーを開く

Locked モード(Ctrl+g)

Zellij のキーバインドをすべて無効化するモードです。Neovim や Helix など、Ctrl キーを多用するエディタとの併用時に便利です。

Ctrl+g を再度押すと Normal モードに復帰します。

Tmux モード(Ctrl+b)

tmux に慣れたユーザー向けの互換モードです。Ctrl+b のプレフィックスキーに続けて操作を入力します。

キー操作tmux 相当
"水平分割Ctrl+b "
%垂直分割Ctrl+b %
xペインを閉じるCtrl+b x
zフルスクリーン切替Ctrl+b z
c新規タブCtrl+b c
,タブ名変更Ctrl+b ,
p / n前/次のタブCtrl+b p/n
dデタッチCtrl+b d
o次のペインへ移動Ctrl+b o

Search モード(Scroll モード内から遷移)

Scroll モードで s を押すと Search モードに入り、テキスト検索が可能です。

キー操作
n次の検索結果へ移動
p前の検索結果へ移動
c大文字小文字の区別を切替
w折り返し検索の切替
o単語全体一致の切替

全モード共通のショートカット(Locked モード除外)

Locked モード以外の全モードで使用できる共通キーバインドです。

キー操作
Ctrl+gLocked モードに切替
Ctrl+qZellij を終了
Alt+fフローティングペインの表示切替
Alt+n新規ペイン作成
Alt+h / Alt+Leftフォーカスを左に移動
Alt+l / Alt+Rightフォーカスを右に移動
Alt+j / Alt+Downフォーカスを下に移動
Alt+k / Alt+Upフォーカスを上に移動
Alt+i / Alt+oタブを左/右に移動
Alt+= / Alt++リサイズ拡大
Alt+-リサイズ縮小
Alt+[ / Alt+]レイアウトを前/次に切替

アクション定義リファレンス

config.kdl でキーバインドに割り当てられるアクションの一覧です。

ペイン操作アクション

アクション引数機能
NewPane方向(Down/Right)新規ペインの作成
CloseFocusなしフォーカス中のペインを閉じる
MoveFocus方向フォーカスの移動
MovePane方向ペインの移動
FocusNextPaneなし次のペインへ移動
FocusPreviousPaneなし前のペインへ移動
ToggleFocusFullscreenなし全画面表示の切替
TogglePaneFramesなしペイン枠の表示/非表示
TogglePaneEmbedOrFloatingなし埋め込み/フローティング切替
ToggleFloatingPanesなしフローティングペイン全体の表示切替
Clearなしスクロールバッファのクリア
DumpScreenファイルパスペイン内容のファイル出力

タブ操作アクション

アクション引数機能
NewTabcwd, name, layout新規タブの作成
CloseTabなし現在のタブを閉じる
GoToTabタブ番号番号指定でタブ移動
GoToNextTabなし次のタブへ移動
GoToPreviousTabなし前のタブへ移動
MoveTabLeft/Rightタブ位置の移動
ToggleTabなし直前のタブに切替

スクロール・検索アクション

アクション引数機能
ScrollUpなし1行上スクロール
ScrollDownなし1行下スクロール
HalfPageScrollUpなし半ページ上スクロール
HalfPageScrollDownなし半ページ下スクロール
PageScrollUpなし1ページ上スクロール
PageScrollDownなし1ページ下スクロール
ScrollToTopなし最上部へ移動
ScrollToBottomなし最下部へ移動

その他のアクション

アクション引数機能
SwitchToModeモード名モード切替
Runコマンド + 引数コマンドの実行
WriteChars文字列ペインへの文字列入力
Detachなしセッションのデタッチ
QuitなしZellij の終了
NextSwapLayoutなし次のスワップレイアウトへ切替
PreviousSwapLayoutなし前のスワップレイアウトへ切替
ToggleMouseModeなしマウスサポートの切替

config.kdl によるキーバインドのカスタマイズ

設定ファイルの場所

~/.config/zellij/config.kdl

デフォルト設定を書き出してから編集する方法が安全です。

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

キーバインド定義の基本文法

keybinds {
    normal {
        bind "Alt n" { NewPane; }
        bind "Alt f" { ToggleFloatingPanes; }
    }
    pane {
        bind "h" "Left" { MoveFocus "Left"; }
        bind "l" "Right" { MoveFocus "Right"; }
        bind "j" "Down" { MoveFocus "Down"; }
        bind "k" "Up" { MoveFocus "Up"; }
    }
}

デフォルト設定の部分上書き

特定のキーだけ変更したい場合は unbind で既存のバインドを解除してから再定義します。

keybinds {
    normal {
        unbind "Alt n"
        bind "Alt t" { NewPane; }
    }
}

全てのデフォルトを消して完全にカスタムで定義する場合は clear-defaults=true を指定します。

keybinds clear-defaults=true {
    normal {
        bind "Alt n" { NewPane; }
        bind "Ctrl g" { SwitchToMode "Locked"; }
    }
}

複数アクションの同時実行

1つのキーに複数のアクションを割り当てられます。

pane {
    bind "f" {
        ToggleFocusFullscreen;
        SwitchToMode "Normal";
    }
}

レイアウト定義ファイルの活用

プロジェクトごとのワークスペース配置を KDL 形式で定義できます。

レイアウトファイルの場所

~/.config/zellij/layouts/

Web 開発向けレイアウト例

layout {
    pane size=1 borderless=true {
        plugin location="tab-bar"
    }
    pane split_direction="vertical" {
        pane name="editor" size="60%" {
            command "nvim"
        }
        pane split_direction="horizontal" {
            pane name="dev-server" {
                command "npm"
                args "run" "dev"
            }
            pane name="terminal"
        }
    }
    pane size=2 borderless=true {
        plugin location="status-bar"
    }
}
# レイアウトを指定して起動
zellij --layout ~/.config/zellij/layouts/web-dev.kdl

tmux から Zellij への移行時の対応表

tmux に慣れているユーザーが Zellij に乗り換える際、操作の対応関係を把握しておくとスムーズです。

操作tmuxZellij (Default)Zellij (Tmux モード)
水平分割Ctrl+b "Ctrl+p → dCtrl+b → "
垂直分割Ctrl+b %Ctrl+p → rCtrl+b → %
ペイン移動Ctrl+b 矢印Alt+矢印Ctrl+b → 矢印
ペインを閉じるCtrl+b xCtrl+p → xCtrl+b → x
新規タブCtrl+b cCtrl+t → nCtrl+b → c
タブ切替Ctrl+b n/pAlt+[ / Alt+]Ctrl+b → n/p
デタッチCtrl+b dCtrl+o → dCtrl+b → d
セッション一覧tmux lszellij lszellij ls
フルスクリーンCtrl+b zCtrl+p → fCtrl+b → z
スクロールCtrl+b [Ctrl+sCtrl+b → [

Neovim・Helix との併用設定

Zellij はデフォルトで Ctrl+p / Ctrl+s / Ctrl+n などのキーバインドを使用するため、Neovim や Helix のショートカットと競合します。

方法1: Locked モードを活用する

エディタ操作中は Ctrl+g で Locked モードに切り替え、Zellij のキーバインドを一時無効化します。エディタから抜けるときに Ctrl+g で復帰します。

方法2: Tmux モードで運用する

プレフィックスキー方式なら通常のキー入力と干渉しません。

keybinds {
    normal {
        bind "Ctrl b" { SwitchToMode "Tmux"; }
    }
}

方法3: unlock-first プリセットを使う

Zellij 0.41 以降では、キーバインドプリセットとして Unlock-First (non-colliding) が用意されています。Ctrl+g でインターフェースをアンロックしてからモードを操作する方式で、エディタとのキー競合を根本的に解消できます。Session モード(Ctrl+o)→ c → TAB で設定画面から切り替え可能です。

プラグインの利用

Zellij は WebAssembly(WASM)ベースのプラグインシステムを搭載しています。

組み込みプラグイン

プラグイン名機能
tab-barタブバーの表示
status-barステータスバー・操作ガイドの表示
striderファイルマネージャー
compact-barタブバーとステータスバーの統合表示
session-managerセッション管理 UI

プラグインの起動方法

レイアウトファイル内で指定するか、Pane モードから起動します。

pane {
    plugin location="strider"
}

よく使う操作パターン集

SSH 接続先でのセッション維持

ssh remote-server
zellij -s work
# 作業中に回線が切れても...
ssh remote-server
zellij attach work
# 作業状態がそのまま復帰

開発サーバー + エディタ + ログ監視の同時表示

# 名前付きセッション起動
zellij -s my-app

# Paneモード(Ctrl+p)で分割
# d: 下に分割 → dev server
# r: 右に分割 → log viewer

複数プロジェクトのセッション管理

# プロジェクトごとにセッション作成
zellij -s project-a
# Ctrl+o → d でデタッチ

zellij -s project-b
# Ctrl+o → d でデタッチ

# セッション一覧で確認
zellij ls

# 特定セッションに復帰
zellij attach project-a

インストール方法

macOS(Homebrew)

brew install zellij

Linux(パッケージマネージャー)

# Ubuntu/Debian(snap)
sudo snap install zellij --classic

# Arch Linux
sudo pacman -S zellij

# Fedora
sudo dnf install zellij

Rust(Cargo)

cargo install --locked zellij

ワンライナーインストール

bash <(curl -L https://zellij.dev/launch)

インストール確認

zellij --version
# zellij 0.43.1

トラブルシューティング

不要なセッションが削除されない場合

zellij ls で残存セッションを確認し、zellij kill-session <name> で個別に削除するか、zellij kill-all-sessions で一括削除します。

キーバインドが効かない

Locked モード(画面上部に LOCKED 表示)になっている可能性があります。Ctrl+g で Normal モードに切り替えてください。

日本語表示が崩れる

UTF-8 対応のターミナルエミュレータ(Alacritty、WezTerm、Ghostty、iTerm2 など)の使用を推奨します。環境変数 LANG=ja_JP.UTF-8 が設定されていることも確認してください。

マウスが効かない

config.kdl に以下を追加します。

mouse_mode true

まとめ

Zellij のコマンド体系は CLI サブコマンド(セッション管理・セットアップ)と モード別キーバインド(Pane/Tab/Resize/Move/Scroll/Session)の2層構造です。tmux のプレフィックスキー方式とは異なり、モード切替方式を採用しているため、操作ガイドが画面に表示される分、学習コストが低くなります。

tmux からの移行時は Tmux モード(Ctrl+b)を使えば既存の操作感を維持しつつ Zellij の追加機能(フローティングペイン・WASM プラグイン・レイアウト定義)を活用できます。

Zellij の全コマンド・オプションは 公式ドキュメント から確認できます。デフォルト設定ファイルは GitHubリポジトリのdefault.kdl で公開されています。