大家好,我是二哥呀。
有没有想过,一个终端窗口里,左边跑 Claude Code,右边跑 Codex,两个 Agent 同时给我们干活是什么体验?
最近发现一款新的AI终端 Kaku。

用起来真的很不错,推荐给大家试试。
深色模式和浅色模式我都很喜欢。
对于我个人来说,除了要处理一些图片、视频外,我会习惯用 Codex或者Claude 的桌面 Agent。
其余场景,我还是更喜欢在终端里。
Coding 场景我现在几乎已经不review代码了,所以 IDE 这些工具我基本上不碰了。
01、安装 Kaku
安装方式两选一,官网下载 DMG 拖进应用程序文件夹,或者一行 Homebrew 命令搞定:
brew install tw93/tap/kaku
Kaku 用 Rust 写的,基于 WezTerm 深度定制,启动秒开。
基于 MIT 协议,完全免费。
安装完真的非常极客风。

按下 enter 键进行配置。

授权安装后,字体、配色、zsh 插件这些全都是预设好的,JetBrains Mono 字体,macOS 原生渲染。
用过 iTerm2 的小伙伴知道,它的强大是靠配置堆出来的,装完之后挑配色、选字体、配 Oh My Zsh。Kaku 的思路反过来,把这些决定提前替我们做了,而且做得有品位。想改也行,kaku config 会打开一个配置 TUI,透明度、字体、快捷键都在里面调。

接着输入 kaku ai 进入 Codex/Claude Code 的模型配置,认证方式支持 codex 登录。

02、Kaku AI
配置完成后,使用快捷键 command + L 可以进入 AI 模式。

按下 shift + tab 可以快速切换模型。
在输入框键入 @,Kaku 会显示:
- @cwd:附加当前项目概况。
- @tab:附加当前终端画面。
- @selection:附加进入 AI 模式前选中的终端文本。
提示词:
@cwd 先扫描当前项目。
请完成:
1. 判断项目类型、核心目录和入口文件。
2. 解释主要模块之间的关系。
3. 找出构建、测试和本地启动方式。
4. 列出最值得先阅读的 10 个文件,并说明原因。
本轮只读,不修改任何文件。结论必须基于实际文件和命令结果。

或者先在终端选中报错文本,再按 Cmd + L:
@selection 分析这段错误。
请定位根因,不要只解释错误表面。
检查当前项目中相关配置和源码,给出最小修复方案。
本轮先不要修改文件。
如果报错很多,可以改用 @tab 检查当前终端输出,找出刚才命令失败的根因。。
Kaku AI 很适合终端报错分析、项目理解、代码审查和中小型 bug 修复。
涉及跨模块大改、长时间自主开发、完整 Git/PR 工作流时,完整 Codex CLI 或 Claude Code 更合适。
除了 AI,它还把终端老炮的必装工具直接内置了:
①、Lazygit,Cmd+Shift+G 一键唤起,暂存、提交、分支、rebase 全部可视化操作,不用背 git 命令
②、Yazi 文件管理器,Cmd+Shift+Y 打开,同样是 Rust 写的,预览图片和代码都快

③、z proj 式的目录跳转,访问过的目录敲个名字片段就能到,不用一层层 cd
④、Cmd+Opt+I 广播输入,一次键入,所有分屏同时执行,管多台服务器或者同时指挥多个 Agent 的时候非常爽

