安装
把 herdr-bar 装成菜单栏 extra,连上本机已经在跑的 Herdr。
前提条件
- macOS 13+
- Swift(Xcode 或 Command Line Tools)
- Herdr 0.8+,并且至少有一个 session 在跑(
herdr或herdr session attach <name>) - 本机有 Herdr socket:
- default:
~/.config/herdr/herdr.sock - named:
~/.config/herdr/sessions/<name>/herdr.sock
- default:
先确认 Herdr 在线
herdr-bar 自己不启动 Herdr。菜单栏如果只剩一颗 22pt 灰点,多半是 socket 还不存在,而不是安装失败。
安装
推一个 v* tag 后,.github/workflows/release.yml 会编一份 universal HerdrBar.app,打成 zip 挂到 GitHub Release。二进制只有 ad-hoc 签名——没有 Developer ID、没有公证、也没有 Sparkle 自动更新(那条发布线需要本仓库没有的 Apple 证书)。齿轮 → About 可以对照 GitHub Releases 并打开最新 tag,但不能替换正在运行的 extra。下载解压后:
xattr -cr HerdrBar.app
open HerdrBar.app第一次可能要右键 → 打开。
或从源码构建并放到 ~/Applications/HerdrBar.app:
git clone https://github.com/openalon-org/herdr-bar.git
cd herdr-bar
./scripts/install.sh
open ~/Applications/HerdrBar.appinstall.sh 会调 scripts/package-app.sh(本机架构,不是 universal):
swift build -c release --product MacBar- 写出
~/Applications/HerdrBar.app(LSUIElement,bundle iddev.herdr.herdr-bar) - 把二进制放进
Contents/MacOS/MacBar,用xcodebuild打真正的 widget app-extension 到PlugIns/HerdrWidget.appex,渲AppIcon.icns(浅色底 + 和 dashboard 左上角一样的灰cpu),再 ad-hoccodesign(先签 appex)。小组件打包需要 Xcode(xcodebuild),不只是 Command Line Tools。
应用不出现在 Dock。菜单栏右侧会出现一颗点(全 idle / 离线)或一组状态 chip。
install.sh 不杀正在跑的 MacBar。改完源码要换成菜单栏里那份:./scripts/reload.sh(先 swift test,再安装并重启 extra)。
首次启动
- 打开 Herdr TUI(default 或 named session)。
- 打开
HerdrBar.app。 - 左键菜单栏计数 → 打开仪表盘。
- Option-click → 聚焦最高优先级 agent。
- 右键 → 立刻刷新。
登录项
macOS 不会自动开机启动。在仪表盘齿轮里打开 Open at login(或到 系统设置 → 通用 → 登录项 加上 HerdrBar)。两处写的是同一份名单。
演示模式
没有 Herdr 也能看 UI。fixture 会在 /tmp/herdr-demo.sock 上模拟 newline JSON-RPC,并循环几组状态:
./scripts/dev-run.sh --demoHERDR_SOCKET 会固定单个 socket,发现层把它命名为 demo,不再扫描 ~/.config/herdr。
HERDR_SOCKET=/path/to/herdr.sock ./scripts/dev-run.sh开发期的 throwaway 运行(不安装 app bundle):
./scripts/dev-run.sh