从 MacBook 刘海里弹出来的 Gruvbox 控制中心:日历、Spotify、声音、电源、剪贴板去追踪全在一页。作者 README 开头就写:100% vibe-coded,风险自负。
Kajo 是一个 macOS 上的下拉式控制中心:一个半透明的 Gruvbox 主题小窗口,从 MacBook 的刘海里“弹”出来,里面用标签页收纳了你日常要看要点的所有东西——日历(带世界时钟、天气和日程)、计时器、Spotify 正在播放、声音(输出/输入设备、AirPods 左右耳和充电盒电量)、电源、网络(Wi-Fi 扫描连接、可复制的内外网 IP、网速测试)、系统(一键保持唤醒、清废纸篓)、表情包、剪贴板(带 URL 追踪参数清理,还能发到安卓)、货币换算(ECB 汇率,不用 API key)、工时记录,甚至还有 UniFi、Home Assistant、VPN 和本地大模型服务的状态页。
它致敬的是 Linux 圈的 Noctalia,但做在了 macOS 上。唤起方式也很“mac”:菜单栏图标、kajo://tab/calendar 这样的 URL scheme、全局快捷键都行。最妙的是它从刘海长出来的方式——Dynamic Island 风格:平时刘海两侧缩成两个“耳朵”,左边显示正在跑的工时计时,右边显示 Spotify 正在播的歌(带专辑封面和跳动的小节线);鼠标悬停刘海,弹出一排标签图标,点哪个就切到哪个标签页。
亮点这个项目的灵魂是“一个人的控制中心”。作者把自己每天要查的东西全塞进了一个窗口:几点有个会、赫尔辛基和吉隆坡现在几点、AirPods 还剩多少电、今天写了几个小时代码要不要记工时。工时(Hours)标签页甚至是个完整的小产品:秒表计时、按天记条目、打标签关联 Severa 项目,一键把一天的工时按 30 分钟取整上传到 Severa timesheet,顺手生成月度清单——自由职业者看了会心动。
细节密度极高:剪贴板标签页能一键剥掉链接里的 utm_ 追踪参数和电商追踪片段;终端(kajo://terminal)是个 Quake 式的下拉终端,⌘V 能直接把剪贴板里的图片粘进 Claude Code;刘海耳朵上还有个 Claude Code 会话状态小图标,黄色是忙、绿色是做完,点一下跳到终端。甚至连记事本(Scratch)都是从刘海滑下来的悬浮窗。
但作者在 README 里先把丑话说在前面:这是“personal tool, not a polished product”(个人工具,不是打磨过的产品)。部分标签页是为他自己家里的服务器准备的(UniFi、树莓派健康检查),没配好的在你电脑上就只显示一句“No config”。诚实得可爱。
vibe-coded 证据这是本轮证据最硬的项目之一。作者在 README 开头原话写着:“100% vibe-coded — use at your own risk. Built almost entirely by AI pair-programming (Claude Code).”后面还跟着“没有保修、没有保证,它可能会发脾气甚至吃掉你的配置,运行前请先读代码”。能把“这玩意儿可能吃掉你的配置”写进 README 的作者,证据可信度直接拉满。
更有意思的是,连安装方式都是 vibe 式的:README 里有个章节叫“用 Claude Code 安装(复制粘贴这段)”——一段超长的 prompt,你把它粘进 Claude Code,Claude 会一步步帮你在你的 Mac 上构建、签名、装到 /Applications、处理代码签名证书、改掉写死的作者家时区和城市、问你家里有没有 UniFi 再决定配哪些标签页。作者甚至替你想好了:Makefile 里的签名证书名是作者自己钥匙串里的,prompt 里会教你建一个同名的自签名证书,或者改成临时签名。
活跃度也没问题:仓库创建于 2026 年 6 月 25 日,76 个 commit,最近一次提交是 2026 年 10 月 13 日(侦察当天),版本迭代日志记到了 v0.35.4,一个仍在被主人天天打磨的自用工具。
技术实现技术栈是作者明确声明的:原生 Swift,SwiftUI/AppKit 混写。构建方式很“叛逆”:纯 swift build(SwiftPM,只有一个依赖 SwiftTerm)加一个 Makefile,全程不用 Xcode 工程。跑起来是一个 LSUIElement agent——Dock 栏里没有图标,干净。
架构上是一个文件一个标签页(Sources/*.swift),加上 Theme/Config/Panel/App 四块基础设施。配置走 ~/.config/kajo/ 下的 JSON(600 权限),内置的设置窗口提供带类型的表单和原始 JSON 两种编辑方式。进程间调用全靠 kajo:// URL scheme:kajo://tab/sound 切声音页,kajo://terminal 呼出终端,kajo://clip/clean 清追踪参数——Raycast、skhd、Hammerspoon 都能直接调。
那个从刘海弹出的动画是 SwiftUI spring 做的:窗口尺寸瞬间定好,面板用弹簧动画从刘海“长”出来;没刘海的屏幕就退化成菜单栏里的一颗黑色小药丸(virtual notch)。耳朵(island ears)的内容是事件驱动的,不是轮询——Spotify 耳朵靠通知,工时耳朵靠文件 watch,Claude 会话图标靠 hook 写的状态文件。作者在更新日志里为这些小毛病修了十几个版本(v0.33 到 v0.35 全是刘海和耳朵的打磨),看得出是真每天在用。
安装方式本身就是 vibe 宣言一般 macOS 工具的 README 写“下载 dmg 双击安装”,Kajo 的 README 写的是“打开这个仓库,让 Claude Code 帮你装”。那段复制粘贴 prompt 长达上百行:先检查 macOS 14+ 和命令行工具,再二选一处理代码签名(建一个叫“Kajo Self-Signed”的自签名证书,或者改成临时签名),然后 make install 装到 /Applications、注册 kajo:// scheme,接着问你用什么方式唤起(skhd、Hammerspoon、Raycast 还是菜单栏按钮),最后把写死的赫尔辛基/吉隆坡/马拉加三个城市换成你自己的城市。它甚至提醒你:示例配置里指向作者个人 AWS 的 remote 字段千万别照抄。一个把“怎么在你电脑上跑起来”都外包给 AI 的项目,100% vibe-coded 这句话就不是口号,是工作流。
适合谁适合三类人:一是 macOS 重度用户,尤其用 Raycast/sketchybar/skhd 的那批——Kajo 的 kajo:// scheme 能直接嵌进你现有的快捷键体系;二是 Gruvbox 配色爱好者,这个深棕底 + 蜜黄字的界面在 README 截图里相当耐看;三是对“AI 结对编程能做到什么程度”好奇的人:这是一个 76 commit、仍在迭代的真实自用软件,不是 demo,它证明了 Claude Code 不只能写小脚本,还能陪一个人把“每天用的工具”从 0 做到 1。
不适合谁也要说清楚:它不是开箱即用的 App Store 应用。在新 Mac 上跑起来要自己构建、自己搞定代码签名,部分功能(UniFi、Home Assistant、Severa 工时上传)需要你有对应的服务端。这正是作者那句“use at your own risk”的意思——但反过来说,愿意折腾的人,拿到的是一套完全按自己手型长的控制中心。