-
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 编程工具提供实时项目上下文 + AI 驱动的授权决策。
像素螃蟹吉祥物嵌入刘海区域,配合脉冲指示器。编程 app 在前台时始终可见。
![]()
显示当前项目名称、AI 生成的摘要、以及打开 Memora 项目的链接。螃蟹从收缩位置走到左边缘,带腿部动画。v0.4.1 起点击展开态空白区域即可收起,方便临时看被面板遮住的窗口内容;下次窗口 title 变化时会自动重新展开。
![]()
AI 工具需要权限运行命令或编辑文件时,Beacon 显示语义化动作(如 "🔍 搜索文件"、"💾 git 提交")、关键参数,以及 Risk Engine 分析完成后的风险等级(low/medium/high)和建议(allow/ask/deny)。分析中显示 spinner;LLM 超时或不可用会降级到静态规则或 raw command 显示,不会出现空白面板。
![]()
Beacon 是 Channel 之一 —— Memora 可把授权请求同时 fan-out 到多个通知渠道。见 Settings 了解如何同时启用飞书(Lark)channel。
-
Hook 集成 —
memora-hook的 PreToolUse handler 把请求 JSON 写到~/.memora/beacon-requests/<toolUseId>.json,阻塞等响应。 -
三层决策架构(详见 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推给面板。
-
Hard Deny(正则 + 上下文)— 明显危险(
-
文件 IPC — 你点 Allow/Deny(或 Lark 先响应、或省心模式 auto-allow)时,Memora 写
~/.memora/beacon-responses/<toolUseId>.json。hook 监听该目录,读到决定后退出。不做按键注入,不抢焦点。 -
自动 dismiss —
PostToolUsehook 写~/.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 高),营造"从屏幕边缘生长"的效果
-
层级:
NSPanel在statusBar + 1— 始终在菜单栏之上 -
背景:纯黑
NSView(NSVisualEffectView无法实现纯黑) -
坐标系:路径在视觉坐标(y=0 在顶部)绘制,通过
CGAffineTransform翻转到 CG 坐标