Zellij: 強力で使いやすいターミナルマルチプレクサー
ターミナルマルチプレクサーの世界はそれほど大きくありませんが、あるプロジェクトが32,000以上のスターを獲得しています。tmuxが10年以上も支配してきたことを考えると、新たな挑戦者が現れました。その名はZellij、2020年に始まり、Rustで書かれています。その立ち位置は「電池付きのターミナルワークスペース」です。平たく言えば:箱から出してすぐ使える。設定をいじらなくても作業を開始できます。

正直なところ、私は長い間tmuxを使ってきましたし、確かに強力です。しかし、常に痛みを伴う点がありました:しばらく使わないと、ショートカットを忘れてしまうのです。毎回ドキュメントを見直し、プレフィックスキーのロジックを再学習しなければなりません。Zellijを発見して、ターミナルマルチプレクサーがこれほど便利なものだとはじめて気づきました。

起動時のインターフェースは以下の通りです:
- 上部のタブバーがセッションとタブを表示します。
- 下部のステータスバーにショートカットのヒントが直接表示されます — ペインを分割したいですか?
Alt+nと表示されています。タブを切り替えたいですか?Ctrl+tです。WYSIWYGで、初心者でも数分で使い始められます。

すべてのコア機能があらかじめ設定されています。
01 セッションの自動保存。 ターミナルを閉じるか、システムを再起動すると、自動的にセッションを保存します。デフォルトでは、10秒ごとに状態をディスクに保存します。次回起動時にその状態を読み取り、ワークスペースを最後に閉じた状態に復元します。
02 異なるタスク用の独立したセッションを作成。 多くの人は、フロントエンド作業用とテスト実行用など、複数のタスクを同時にこなすことがよくあります。テストが完了したか確認したいですか?Ctrl+o+wを押してセッションマネージャーを呼び出し、クリックすればそこに移動します。セッションは干渉せず、戻ってきたときにも状態は保持されています。
03 フローティングペイン。 時には画面を分割したくないこともあります。一時的なフローティングペインがこれを解決します。必要な時に呼び出し、使い終わったら閉じれば、通常の作業を中断しません。キーボード愛好家にはショートカットがあります:Ctrl+p+eでペインをフローティングウィンドウにポップアップ、Ctrl+p+iで最前面に固定します。
04 スクロールバックバッファの編集:tmux にはできないこと。 これがおそらく tmux ユーザーが最も羨む機能でしょう — ターミナルのスクロールバックバッファを直接編集します。ターミナルを使ったことがある人なら誰でも、コマンドの出力が長いことがあり、以前のコンテンツをコピーしたり検索したりするには、マウスでぎこちなく上にスクロールするしかないことを知っています。tmux のコピーモードは部分的に解決しますが、体験はあまり良くありません。Zellij の方法:Ctrl+sを押し、次に eを押します。現在のペインのスクロールバッファ全体を、システムのデフォルトエディタ($EDITOR)で開きます。通常のテキストファイルのように検索、コピー、編集ができ、エディタを閉じるとターミナルに戻ります。
05 スタックペイン:複数のペインを積み重ねる。 スタックペインは、複数のペインを同じ場所に垂直に積み重ね、矢印キーで切り替えられます。複数のプロセス(テスト実行、ログ監視、エディタ起動)を同時に監視し、上下キーで切り替えられるので、画面が細かく分割されることはありません。
ペインのサイズ変更も非常に直感的です:Alt++で現在のペインを 30% 拡大、Alt--で縮小。押し続けると連続的にサイズ変更できます。リサイズ用のキーバインドを覚えたり、ピクセル値を手動で入力する必要はありません。
06 コラボレーション:リモートペアプログラミングの神器。 複数のユーザーが同時に同じセッションに接続し、それぞれが独立したカーソルを持ち、相手の操作をリアルタイムで見ることができます。画面共有の遅延に悩まされることなく、二人が同じターミナル内で直接共同作業できます。
07 ブラウザからアクセス可能なターミナル。 内蔵の Web サーバーにより、ブラウザから直接ターミナルセッションにアクセスできます。注:HTTPS の設定と認証トークンが必要です。
08 プラグインシステム:WebAssembly ベース。 WASM にコンパイルできる任意の言語でプラグインを書けます。Rust は一流の SDK サポートがあります。Zellij の内蔵セッションマネージャーやファイルピッカーもプラグインです。.wasmファイルは独立して配布され、メインプログラムを汚染しません。レイアウトシステムと組み合わせることで IDE のような体験を作り出せます — コミュニティの striderレイアウトのように、左側にファイルブラウザ、右側にエディタとコマンドペインです。
09 カスタムレイアウト:ワンクリックでのワークスペース起動。 Rust 開発では次のようなワークスペースが必要かもしれません:左側に src/main.rsを開くエディタ、右側に cargo check、cargo run、cargo test用の3つのペイン。tmux ではシェルスクリプトをたくさん書く必要があります。Zellij は KDL(宣言型言語)をレイアウトファイルに使用します:
kdlkdllayout {
pane split_direction="vertical" {
pane edit="src/main.rs"
pane {
pane command="cargo check"
pane command="cargo run"
pane command="cargo test"
}
}
}
レイアウトファイル(例:rust-layout.kdl)を保存します。次回起動時にこの設定を読み取り、完全なワークスペースを提供します。

もちろん、いくつか注意点があります。
- パフォーマンスに敏感なシナリオ: tmux のセッションは約 6 MB ですが、Zellij は約 80 MB です — 10倍以上大きいです。
- tmux プラグインへの依存: Zellij の一般的な機能はカバーされていますが、特定の tmux プラグインに大きく依存している場合、不便に感じるかもしれません。
- tmux ベテランへの適応期間: 例えば、
Ctrl+tは tmux ではプレフィックスキーですが、Zellij ではタブを切り替えます。最初は間違えやすいです。
ここまで読んで、おそらく多くの友人が試したくてうずうずしていることでしょう。最も簡単な方法は、以下のコマンドをコピーしてインストールすることです:
bashbashbash <(curl -L https://zellij.dev/launch)
オフラインインストーラーもあります。GitHub からプラットフォーム用のプリコンパイル済みバイナリをダウンロードできます。Linux、macOS、Windows で動作します。
最後に
ターミナルツールを弄ってほぼ10年になります。初期の screenから tmux、そして今の Zellij まで。tmux は古典です。極めて安定しており、サーバー上で何年も問題なく動作します。新しい Zellij は新鮮な機能をもたらします。例えば、スクロールバックバッファをエディタで直接編集できることで、効率が大幅に向上します。
ツールとはそういうもので、常に進化し続けます。かつては tmux で十分だと思っていたのに、今ではさらに便利なものを見つけました。おそらく数年後にはまた新たなものが現れて、Zellij を凌駕するかもしれません。しかし、一つ変わらないことがあります:ツールをより良く、より低い参入障壁にする ことです。
コメント欄であなたの考えを聞かせてください。このプロジェクトは MIT ライセンス の下でオープンソースです。興味のある方は、GitHub リポジトリでソースコードとドキュメントを確認できます。
オープンソースアドレス: https://github.com/zellij-org/zellij