Zellijのセッション管理を楽にする「ze」をInkで作った

2025-06-27

はじめに

Claude CodeやGemini CLIなどのAIのコーディングツールを使う際、複数のセッションを継続的に扱えるようにZellijを導入しました。しかし、セッション名を毎回入力するのは面倒で、特にセッション名の補完が効かないのが辛いと感じていました。

# セッション一覧を見る
zellij ls

# セッションにアタッチする
zellij attach session-name

# 新しいセッションを作る
zellij -s new-session

そこで、Inkを使って直感的なセッション管理ツールzeを作りました。

この記事では、zeの紹介と共に、CLIアプリケーション開発を革新するInkの魅力についてもお伝えします。

作ったもの

zeは、Zellijのセッション管理を簡単にするCLIツールです。

ze demo

インストール方法

npm install -g ze-cli

インストール後、ターミナルでzeと入力するだけで使えます。

使い方

基本的な使い方

# zeを起動
ze

Inkについて

最初はfzfなどを駆使してbashで作ることも検討しましたが、Inkを触っておこうと思いInkを使うことにしました。

Inkは、ReactをCLIアプリケーション開発に持ち込むライブラリです。Webアプリケーション開発で培ったReactの知識を、そのままターミナルアプリケーション開発に活用できます。

Inkを選んだ理由:

実際にzeでの利用方法を紹介します。fzfライクな検索機能を実装しました。

useInput((input, key) => {
  if (input && !key.ctrl && !key.meta) {
    setSearchQuery(prev => prev + input);
  }
  // Backspaceで文字削除
  if (key.backspace) {
    setSearchQuery(prev => prev.slice(0, -1));
  }
});

const filteredItems = items.filter(item =>
  item.label.toLowerCase().includes(searchQuery.toLowerCase())
);

このようにReactに近い形でCLIツールが実装可能になりました。

まとめ

zeは、Zellijのセッション管理に簡単にします。コマンドを覚えたりセッション名を打たずにすみます。 またzeの開発を通じて、Inkを利用してインタラクティブなCLIアプリケーションを作る楽しさを実感しました。

リンク