Otty,一款为 AI 代码代理量身打造的原生终端
Otty 是一款 GPU 加速的原生终端应用,专门针对 Claude Code、Codex 这类跑在终端里的代码代理做了适配。这篇记录一下它的定位、安装方式和主要功能。
官方文档怎么说
我看完了官方文档,这里给出一些总结——因为我知道大部分人懒得看。
首次启动要做的五件事
如果你是首次启动,文档里建议你做这些事情,分别是 Set On Launch、Set as Default Terminal、Install the Otty CLI、Change Theme、Install Agent Integration。
CLI 装不上?这是我的解决办法
我觉得大家在安装 otty cli 时可能会遇到问题,比如我的,它显示这样:
解决方法如下。
运行第一个:
sudo ln -sf "/Applications/Otty.app/Contents/MacOS/otty-cli" /usr/local/bin/otty
这行命令说人话就是:请管理员在公共命令抽屉里,强制做一个指向 Otty 真身的软链接,名字叫 otty。sudo 表示 superuser do,用管理员身份去做后面这件事情;ln 表示 link,做链接,相当于 Mac 上的快捷方式。为什么用 link 而不是 copy?因为 copy 出一份的话,虽然你还是可以正常打开,但是 otty 一更新,旧的文件还是旧的,会出问题。-s 这个参数中的 "s" 是 symbolic,软链接,就是快捷方式,指向真身,但不是复制一份;-f 的意思是 force。
一个问题来检验:上面的命令中,哪一个是真身,哪一个是快捷方式?(正确答案:前者为真身,后者快捷方式)
运行第二个:
otty completions zsh | sudo tee /usr/local/share/zsh/site-functions/_otty > /dev/null
completion(补全)说人话就是按 Tab 时候弹出的提示,| 是 pipe,把左边的输出送到右边当输入;tee 就像水管三通,一边写入文件,一边还可以在屏幕上再显示一份。
一个问题来检验:左边的
otty completions zsh交出去的是什么?A. 一个会跑的程序 B. 一段文本(补全规则) C. 你的登录密码。正确答案是 B。
zsh 是啥?你打开终端,里面跟你对话的其实是 shell,也就是说,你打的 ls、cd 都交给 shell,然后 shell 去找真正的程序,zsh 就是一种 shell。你每次开一个 zsh 终端,它会自动加载一些配置文件,补全脚本就是其中一类:告诉它 otty 后面能跟哪些子命令。写进去之后,你打 otty 再按 Tab,它才知道该提示什么。
如果你使用的是 Mac 电脑,你的终端更可能是 zsh。
这两段总结一下:
otty completions zsh打印一段"补全规则"文本。sudo tee把这段文本写进指定文件。> /dev/null是不再把内容显示在屏幕上一遍。
运行第三个:
otty completions bash | sudo tee /usr/local/etc/bash_completion.d/otty > /dev/null
不解释了,跟上一个一样。
验证一下装没装对:
which otty
敲完之后直接按回车,如果结果是 /usr/local/bin/otty,✅ 说明是对的。
或者你可以试试:
otty open ~/Documents
一个技巧可以帮你省下打字的时间:
~/Doc+ Tab →Documents/。
这个技巧不是 zsh 独有的,但我觉得 zsh 好用,别的 shell 看起来笨笨的,zsh 模糊一点也能帮你找出来。
至此,CLI 已经装好并且可以用了。
otty cli 值不值得装
如果你不安装 CLI,那么其实把 otty 当作终端用完全没问题,CLI 的价值在于:我在别的 App、别的终端里,也可以派活给 otty。
otty cli 常用命令
otty open [path] — 开新窗口
otty open [path] 具体来说可以展开成三个用处。
第一个就是快速打开窗口:先明确 . 表示这里,.. 表示上一层,~/ 表示家目录;如果你有具体的路径,直接 otty open [路径] 就行。
第二个是打开窗口快速干活,只需要在后面加上 --command。
你开新窗口时,有时希望它立刻跑 htop 或 vim,而不是空停在 shell。
这样写:
otty open [站哪] --command "要跑的命令"
比如 otty open ~ --command "ls -la"。
第三个,加上 --title 可以给窗口标题起名字,不改变它站哪,也不代替 --command:
otty open 位置 --command "命令" --title "名字"
otty read / edit — 把文件或网址开成窗格
只看用 otty view,如果你要修改用 edit——没有 otty read。
现在有个叫 README.md 的文件(/Users/a1234/Desktop/README.md),要读它就用 view(不是 read,otty 不用 read):
otty view /Users/a1234/Desktop/README.md
open 会打开新窗口,但 view 不会,所以你要先打开 otty,然后再 view。也就是说,otty 没打开的话,你敲 otty view README.md 没有反应。
编辑这个文件:
otty edit /Users/a1234/Desktop/README.md
otty config — 改配置
先看文件在哪里:
otty config path
otty config get theme
修改 otty 的主题:
otty config set theme dracula --reload
# 如果没变的话,运行 otty config reload
otty font / theme / keybind — 外观与快捷键
列出所有 theme:
otty theme list
所有 dark 主题:
otty theme list --color dark
keybind:
otty keybind list --action tab
查看目前用的字体:
otty get config font-family
列出所有字体:
otty font list --monospace
otty windows / tabs / pane — 控制正在运行的界面
otty tab new --title monitor --command "echo hello-from-tab"
同一个标签里分屏(pane 是窗格的意思):
otty pane split --right --command "echo hello-from-pane" --size 30
除此之外还有几个常用命令:
otty watch跑命令并且显示进度徽章otty jump按常用目录跳转(像 zoxide)otty learn/otty ignoreotty import/otty export
有两个习惯很重要:
- 任何命令后面加
-h看本命令帮助,比如otty open -h - 想给脚本用,加
--json,比如otty panes --json
直接敲 otty 会开图形窗口,和 alacritty 一样。
现代化的终端体验
支持编程连字(ligatures)、完整 Unicode、24 位真彩色、粗体/斜体/下划线等富文本样式,还能在终端里直接嵌入图片显示,配色方案可自定义、支持实时切换主题。
标签、窗格与会话恢复
一个窗口里可以开多个标签、拆分多个窗格,布局可以自由拖拽调整。关闭应用后再打开,窗格布局会按原样恢复,不用每次重新排列。
键盘优先的操作方式
内置命令面板(⌘⇧P)用来模糊搜索命令,⌘⇧O 用来在不同会话间快速跳转,另外还支持内联自动补全和自定义代码片段/快捷方式,官网的说法是"不用离开键盘就能拿到想要的东西"。
对代码代理的一级支持
这是 Otty 和普通终端最大的区别:对 Claude Code、Codex、OpenCode 提供了专门的适配,具体包括:
- 并排运行多个代理会话,同时监看每个任务的状态
- 追踪会话历史,支持对话分支
- 提示词队列和撰写工具
- 代理编辑代码时终端里带实时预览更新
- 把终端输出直接导入聊天上下文
配置方式上,Otty 用的是单个热重载配置文件,改完不用重启应用就能生效。
总结
如果日常工作流已经离不开在终端里跑 Claude Code、Codex 这类代理,Otty 提供的并行监看、会话历史和分支功能确实比裸终端方便不少;即便不用代理,单看 GPU 加速渲染、窗格管理和快捷键这些基础体验,也算是一款做得比较扎实的原生终端。目前只有 macOS 版本,跨平台还在等待名单阶段,想用 Windows/Linux 的话得再等等。