远端探针
VibeBar Probe 是普通 Linux 服务,不是 AI agent。它只读取白名单内的本地 CLI 用量元数据,在本机维护持久化账本与 outbox,并通过 Relay 把端到端密文发给 macOS 上的 Vibe Bar Core。
被观察机器无需开放入站端口。Probe、Relay、Core、Web 和未来 iOS 是彼此独立的 角色;不同用户之间不会共享 Workspace、凭据、Cursor 或加密密钥。
系统要求
- 带 systemd 的 64 位 x86 Linux;
- 能以 root 安装加固服务;
- Workspace 已经纳管一台 Vibe Bar Core;
- 能出站 HTTPS 访问 Control 服务与所选 Relay。
当前推荐的正式二进制版本是 v0.2.1。其他 CPU 架构仍可运行经过审查的源码构建, 但目前没有官方二进制资产。
1. 下载并校验
从公开 Probe 仓库下载 Bundle 与校验文件:
gh release download v0.2.1 --repo AstroQore/vibebar-probe \
--pattern 'vibebar-probe-0.2.1-linux-x86_64.tar.gz*'
sha256sum -c vibebar-probe-0.2.1-linux-x86_64.tar.gz.sha256
tar -xzf vibebar-probe-0.2.1-linux-x86_64.tar.gz
cd vibebar-probe-0.2.1-linux-x86_64如果服务器没有 GitHub CLI,也可以直接用 curl 下载同一组公开资产:
curl -fLO https://github.com/AstroQore/vibebar-probe/releases/download/v0.2.1/vibebar-probe-0.2.1-linux-x86_64.tar.gz
curl -fLO https://github.com/AstroQore/vibebar-probe/releases/download/v0.2.1/vibebar-probe-0.2.1-linux-x86_64.tar.gz.sha256
sha256sum -c vibebar-probe-0.2.1-linux-x86_64.tar.gz.sha256
tar -xzf vibebar-probe-0.2.1-linux-x86_64.tar.gz
cd vibebar-probe-0.2.1-linux-x86_64校验没有输出 OK 就必须停止。
2. 安装
默认服务观察 /root 下受支持的 CLI Session 目录:
sudo ./install.sh要观察其他账号,让安装器解析该账号的真实 Home:
sudo ./install.sh --observe-user example安装器把不可变二进制放在 /opt/vibebar-probe/releases/,原子切换 /opt/vibebar-probe/current,安装 systemd 单元;配置与状态独立保存在 /etc/vibebar-probe 和 /var/lib/vibebar-probe。
3. 创建一次性纳管码
在 Mac 上打开 Vibe Bar 设置 → Remote Probe Sync,确认这台 Mac 是当前活跃 Core。然后在 Web 用户中心打开 Enroll device,为同一个 Workspace 创建一次性 Probe 码。
纳管码短时有效且只能使用一次。不要把它粘贴到 Issue、聊天、Service 文件或命令行。
4. 纳管并启动
不传 --code;CLI 会安全提示输入,避免写入 Shell History:
sudo /opt/vibebar-probe/current/vibebar-probe enroll \
--control-url https://vibebar.aqor.io \
--home-directory /root \
--alias "My server"
sudo systemctl enable --now vibebar-probe.service如果安装时使用了 --observe-user,这里的 --home-directory 也要换成该用户的 Home。
从三层验证:
sudo systemctl status --no-pager vibebar-probe.service
sudo /opt/vibebar-probe/current/vibebar-probe status
sudo journalctl -u vibebar-probe.service -n 50 --no-pager再打开 Vibe Bar 的 Remote Machines 页面;Sequence 应继续增长,各数据源应显示 ok 等有界状态。
更新与回滚
按上面的方式下载并校验新 Bundle,解压后执行:
sudo /usr/local/sbin/vibebar-probe-update \
--bundle "$PWD/vibebar-probe-<version>-linux-x86_64"更新器会校验包内所有文件与版本、运行离线自检、停止活跃 Probe 服务、创建 mode 0600 状态备份、原子切换 current,并要求重启后的服务持续健康;失败时恢复之前的 软链和 systemd 单元。纳管凭据、事实与待发密文 outbox 从不放在版本目录里。
旧的 0.1.x 源码/virtualenv 安装没有内置更新器。首次升级运行一次 0.2.1 安装器即可;原有配置与状态会保留,并迁移到二进制目录布局。可识别的旧 Python systemd 覆盖会在事务内备份并移除;遇到不完整或未知覆盖时会拒绝并回滚,不会猜测。
自动无人值守下载有意保持关闭。当前 SHA-256 可以发现传输损坏,但在固定 Ed25519 发布 Manifest 完成前,不能把 GitHub 当作无人值守更新的信任根。
Live、Delayed 与 Stale
Probe 会频繁扫描;没有新用量事实时,大约每五分钟发送一次状态 Heartbeat。Core 观察到至少两个批次后会学习这台机器自己的节奏:
- Live:仍处在预期上报窗口内;
- Delayed:错过了一个预期上报;
- Stale:又错过了第二个窗口。
因此健康的五分钟 Heartbeat 不会在两分钟后就被误标成 Delayed。Delayed 本身也不 表示数据丢失:Probe 有持久化 outbox,Relay 在 Core ACK 之前会保留未消费密文。
把 Probe 并入总计
远端机器默认不加入成本总计,避免升级后静默改变你已经熟悉的数字。在 Remote Machines 页面或 设置 → Remote Probe Sync → Cost aggregation 打开 Include in totals。
所选机器会与这台 Mac 的本地 Core Snapshot 合并,显示在 Overview,以及 Codex、 Claude、AntiGravity、Grok 的成本/Token 页面。选择与聚合都只发生在这台 Mac。 如果某个 Probe 扫描的就是这台 Mac 已经本地扫描的同一批 CLI Log,不要勾选, 否则会重复计算。
端到端加密与 Web 新鲜度
Probe 事实只加密给 Workspace 当前活跃 Core。Relay 在自己的节点保存密文和 Cursor; 托管数据库只保存账号、Workspace、纳管、目录与审计元数据。两者都无法计算你的 用量。
目前 Web 用户中心负责元数据与设备纳管,加密的 Web/iOS 用量视图尚未发布。未来 每个浏览器/iOS 设备都有独立、经 Core 批准的收件密钥,并在本地解密 Core 发布的 View Snapshot。Core 休眠时,Web/iOS 必须把最后 Snapshot 标为 Stale,不存在托管 明文降级。需要持续新鲜视图的用户,未来可以运行自己拥有的常在线 Headless Core。
故障排查
服务读不到 Provider 数据源
用正确的 --observe-user 重新运行安装器,或检查 /etc/systemd/system/vibebar-probe.service.d/10-observed-home.conf。不要给服务 整个 Home 的读取权;保持只读挂载仅覆盖文档列出的 Session 目录。
纳管提示没有活跃 Core
先在 Mac 上打开 Vibe Bar 并完成 Core 纳管。Probe 必须从经过认证的 Control 服务 获得活跃 Core 公钥,绝不会让 Relay 选择加密收件人。
更换 Core 后停止出数
Probe 0.2.x 会自动跟随认证后的 Core 密钥轮换(通常五分钟内)。检查版本和日志:
/opt/vibebar-probe/current/vibebar-probe version
journalctl -u vibebar-probe.service -n 100 --no-pager完整安全与更新设计见公开 Probe 仓库。