Skip to content

Beacon zh

LeonXu edited this page Apr 20, 2026 · 3 revisions

English | 中文

Beacon — AI 编程的灵动岛

Beacon 是一个浮动面板,位于 macOS 菜单栏上方,灵感来自 iPhone 灵动岛。为 AI 编程工具提供实时项目上下文 + AI 驱动的授权决策。

状态

收缩态

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

收缩态

展开态

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

展开态

智能审批态(v0.4)

AI 工具需要权限运行命令或编辑文件时,Beacon 显示语义化动作(如 "🔍 搜索文件"、"💾 git 提交")、关键参数,以及 Risk Engine 分析完成后的风险等级(low/medium/high)和建议(allow/ask/deny)。分析中显示 spinner;LLM 超时或不可用会降级到静态规则或 raw command 显示,不会出现空白面板。

授权

授权工作流

Beacon 是 Channel 之一 —— Memora 可把授权请求同时 fan-out 到多个通知渠道。见 Settings 了解如何同时启用飞书(Lark)channel。

  1. Hook 集成memora-hook 的 PreToolUse handler 把请求 JSON 写到 ~/.memora/beacon-requests/<toolUseId>.json,阻塞等响应。
  2. 三层决策架构(详见 Changelog v0.4.0):
    • Hard Deny(正则 + 上下文)— 明显危险(rm -rf /git push --force、凭据路径)强制 ask
    • Hard Allow — 项目内 Edit/Write 和只读/构建/日常 git Bash → 立即写响应,不弹通知
    • 灰色地带 — fan-out 给所有启用 channel;Risk Engine(LLM advisor:DeepSeek / Claude / OpenAI)并行跑,verdict 通过 beacon:updateNotification 推给面板。
  3. 文件 IPC — 你点 Allow/Deny(或 Lark 先响应、或省心模式 auto-allow)时,Memora 写 ~/.memora/beacon-responses/<toolUseId>.json。hook 监听该目录,读到决定后退出。不做按键注入,不抢焦点
  4. 自动 dismissPostToolUse hook 写 ~/.memora/beacon-resolved/latest;面板下一次 scan 发现请求文件被消费就清掉。

两种操作模式

模式 行为
正常(默认) deny-list / hard-allow 之外全部弹通知,LLM verdict 作为参考。
省心(opt-in) LLM 判 level != high && rec != deny → 自动 approve,不打扰。Settings → Risk Engine 切换。

省心模式需要配置 LLM provider;provider 不可用时自动降级回正常模式(弹通知让你决定),保证永远有人类兜底。

按钮数量

来源 工具 按钮
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