kitty とは
kitty は一日中ターミナルで過ごす人のための、GPU ベースのターミナルエミュレーターです。描画は OpenGL で行うので、ビルドログや色付き出力の壁も滑らかにスクロールし、ターミナルをテキストボックスではなくプラットフォームとして扱います。タイル型レイアウトで並ぶウィンドウとタブ、本物の画像を出力の中に描くグラフィックスプロトコル、プログラムが shift+enter と enter を区別できるキーボードプロトコル、クリックできるハイパーリンク、リガチャ、そしてプロンプトと各コマンドの出力がどこで始まりどこで終わるかを知っているシェル統合。ターミナルの隣には kitten が付いてきます。ターミナルの土台になっている小さなツールをまとめた単一の相棒実行ファイルで、kitten icat は画像を表示し、kitten ssh は terminfo とシェル統合をリモートホストに持ち込み、kitten diff は画像も扱える横並びの diff、ほかに kitten clipboard、kitten themes、そしてスクリプトからターミナル自身を操る kitten @。作者は calibre の作者でもある Kovid Goyal で、設定はすべて 1 つの kitty.conf にまとまっています。
kitten 実行ファイルより前のものなので、現在のドキュメントにある kitten ssh や kitten icat というコマンドがそもそも存在しません。古い kitty は、現在のドキュメントが設定を勧めている kitty.conf の項目も黙って無視しますし、新しい kitten (choose-fonts、notify、quick-access-terminal、panel) はただ存在しません。ターミナルは一日中使う唯一のプログラムです。最新であるべきです。
⚡ kitty の主な機能
🎮 GPU レンダリング
kitty は OpenGL で描画し、グリフの処理を GPU に渡して、CPU は実際に動かしているプログラムのために残します。大きな出力はディスプレイのリフレッシュレートでスクロールし、テキストの洪水の中でもターミナルは応答し続けます。
🪟 ウィンドウ、タブ、レイアウト
タブをウィンドウに分割し、レイアウト (tall、fat、grid、splits、stack) に配置を任せます。ctrl+shift+enter でウィンドウ、ctrl+shift+t でタブが開きます。セッションファイルは、各ウィンドウのディレクトリとコマンドごと、ワークスペース全体を再現します。
🖼️ グラフィックスプロトコル
ブロック文字ではなく、本物の画像。kitten icat は画像を出力の中に表示し、yazi、viu、Neovim の画像プラグイン、matplotlib のバックエンドがターミナルに描くときに使うのも同じプロトコルです。
🐈 Kittens
kitten は小さなツールを詰め込んだ 1 つの静的実行ファイルです。icat、ssh、diff、clipboard、themes、画面上の URL やパスやハッシュをキーボードで拾う hints、unicode_input、ssh セッション越しにファイルをコピーする transfer、その他いろいろ。
🎛️ リモートコントロール
allow_remote_control を有効にすると、kitten @ がどんなスクリプトからでもターミナルを操作します。ウィンドウを開く、テキストを送る、色を変える、サイズを変える、何が動いているか一覧する。間にマルチプレクサを挟まない、スクリプトで組むレイアウトです。
🐚 シェル統合
kitty は各プロンプトがどこで始まるかを知っています。ctrl+shift+z でプロンプト間を移動し、直前のコマンドの出力をページャーで開き、クリックで現在行の中のカーソルを動かし、新しいウィンドウは現在のディレクトリで開きます。bash、zsh、fish に対応し、kitty-shell-integration が同梱しています。
apt upgrade を実行するだけで、常に最新版を使い続けられます。
📦 deb.griffo.io からインストールする
ステップ 1: リポジトリを追加する
sudo install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | sudo tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
sudo apt updateinstall -d -m 0755 /etc/apt/keyrings
curl -fsSL https://deb.griffo.io/EA0F721D231FDD3A0A17B9AC7808B4DD62C41256.asc | gpg --dearmor --yes -o /etc/apt/keyrings/deb.griffo.io.gpg
echo "deb [signed-by=/etc/apt/keyrings/deb.griffo.io.gpg] https://deb.griffo.io/apt $(lsb_release -sc 2>/dev/null) main" | tee /etc/apt/sources.list.d/deb.griffo.io.list > /dev/null
apt updatesudo apt install extrepo
sudo extrepo enable griffo
sudo apt update🆓 ずっと無料のミラーがあります。 deb-free.griffo.io は、アカウントもサブスクリプションもなしでパッケージをずっと無料で配布しています。上流より最大2か月遅れ、セキュリティ修正は即座に公開されます。現在収録しているのは cliamp、Ghostty、lazydocker、Oh My Posh、Uncloud と Zed です。kitty は含まれていないため、今日入手する方法は上のリポジトリだけですが、ご要望があれば追加できます。
🧩 extrepo オプションについて。 extrepo は外部リポジトリを扱う Debian 標準のツールです。署名済みメタデータと照合して鍵を検証したうえで、sources ファイルの作成と署名鍵のインストールを代わりに行います。このリポジトリは griffo、ずっと無料のミラーは griffo-free という名前で登録されているので、Debian(bookworm、trixie、forky、sid)では上のコマンドだけで設定は完了です。
extrepo が用意するのは sources ファイルと鍵だけなので、サブスクリプションの認証情報は引き続き /etc/apt/auth.conf.d/deb.griffo.io.conf に書きます。extrepo は Debian のスイート向けメタデータしか公開していないため Ubuntu は対象外です。Ubuntu では sudo または root のコマンドを使ってください。
ステップ 2: kitty をインストールする
# 最新の kitty をインストール。kitty-terminfo と kitty-shell-integration も一緒に入ります
sudo apt install kitty
# 任意: /usr/share/doc/kitty/html に入る HTML ドキュメント
sudo apt install kitty-doc
# インストールを確認。ターミナル本体と相棒の CLI
kitty --version
kitten --version# 最新の kitty をインストール。kitty-terminfo と kitty-shell-integration も一緒に入ります
apt install kitty
# 任意: /usr/share/doc/kitty/html に入る HTML ドキュメント
apt install kitty-doc
# インストールを確認。ターミナル本体と相棒の CLI
kitty --version
kitten --versionステップ 3: 最初の起動
# kitty のウィンドウを開く
kitty
# x-terminal-emulator の既定のターミナルを kitty にする
sudo update-alternatives --config x-terminal-emulator
# 設定は ~/.config/kitty/kitty.conf。kitty の中で ctrl+shift+f2 が開き、
# ctrl+shift+f5 が再読み込みします。これは有効な設定を表示します
kitty --debug-config
# 同梱のカラーテーマを眺めて、ひとつ適用する
kitten themes# kitty のウィンドウを開く
kitty
# x-terminal-emulator の既定のターミナルを kitty にする
update-alternatives --config x-terminal-emulator
# 設定は ~/.config/kitty/kitty.conf。kitty の中で ctrl+shift+f2 が開き、
# ctrl+shift+f5 が再読み込みします。これは有効な設定を表示します
kitty --debug-config
# 同梱のカラーテーマを眺めて、ひとつ適用する
kitten themes🎯 基本的な使用例
起動する:
# ターミナルを開く
kitty
# 新しい kitty ウィンドウでコマンドを実行し、終了後も開いたままにする
kitty --hold htop
# kitty.conf のどの設定でもコマンドラインで上書きする
kitty -o font_size=14 -o background_opacity=0.9
# ディレクトリを指定して起動する
kitty --directory ~/src
# セッションファイルからワークスペース全体を復元する
kitty --session ~/.config/kitty/work.session
# 入っているのはどのバージョン?
kitty --versionkitten たち:
# 画像をターミナルにそのまま表示する
kitten icat photo.png
# terminfo とシェル統合を連れて ssh する
kitten ssh user@server
# 横並びの diff、画像も含めて
kitten diff old.txt new.txt
# システムのクリップボードにコピーし、読み出す
echo hello | kitten clipboard
kitten clipboard --get-clipboard
# 開いているすべての kitty ウィンドウにテーマを適用する
kitten themes --reload-in=all Catppuccin-Mocha
# フォントを対話的に選ぶ
kitten choose-fontsリモートコントロール:
# kitty.conf に allow_remote_control yes を書き、kitty の中で動いている
# どのシェルからでも: この右側に新しいウィンドウを開く
kitten @ launch --location=vsplit --cwd=current
# タイトルで選んだ別のウィンドウにコマンドを打ち込む
kitten @ send-text --match title:logs "tail -f /var/log/syslog\n"
# 色をその場で変える
kitten @ set-colors background=#1e1e2e
# いま何が開いているか
kitten @ ls🔧 ツール連携
kitty はほかのすべての下にあるターミナルなので、連携の話はおもにその中で動くものについてです:
- リモートサーバー: kitty は
TERM=xterm-kittyを設定するので、その terminfo がないホストでは backspace が壊れ、lessやclearが文句を言います。kitten sshは terminfo を自動でコピーしてくれます。素のsshでつなぐホストには、そちらにkitty-terminfoを入れてください。terminfo エントリだけを収めた、ほかに何も引き込まないアーキテクチャ非依存のパッケージです - あなたのシェル:
kitty-shell-integrationが bash、zsh、fish のフックを/usr/share/kitty/shell-integrationに置き、kitty.confの既定値であるshell_integration enabledが、rc ファイルに触れずにそれらを有効にします - yazi、viu、Neovim: 3 つとも kitty のグラフィックスプロトコルで画像を描き、Neovim は kitty のキーボードプロトコルをネイティブに話します。つまり、これらがテストされたターミナルです
- Zellij と tmux: kitty 自身のウィンドウ、タブ、レイアウトで、ローカルのマルチプレクサがやることの大半は足ります。セッションがウィンドウより長生きする必要があるなら Zellij を、tmux を使うなら
extended-keysと passthrough を設定して、kitty のプロトコルが途中で失われないようにしてください - あなたのデスクトップ: パッケージはデスクトップエントリ、アイコン、man ページを入れ、
x-terminal-emulatorの alternative を登録するので、kitty はランチャーに現れ、update-alternatives一発でシステムの既定になります
🚀 deb.griffo.io を選ぶ理由
- 公式 Debian: trixie では kitty 0.41.1、Bookworm では 0.26.5 を収録し、どちらもリリースの寿命いっぱい凍結されたままです
- 上流のインストーラー:
curl | sh一発で~/.local/kitty.appに入り、最新ではありますが、ユーザー単位で、デスクトップエントリも man ページもx-terminal-emulatorも自分で配線しない限りなく、更新はインストーラーをもう一度走らせる方式です - ソースからビルド: Python、Go、長い
-devパッケージの列と、それなりの時間。その結果が apt の知らないバイナリです - deb.griffo.io: 最新版を自動更新でお届け
- ✅ Debian と同じパッケージ名:
kitty、kitty-terminfo、kitty-shell-integration、kitty-doc。Debian のアーカイブとまったく同じ名前なので、このリポジトリは標準の kitty をその場で置き換え、後でapt removeしても何も残りません - ✅ 公式ビルド: 上流のビルド済みバンドル、kitty 自身のインストーラーと同じバイト列を
/opt/kittyに置き、/usr/bin/kittyと/usr/bin/kittenのシンボリックリンクを張ります。ソースビルドもパッチもありません - ✅ きちんと統合: デスクトップエントリ、アイコン、man ページ、terminfo、シェル統合が Debian 標準のパスにあり、
x-terminal-emulatorの alternative も登録済みです - ✅ kitty-terminfo は単独で旅する:
xterm-kittyの terminfo だけを収めたアーキテクチャ非依存のパッケージ。ssh で入るサーバー向けです - ✅ 自動更新: 上流のリリースから数時間以内にパッケージを更新
- ✅ 2 つのアーキテクチャ: amd64 と arm64。上流がバンドルを公開しているのがこの 2 つで、i386、armhf、riscv64 のビルドはありません
- ✅ マルチディストリビューション: Bookworm、Trixie、Forky、Sid で動作
- ✅ 手間のかからない運用: 更新は通常の apt コマンドだけ
📦 パッケージのビルドリポジトリ
Debian パッケージは、この GitHub リポジトリで自動的にビルド・管理されています:
- 🐱 kitty-debian - 最新リリースのビルド
🔗 関連パッケージ
deb.griffo.io では、こちらも配布しています:
- Ghostty - ここにあるもう一つの GPU ターミナル。ネイティブ GTK の UI と、違うトレードオフ
- Zellij - ウィンドウより長生きすべきセッションのための、ワークスペースマルチプレクサ
- Yazi ファイルマネージャー - プレビューを kitty のグラフィックスプロトコルで描きます
- viu 画像ビューアー - kitty のグラフィックスプロトコルも話すターミナル画像ビューアー
- Neovim - 画像プラグインと kitty キーボードプロトコルが、このターミナルでは設定なしで動きます