Skip to content

Beacon zh

LeonXu edited this page Apr 20, 2026 · 3 revisions

English | 中文

Beacon — AI 编程的灵动岛

Beacon 是一个浮动面板,位于 macOS 菜单栏上方,灵感来自 iPhone 灵动岛。为 AI 编程工具提供实时状态和授权控制。

状态

收缩态

像素螃蟹吉祥物嵌入刘海区域,配合脉冲指示器。编程 app 在前台时始终可见。

收缩态

展开态

显示当前项目名称、AI 生成的摘要、以及打开 Memora 项目的链接。螃蟹从收缩位置走到左边缘,带腿部动画。v0.4.1 起点击展开态空白区域即可收起,方便看被面板遮住的窗口内容。

展开态

通知态(授权)

AI 工具需要权限运行命令或编辑文件时,Beacon 显示请求详情和 Allow/Deny 按钮。

授权

工作原理

  1. Hook 集成memora-hook 的 PreToolUse 处理器写入请求文件,立即返回 "ask"(非阻塞)
  2. 双通道提示 — Beacon 和终端同时显示授权提示
  3. 按键转发 — 在 Beacon 点击 Allow/Deny 时,通过 CGEvent.postToPid() 直接发送对应按键(Enter/Esc/Shift+Tab)到目标终端进程,不切换窗口焦点
  4. 自动消失 — 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 高),营造"从屏幕边缘生长"的效果
  • 层级NSPanelstatusBar + 1 — 始终在菜单栏之上
  • 背景:纯黑 NSViewNSVisualEffectView 无法实现纯黑)
  • 坐标系:路径在视觉坐标(y=0 在顶部)绘制,通过 CGAffineTransform 翻转到 CG 坐标

Clone this wiki locally