什么是 kitty?
kitty 是一个为整天泡在终端里的人准备的、基于 GPU 的终端模拟器。它用 OpenGL 渲染,所以构建日志或者满屏彩色输出都能流畅滚动;它把终端当作平台而不是文本框:由平铺布局排列的窗口和标签页、能在输出里直接绘制真实图片的图形协议、让程序分得清 shift+enter 和 enter 的键盘协议、可点击的超链接、连字,以及知道每个提示符和每条命令的输出从哪开始到哪结束的 shell 集成。终端旁边还有 kitten,一个把终端赖以构建的小工具装在一起的单一伴生可执行文件:kitten icat 显示图片,kitten ssh 把你的 terminfo 和 shell 集成带到远程主机,kitten diff 是连图片也能比的并排 diff,还有 kitten clipboard、kitten themes,以及从脚本里操控终端本身的 kitten @。作者是 calibre 的作者 Kovid Goyal,所有配置都在一个 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 是一个装满小工具的静态可执行文件:icat、ssh、diff、clipboard、themes、用键盘从屏幕上挑出 URL、路径或哈希的 hints、unicode_input、通过 ssh 会话复制文件的 transfer,等等。
🎛️ 远程控制
打开 allow_remote_control 之后,kitten @ 就能从任何脚本操控终端:开窗口、往里发文本、改颜色、调大小、列出正在运行的东西。不经过复用器,用脚本搭布局。
🐚 Shell 集成
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 update🆓 有一个永久免费的镜像。 deb-free.griffo.io 永久免费提供软件包 — 无需账号、无需订阅,最多落后上游 2 个月,安全修复立即发布。目前收录 cliamp、Ghostty、lazydocker、Oh My Posh、Uncloud 和 Zed;kitty 不在其中,因此今天只能通过上面的仓库安装 — 提出请求即可将其加入。
第 2 步:安装 kitty
# 安装最新版 kitty,kitty-terminfo 和 kitty-shell-integration 会一起装上
sudo apt install kitty
# 可选,位于 /usr/share/doc/kitty/html 的 HTML 文档
sudo apt install kitty-doc
# 验证安装,终端本体和伴生的命令行工具
kitty --version
kitten --version# 安装最新版 kitty,kitty-terminfo 和 kitty-shell-integration 会一起装上
apt install kitty
# 可选,位于 /usr/share/doc/kitty/html 的 HTML 文档
apt install kitty-doc
# 验证安装,终端本体和伴生的命令行工具
kitty --version
kitten --version第 3 步:第一次运行
# 打开一个 kitty 窗口
kitty
# 把 kitty 设为 x-terminal-emulator 的默认终端
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
# 把 kitty 设为 x-terminal-emulator 的默认终端
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 --version各个 kitten:
# 直接在终端里显示图片
kitten icat photo.png
# 带着 terminfo 和 shell 集成去 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 里
# 运行的任意 shell 中:在当前窗口右边开一个新窗口
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 的主机会给你一个坏掉的退格键,less和clear也会抱怨。kitten ssh会替你把它复制过去;对于用普通ssh连的主机,在那边装上kitty-terminfo即可,这是一个与架构无关的包,只有 terminfo 条目,不会再拖进任何别的东西 - 你的 shell:
kitty-shell-integration把 bash、zsh 和 fish 的钩子放在/usr/share/kitty/shell-integration,而kitty.conf里默认的shell_integration enabled会启用它们,不碰你的 rc 文件 - yazi、viu 和 Neovim: 三者都通过 kitty 图形协议绘制图片,Neovim 还原生支持 kitty 键盘协议,所以这就是它们被测试过的那个终端
- Zellij 和 tmux: kitty 自己的窗口、标签页和布局已经覆盖了本地复用器的大部分功能;需要会话比窗口活得更久时用 Zellij,用 tmux 的话给它配上
extended-keys和 passthrough,kitty 的协议才能一路通过 - 你的桌面: 软件包安装桌面入口、图标和 man 手册页,并注册
x-terminal-emulator候选项,所以 kitty 会出现在你的启动器里,一条update-alternatives就能把它设为系统默认
🚀 为什么选择 deb.griffo.io?
- 官方 Ubuntu: 26.04 收录 kitty 0.45.0,Noble 收录 0.32.2,Jammy 收录 0.21.2,各自在整个版本生命周期内冻结
- 上游的安装脚本: 一条
curl | sh装进~/.local/kitty.app,够新,但只对单个用户生效,没有桌面入口、man 手册页和x-terminal-emulator,除非你自己接好,而且更新靠再跑一遍安装脚本 - 自己从源码构建: Python、Go、一长串
-dev包和不短的时间,换来一个 apt 完全不知道的二进制文件 - deb.griffo.io: 最新版本,并自动更新
- ✅ 和 Ubuntu 相同的包名:
kitty、kitty-terminfo、kitty-shell-integration和kitty-doc,与 Ubuntu 软件源里的叫法完全一致,所以本仓库会就地升级系统自带的 kitty,之后apt remove也不会留下任何东西 - ✅ 官方构建: 上游预编译的 bundle,和 kitty 自己的安装脚本是同一份字节,放在
/opt/kitty,并有/usr/bin/kitty和/usr/bin/kitten两个符号链接;不从源码构建,不打补丁 - ✅ 集成到位: 桌面入口、图标、man 手册页、terminfo 和 shell 集成都放在 Debian 的标准路径下,并注册了
x-terminal-emulator候选项 - ✅ kitty-terminfo 可以单独走: 一个与架构无关的包,只有
xterm-kitty的 terminfo,给你 ssh 进去的那些服务器用 - ✅ 自动更新: 上游发布后数小时内更新软件包
- ✅ 两种架构: amd64 和 arm64,也就是上游发布 bundle 的那两种;没有 i386、armhf 或 riscv64 的构建
- ✅ 多发行版: 支持 Ubuntu 22.04、24.04、25.10 和 26.04
- ✅ 易于维护: 使用标准 apt 命令即可更新
📦 软件包构建仓库
Ubuntu 软件包在这个 GitHub 仓库中自动构建和维护:
- 🐱 kitty-debian - 最新版本构建
🔗 相关软件包
deb.griffo.io 同样提供:
- Ghostty - 这里的另一个 GPU 终端,原生 GTK 界面,取舍不同
- Zellij - 工作区复用器,给那些需要比窗口活得更久的会话
- Yazi 文件管理器 - 通过 kitty 的图形协议绘制预览
- viu 图片查看器 - 同样支持 kitty 图形协议的终端图片查看器
- Neovim - 图片插件和 kitty 键盘协议在这个终端里开箱即用