从零编译Coucou:macOS XcodeGen与Windows Tauri 2双平台构建教程
【免费下载链接】coucouA tiny friend that lives in your notch (macOS) or at the top of your screen (Windows, Linux) and keeps an eye on your coding agents: Claude Code, Gemini CLI, Antigravity and more.项目地址: https://gitcode.com/gh_mirrors/co/coucou
Coucou是一款开源的桌面伙伴应用,用于实时盯着你的 Claude Code 会话:一个叫 Mochi 的小家伙住在 MacBook 刘海里(Windows 上则趴在屏幕顶部),帮你批准权限、查看进度、聊天和拖入文件。本文是一份面向新手的完整构建指南,带你从零在 macOS(Xcode + XcodeGen)和 Windows(Tauri 2 + Rust)双平台编译 Coucou,全程只需几条命令。
构建前先了解:Coucou 的双平台架构
在动手之前,先花 1 分钟搞清楚两个平台的构建工具链,后面就不会迷路:
| 平台 | 技术栈 | 构建工具 | 源码位置 |
|---|---|---|---|
| 🍎 macOS | Swift 6 + SwiftUI + AppKit,零第三方依赖 | Xcode + XcodeGen | NotchBuddy/Sources/App/ |
| 🪟 Windows | Tauri 2(Rust 后端 + TypeScript 前端) | Cargo + Node + NSIS | windows/src/ 与 windows/src-tauri/ |
两个平台共用同一套 28 个音效文件,全部存放在 NotchBuddy/Resources/sounds/,Windows 端通过 windows/vite.config.ts 里的SOUNDS_DIR引用,不会重复拷贝。
macOS 构建:一键安装 XcodeGen
环境要求:macOS 15+、Xcode 16+(建议装最新版),以及 XcodeGen。
为什么需要 XcodeGen?因为 Coucou 遵循「project.yml 为唯一事实来源」的规则——永远不要手动编辑.xcodeproj,所有工程配置(签名、部署目标、双 Target)都声明在这个 YAML 文件里,由 XcodeGen 生成。
# 安装 XcodeGen 并克隆仓库 brew install xcodegen git clone https://gitcode.com/gh_mirrors/co/coucoumacOS 编译:三步生成工程并构建 Debug 版
进入项目目录,一条命令生成 Xcode 工程:
cd coucou/NotchBuddy xcodegen # 从 project.yml 生成 NotchBuddy.xcodeproj open NotchBuddy.xcodeproj # 然后按 ⌘R 运行如果你更喜欢纯命令行,官方推荐的构建命令是(见 CLAUDE.md):
xcodebuild -scheme NotchBuddy -configuration Debug build为什么 Debug 构建零配置就能跑?打开 project.yml 可以看到:Debug 配置下CODE_SIGNING_REQUIRED: NO,即本地调试完全不需要 Apple 开发者账号;只有 Release 配置才启用 Developer ID 签名。工程里还定义了第二个 schemeCoucouAppStore(App Store 分发版,沙盒签名),新手开发阶段用不到它。
💡 小技巧:改动工程结构后(比如新增 Swift 文件所在目录),重新运行
xcodegen即可,这是仓库约定的工作流,详见 CONTRIBUTING.md。
macOS 进阶:一条脚本完成 Release 打包与公证
如果想产出可分发的正式版本,仓库提供了完整的发布脚本 scripts/release.sh,它会自动完成六件事:
- 查找本机
Developer ID Application签名证书 xcodegen generate重新生成工程xcodebuild以 Release 配置构建并签名- 压缩为 Coucou.zip 并提交 Apple 公证(notarytool)
stapler装订公证票据- 打 git tag 并创建 Release
用法:./scripts/release.sh 0.2.0(版本号参数必填)。
Windows 构建:安装 Rust、Node 与 MSVC
环境要求(三项缺一不可):
- Rust 工具链:通过 rustup 安装
- Node 20+:负责前端构建(Vite + TypeScript)
- MSVC 构建工具:Visual Studio Build Tools,勾选「使用 C++ 的桌面开发」组件
- WebView2 在 Windows 10/11 上已预装,无需处理
与 macOS 版不同,Windows 版没有刘海,Mochi 会收进屏幕顶边、随时探出头,细节差异可参考 windows/README.md。
Windows 编译:最快打包安装器的方法
cd coucou/windows npm install npm run tauri dev # 开发模式:热重载,屏幕顶部立刻出现 Mochi npm run pack # 正式构建:产出 NSIS 安装器几个值得知道的细节(都能从 windows/package.json 里对应上):
predev/prebuild钩子会自动先编译 windows/hook/ 里的coucou-hook.exe——这是 Claude Code 钩子的中转可执行文件,负责通过命名管道把会话事件转给主程序;pack脚本=tauri build+ windows/scripts/pack.mjs:先构建安装器,再把它从target/release/bundle/nsis/复制到windows/release/,产出同名的Coucou-Windows-X.Y.Z-setup.exe和滚动名Coucou-Windows-setup.exe;- 那个 240×6、透明、置顶、不进任务栏的「岛屿窗口」,全部配置在 windows/src-tauri/tauri.conf.json 中。
不装也能跑:构建完成后直接运行target/release/coucou.exe即可,没有任务栏图标、没有控制台窗口——屏幕顶部的小岛和托盘里的 Mochi 就是整个应用。
构建后第一次运行与常见问题排查
两个平台构建完成后,第一次运行都需要做同一件事:安装 Claude Code 钩子。
点菜单/托盘图标 →Settings… → Claude Code → Install hooks…,Coucou 会先备份
~/.claude/settings.json(Windows 为%USERPROFILE%\.claude\settings.json),展示精确的 diff,你确认点击后才会写入。密钥统一存入 macOS 钥匙串或 Windows 凭据管理器,永不落盘。
常见问题速查表:
| 症状 | 原因 | 解决 |
|---|---|---|
xcodegen: command not found | 未安装 XcodeGen | brew install xcodegen |
| macOS 首次启动提示「无法验证开发者」 | 本地构建未公证 | 系统设置 → 隐私与安全性 → 仍要打开(仅一次) |
| Windows 构建卡在 MSVC 检查 | 缺 C++ 构建工具 | 重装 Build Tools 并勾选「使用 C++ 的桌面开发」 |
| 改了源码后 Mochi 动画没变化 | 前端未重新构建 | 重新npm run tauri dev(开发模式支持热重载) |
总结:双平台构建路线一图流
- 🍎macOS:
brew install xcodegen→cd NotchBuddy && xcodegen→ ⌘R 或xcodebuild;要发版就跑scripts/release.sh - 🪟Windows:装好 Rust / Node 20+ / MSVC →
cd windows && npm install→npm run tauri dev尝鲜、npm run pack打包 - 📖 想深入原理,推荐按顺序阅读:docs/SPEC.md(行为与状态机说明)→ windows/README.md(Windows 版差异)→ CONTRIBUTING.md(贡献规则)
从克隆到 Mochi 在屏幕顶部向你挥手,macOS 端约 5 分钟、Windows 端约 10 分钟。现在就动手试试吧——Mochi 正在等它的第一位造访者。
【免费下载链接】coucouA tiny friend that lives in your notch (macOS) or at the top of your screen (Windows, Linux) and keeps an eye on your coding agents: Claude Code, Gemini CLI, Antigravity and more.项目地址: https://gitcode.com/gh_mirrors/co/coucou
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考