Skip to content

会话监控

Copilot Island 的核心功能是对您的 GitHub Copilot CLI 会话进行实时监控。

会话检测原理

Copilot Island 使用 macOS FSEvents 监控 ~/.copilot/session-state/ — 这是 Xcode 和 Spotlight 同样使用的低延迟文件系统通知 API。当 Copilot CLI 创建新的会话目录时,Copilot Island 会在毫秒内检测到。

~/.copilot/session-state/
└── {UUID}/                    ← 新目录触发检测
    ├── workspace.yaml         ← 会话元数据
    └── events.jsonl           ← 事件流(实时追加)

无需任何钩子、插件或 CLI 修改。

会话卡片

每个会话在刘海面板中以卡片形式显示,包含:

字段描述
🟢 状态点绿色 = 活动中,灰色 = 已结束
项目路径workspace.yaml 中的 cwd
Git 分支当前分支(如果在 git 仓库中)
会话摘要Copilot CLI 自动生成的摘要
已用时间会话开始后经过的时间

事件流

在每个会话中,Copilot Island 持续读取 events.jsonl 并处理以下事件类型:

事件类型含义
session.start新的 Copilot CLI 会话已开始
user.message您向 Copilot 发送了消息
assistant.turn_startCopilot 开始思考/响应
assistant.messageCopilot 生成了响应
tool.execution_startCopilot 即将运行工具
tool.execution_complete工具已完成(成功或失败)
assistant.turn_endCopilot 完成了本次响应
abort会话被用户中止
session.shutdownCopilot CLI 进程已退出

多会话支持

Copilot Island 可追踪所有并发会话。如果您有多个终端窗口运行 copilot,每个会话将作为独立卡片显示。会话按最近活动时间排序。

会话保留

已结束的会话在当前应用启动期间仍保持可见。会话不会在应用重启后持久化(以保持应用轻量并保护您的隐私)。

隐私

Copilot Island 在本地从您的 Mac 读取会话数据,不会上传或分享任何内容。GitHub Models API 聊天功能是唯一的网络功能,且完全为选择性启用。

采用 Apache 2.0 许可证发布。