-
Notifications
You must be signed in to change notification settings - Fork 2
Beacon zh
LeonXu edited this page Apr 20, 2026
·
3 revisions
English | 中文
Beacon 是一个浮动面板,位于 macOS 菜单栏上方,灵感来自 iPhone 灵动岛。为 AI 编程工具提供实时状态和授权控制。
像素螃蟹吉祥物嵌入刘海区域,配合脉冲指示器。编程 app 在前台时始终可见。
![]()
显示当前项目名称、AI 生成的摘要、以及打开 Memora 项目的链接。螃蟹从收缩位置走到左边缘,带腿部动画。v0.4.1 起点击展开态空白区域即可收起,方便看被面板遮住的窗口内容。
![]()
AI 工具需要权限运行命令或编辑文件时,Beacon 显示请求详情和 Allow/Deny 按钮。
![]()
-
Hook 集成 —
memora-hook的 PreToolUse 处理器写入请求文件,立即返回"ask"(非阻塞) - 双通道提示 — Beacon 和终端同时显示授权提示
-
按键转发 — 在 Beacon 点击 Allow/Deny 时,通过
CGEvent.postToPid()直接发送对应按键(Enter/Esc/Shift+Tab)到目标终端进程,不切换窗口焦点 - 自动消失 — PostToolUse hook 写入 resolved 时间戳;Beacon 每 2 秒轮询,检测到工具完成后自动关闭通知
按钮数量按来源和工具配置:
| 来源 | 工具 | 按钮数 |
|---|---|---|
| Claude Code | Edit, Write | 3(Allow / Allow All / Deny) |
| Claude Code | Bash | 2(Allow / Deny) |
| 其他工具 | 任意 | 2(Allow / Deny) |
- 形状:凹弧贝塞尔曲线(15px 宽 × 30px 高),营造"从屏幕边缘生长"的效果
-
层级:
NSPanel在statusBar + 1— 始终在菜单栏之上 -
背景:纯黑
NSView(NSVisualEffectView无法实现纯黑) -
坐标系:路径在视觉坐标(y=0 在顶部)绘制,通过
CGAffineTransform翻转到 CG 坐标