一个轻量级的 macOS 菜单栏 App,用来盯着本机正在跑的 Claude Code CLI 会话。
- 会话总览:当前所有 CLI 会话(pid、cwd、状态),按项目目录展示。
- 状态指示:菜单栏图标在 idle / working / waiting 三种状态下变色(黑/橙/黄)。
- 等待提醒:任意会话进入
waiting(CLI 弹了确认对话框)时立刻发送系统通知,省得切回 Terminal 才发现。 - 状态栏授权:右上角弹一个浮动小面板,带 允许 / 一直允许 / 拒绝 按钮(Return / Esc 也可),单击直接回应 CLI 的权限请求,不用切回 Terminal。「一直允许」把规则加进本会话临时白名单(不污染
settings.json)。在终端直接按 y/n 也行,面板会自动消失。注册一次PermissionRequesthook 即可,对 vanillaclaude直接生效;详见 docs/permission-prompt.md。 - 上下文用量:每条会话显示当前模型 + 上下文窗口占用百分比(读
~/.claude/projects/.../*.jsonl最近一条 assistant 消息)。 - 累计用量:菜单底部按模型聚合 token 总量与占比(实时扫描
~/.claude/projects/,不依赖 stats 缓存)。
- macOS 13 (Ventura) 及以上
- 已安装并运行过 Claude Code CLI(依赖它在
~/.claude/sessions/和~/.claude/projects/下写入的文件)
- 到 Releases 下载最新的
ClaudeStatusBar-x.y.z.zip。 - 解压后把
ClaudeStatusBar.app拖进/Applications。 - 首次打开:直接双击会被 Gatekeeper 拦截(“无法打开,因为开发者无法验证”)。在 Finder 里 右键 → 打开,弹窗里再点“打开”即可。这一步只需要做一次。
App 是 ad-hoc 签名的(未付费 Apple Developer 签名,也未做公证)。如果不放心可以跳过下载、自行从源码构建。
git clone https://github.com/hadesh/ClaudeStatusBar.git
cd ClaudeStatusBar
./scripts/package.sh # 产物在 dist/ClaudeStatusBar.app
open dist/ClaudeStatusBar.app或者直接跑(不打包,开发模式):
swift run注意:
swift run启动时没有 bundle identifier,系统通知会降级为osascript display notification。打成.app之后才会用UNUserNotificationCenter。
swift build # 编译
swift test # 跑全部测试
swift test --filter ClaudeStatusBarTests.SessionTests # 单个 suite代码结构和数据流见 CLAUDE.md。
退出菜单栏图标(点击 → Quit),把 /Applications/ClaudeStatusBar.app 扔进废纸篓即可。开启了状态栏授权功能的话,再删一下 ~/Library/Application Support/ClaudeStatusBar/(里面只有一个 socket 文件),并把 ~/.claude/settings.json 里 hooks.PermissionRequest 那一段对应条目移除。
MIT © 2026 Hades
