CodeIsland
MacBook刘海区实时展示14种AI编程工具状态,像素风角色动画,支持权限审批与跨设备同步
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
MacBook刘海区实时展示14种AI编程工具状态,像素风角色动画,支持权限审批与跨设备同步
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。

想象这样一个场景: 深夜两点,你正盯着屏幕等待 Claude Code 完成重构,突然灵动岛弹出一条消息——"权限申请:执行 git commit?"你抬手用 Watch 轻轻一点,审批完成,Claude 继续埋头工作。这个曾经只存在于科幻电影里的交互画面,如今被一位开发者变成了现实。
CodeIsland 的诞生源于一个再普通不过的开发者痛点:当你同时开着 Claude Code、Cursor、Codex 等多个 AI 编程工具时,它们各自在终端窗口里默默运行,你需要频繁切换窗口才能知道"谁在干什么、谁在等什么审批"。尤其对于重度 AI 编程依赖者,这种信息碎片化带来的认知负担远超想象。
开发者 wxtsky 没有选择接受这个现状。他在 MacBook Pro 的刘海区域里找到了答案——既然刘海(Dynamic Island)本身就是 macOS 为实时活动信息设计的显示区域,为什么不让它来展示 AI 编程 Agent 的状态?
这个想法看似简单,实现却极具挑战:刘海区域的 UI 空间极为有限,信息密度要求极高;Unix socket IPC 需要对接完全不兼容的 14 种 AI 工具协议;像素风角色的动画帧需要在几十个像素内表达出每个工具的"性格"。
CodeIsland 采用纯 Swift/SwiftUI 技术栈开发,目标平台为 macOS 14+,代码规模达到 108 个 Swift 源文件。
核心架构分为三大层:
**表现层(SwiftUI + AppKit)**负责刘海区域的动态 UI 渲染。每个 AI 工具对应一个专属的 SwiftUI 视图组件(如 ClaudeView、CursorView、ClineView),每个组件内置像素风动画 GIF 角色,通过 SF Symbols 和自定义绘图实现紧凑状态展示。AntiGravityView 提供刘海展开时的交互动画。
**核心业务层(CodeIslandCore)**封装了所有与 AI 工具的通信逻辑。通过 Unix socket IPC 与各工具的运行时进程建立连接,解析工具输出流中的结构化事件(如权限请求、状态变更、工具调用)。AppState+TranscriptTailer 负责尾随各终端标签页的输出日志,AppState+ToolUseCache 维护工具调用的缓存以避免重复解析。
平台适配层支持多终端联动。AppleCompanionBluetoothPeripheral 和 AppleCompanionPublisher 实现 BLE(蓝牙低功耗)广播,将当前 AI 会话状态同步到 iPhone 和 Apple Watch;DexView 是 watchOS 的专属视图,提供表盘级状态展示。此外项目还包含 android-watch/ 目录,支持 Android 手表端的状态同步。
依赖管理方面,项目使用 Swift Package Manager(SPM),直接依赖了两个关键库:Sparkle 2.6+(macOS 自动更新框架,带 ed25519 签名验证)和 Yams 5.0+(YAML 解析,用于配置文件处理)。
CodeIsland 目前支持连接 14 种主流 AI 编程工具,覆盖终端类和 IDE 类两大场景:
| 分类 | 工具 | 支持状态 |
|---|---|---|
| 终端类 | Claude Code、Codex、Grok CLI、 Gemini CLI、TraeCli、Qoder、Copilot、Kimi Code CLI、Pi/Oh My Pi | 完整/基础 |
| IDE 类 | Cursor、Factory、CodeBuddy、OpenCode、Cline | 完整/基础 |
每种工具通过 Unix socket 接收其特定格式的事件流。例如 Claude Code 的 MCP 协议、Codex 的子代理元数据格式各不相同,CodeIsland 通过 TranscriptTailer 实时解析这些差异,将它们统一映射为面板上的状态展示。
一个有趣的细节是智能通知抑制:当用户在终端的某个标签页中"正在看"某个 AI 会话时,CodeIsland 不会重复发送系统通知——它通过 FSEvents 监听终端窗口的焦点变化,只有当用户切换离开时才触发通知。
在 AI Agent 自主执行的风潮中,权限控制始终是双刃剑:放得太开有安全风险,卡得太严又影响效率。CodeIsland 在这方面提供了一个有趣的中间层——它将 AI 工具的权限请求直接路由到刘海面板,用户可以实时审批或拒绝特定操作,而不必在工具和系统偏好设置之间来回切换。
这种"就近审批"的设计哲学,让安全审核变成了一种顺手的行为,而非被迫中断工作流的额外负担。
CodeIsland 的构建流程通过 build.sh 脚本驱动,内部调用 Xcode 的命令行工具链(xcodebuild)。项目支持源码构建和多平台编译:macOS 应用本体、Android 手表 APK、带 Watch 应用的变体等。代码签名和公证(notarization)也有官方支持,但需要 Apple Developer 账号。
这同时也是它最大的局限:CodeIsland 面向的是 macOS 生态内的用户,不支持 Linux 服务器部署,也不提供容器化方案。对于 Windows 用户,目前仅有基础的文档支持。换句话说,这是一个"深度 macOS 化"的产品,刘海体验本身就是它不可替代的价值。
每个 AI 工具在 CodeIsland 中都有一个专属的像素风动画"吉祥物"——Claude 是一只竖着耳朵的狐狸、Cursor 是蓝色方块、Gemini 是彩色星星。这些角色在刘海面板中以 16x16 或 32x32 像素的姿态出现,通过 GIF 动画循环播放。
这种设计并非单纯的美学选择:在刘海这个极度受限的显示空间里,像素风角色比文字或图标更容易快速识别工具身份,同时为严肃的"AI 编程"场景注入了一丝轻松感。
CodeIsland 代表着 AI 编程工具生态正在向更高层次的整合演进。在第一阶段,AI 编程工具解决的是"让 AI 帮你写代码"的问题;在第二阶段(如 Continue、Cursor 集成),解决的是"让 AI 工具和 IDE 深度融合";而 CodeIsland 正在探索的,是将多种 AI 编程工具的状态管理统一到一个系统级入口。
这种"工具管理面板"的思路,未来可能会演变为 AI 编程时代的"任务管理器"——不只是被动展示状态,还可能支持跨工具的任务队列、统一计费审计、自动化工作流编排等能力。
项目基本信息