⑤、SSH 远程文件挂载,远程机器的文件直接在本地浏览
我把常用的快捷键整理成了一张表格,建议收藏:
| 操作 | 快捷键 |
|---|---|
| 新建标签 / 左右分屏 | Cmd+T / Cmd+D |
| AI 聊天面板 | Cmd+L |
| 粘贴 AI 修复命令 | Cmd+Shift+E |
| Lazygit / Yazi | Cmd+Shift+G / Cmd+Shift+Y |
| 查找标签和分屏 | Cmd+Shift+O |
| 广播输入到所有分屏 | Cmd+Opt+I |
| 切换 AI 模型 | Shift+Tab |
| 设置面板 | Cmd+, |
03、Kaku case
Cmd+D 左右分屏,左边启动 Claude Code;右边启动 Codex。
两边喂同一个提示词,让当前最强的两个 Agent,在同一个终端里现场对决。
提示词:
你是一名资深 Creative Frontend Engineer 和交互设计师。
请在当前目录从零实现一个“可拨动的中国文字珠帘数字文物展览”网站。
参考效果:
- GitHub:https://github.com/aigc17/Chinese-PhoenixCrown
- 在线演示:https://chinese-phoenixcrown.vercel.app
参考项目只用于理解交互原理和视觉方向。请独立实现,不直接复制它的源码、品牌名称、文案或图片资产。
一、总体目标
制作一个全屏沉浸式数字展览:
- 午夜蓝黑色背景,带极轻的纸张或漆面纹理。
- 页面中央展示一件透明背景的中国传统器物 PNG。
- 从器物底部轮廓自然垂落大量由汉字组成的文字珠帘。
- 鼠标或触控指针拂过文字帘时,文字链被拨开、摆动、回弹。
- 指针移动越快,文字摆幅越大。
- 拨动时通过 Web Audio API 生成轻微布料摩擦声和金属风铃声。
- 支持 Scene 单件展览和 Gallery 三件陈列两种视图。
- 切换器物及视图时使用平滑的 shared-element/magic-move 过渡。
二、技术栈
如果当前目录为空,使用:
- Next.js 16 App Router
- React 19
- TypeScript
- Tailwind CSS 4
- Canvas 2D
- Web Audio API
- View Transitions API
- pnpm
不要引入大型物理引擎、粒子库或音频文件。核心物理与声音需要自行实现。
如果当前目录已经存在项目,先检查现有技术栈和约定,尽量复用,不要覆盖无关文件。
三、先实现单件 MVP
先完成一件器物的完整 Scene,验证交互后再扩展 Gallery。
资产要求:
- 使用透明背景 PNG。
- 如果当前目录没有合适图片,先创建清晰标注的占位器物轮廓,不要擅自下载参考仓库资产。
- 将图片路径、名称、介绍、文字池、文字颜色、帘幕宽度等放进独立的数据配置。
四、Canvas 文字帘
实现独立的 TextCurtain React 组件。
每一列文字都是一条 Verlet 链:
- 每个字符节点保存当前位置、上一帧位置、静止位置和字符内容。
- 每条链的顶部固定,其他节点受阻尼、回归弹簧和距离约束影响。
- 字符之间保持固定距离。
- 添加轻微自然摆动,但静止时不能剧烈抖动。
- 鼠标进入影响半径后,根据距离衰减和指针速度向字符节点施力。
- 指针离开后,文字链应自然减速并回到原始位置。
- 支持 ResizeObserver,在窗口尺寸改变时重建布局。
- 使用 requestAnimationFrame 驱动更新和渲染。
- 正确清理事件监听、ResizeObserver 和动画帧。
五、根据器物轮廓垂落
不要让所有文字从一条水平直线开始。
实现以下算法:
1. 等待透明 PNG 加载完成。
2. 将图片绘制到离屏 Canvas。
3. 读取 alpha 通道。
4. 对文字帘的每个横向采样列,从图片底部向上寻找最后一个非透明像素。
5. 将这个点映射到页面 Canvas 坐标。
6. 以该点作为对应文字链的固定起点。
7. 图片轮廓之外不生成文字链。
器物图片和文字帘之间不能出现明显断层。
六、字符渲染与性能
页面可能同时显示数千个汉字,不能每帧大量调用 fillText。
请实现 glyph atlas:
- 将“字符 + 颜色”组合提前绘制到离屏 Canvas。
- 缓存每个字形在 atlas 中的位置。
- 每帧使用 drawImage 绘制。
- 字符沿当前文字链切线进行轻微旋转。
- 文字帘底部逐渐透明。
- 字符颜色从器物自身的主色中提取成一组调色板。
- 深色背景下增加克制的同色辉光,但不能像霓虹灯。
- 将设备像素比限制在合理范围,例如最高 1.5,以保证 Retina 屏幕性能。
- 目标是在常见桌面设备上接近稳定 60fps。
七、音效
使用 Web Audio API 程序化合成,不加载音频文件:
- 用户第一次点击或触摸页面时解锁 AudioContext。
- 快速拨动文字帘时触发布料摩擦声。
- 摩擦声可以用噪声源、带通滤波和短包络生成。
- 金属铃声使用多个非整数倍谐波的正弦振荡器叠加。
- 不同泛音使用不同衰减时间。
- 音量、亮度和音高变化与指针速度相关。
- 设置触发间隔,避免 pointermove 导致声音爆炸。
- 偶尔增加一次较弱的延迟回击,模拟珠串回摆碰撞。
- 总音量保持克制。
八、Scene 与 Gallery
Scene:
- 中央显示当前器物和文字帘。
- 左右显示相邻器物的小型导航卡片。
- 点击卡片切换器物。
- 展示器物名称、短描述和文化文案。
- 文字不能遮挡核心器物。
Gallery:
- 同时展示三件器物。
- 中间器物较大,两侧较小。
- 点击侧边器物,使其移动到中心。
- 点击中心器物进入 Scene。
- 使用数据驱动方式支持后续添加更多器物。
过渡效果:
- 优先使用 View Transitions API。
- 为相同器物设置稳定的 view-transition-name。
- 在 Scene、Gallery 和相邻器物切换时产生 shared-element morph。
- 不支持 View Transitions API 时优雅降级为普通状态切换。
- 避免入场动画和 View Transition 同时执行造成双重动画。
九、交互与无障碍
- Canvas 设置 aria-hidden。
- 所有视图切换和器物导航必须使用真正的 button。
- 支持键盘焦点和 Enter 操作。
- 兼容鼠标和 Pointer Events。
- 尊重 prefers-reduced-motion。
- 移动端减少文字列数量、影响半径和声音密度。
- 页面不能出现横向滚动条。
- 首屏资源加载期间不要闪现一条错误的水平文字帘。
十、开发步骤
请按以下顺序执行,不要只输出方案:
1. 检查当前目录和项目状态。
2. 给出简短实施计划。
3. 搭建数据结构和单件 Scene。
4. 实现透明轮廓采样。
5. 实现 Verlet 文字链。
6. 实现 glyph atlas 和性能优化。
7. 实现鼠标/触控交互。
8. 实现 Web Audio 音效。
9. 扩展为数据驱动的多件器物。
10. 实现 Gallery 和 View Transitions。
11. 完成响应式与无障碍处理。
12. 运行 lint 和 production build。
13. 如果有浏览器工具,在 1440×900 和移动端尺寸实际检查页面。
14. 修复发现的问题后再汇报结果。
十一、验收标准
只有满足以下条件才算完成:
- pnpm build 成功。
- 首屏能看到中央器物及从透明轮廓垂下的文字帘。
- 文字帘不是普通 CSS 位移动画,而是真实的链式物理效果。
- 鼠标快速划过和缓慢划过具有明显不同的响应。
- 停止交互后文字能够稳定回弹。
- 声音必须由 Web Audio API 合成。
- Scene 和 Gallery 可以来回切换。
- 切换过程中器物有连贯的 magic-move 效果。
- 不存在明显控制台错误、事件监听泄漏或动画未清理问题。
- 最终汇报修改文件、架构、验证命令、测试结果和剩余限制。
- 不要替我提交或推送 Git。
提示词非常长,限于篇幅,我随后会在技术派上分享完整版本。

Codex 用时 15 分钟。

来看一下最终的效果。
是不是非常的酷。

这里再教大家一个逆向提示词的方法,把你想要的case效果给到 Codex,然后让他帮你反推。

04、ending
有一点需要说明,kaku 目前只支持macOS,在GitHub上已有 5.6k star,官方指南在这里:

以前写代码,主要是 IDE,但随着 Codex 和Claude Code的进化,终端成了替代品。
基本上只要我的电脑不关机,终端就会一直开着。所以很有必要被认真对待一次。
【工具好不好用,不在于他有多让人惊叹,在于用着用着就忘了它的存在,和我们的日常工作融为一体。】
建议喜欢泡在终端里的小伙伴,花 3 分钟装一个试试,合手就留下,不合手就删掉,反正免费。
我们下期见。
回复