核心用法
roadrunner (rr) 是 Beeper Desktop 的官方命令行接口,让用户无需打开 GUI 即可操控跨平台即时通讯(支持 iMessage、WhatsApp、Signal 等 15+ 网络)。核心能力覆盖四大领域:
1. 聊天管理:chats list/search/resolve/get 浏览与定位对话,--inbox=primary 可过滤主收件箱,--unread-only 仅看未读。
2. 消息操作:messages list/search/send/edit/tail 实现消息查询、发送、编辑与实时监听;--download-media 自动拉取附件到本地。
3. 全局搜索:rr search "keyword" 支持跨聊天全文检索,可限定时间范围、发送者、媒体类型。
4. 焦点与提醒:rr focus 唤起桌面应用并预填充草稿;rr reminders set/clear 设置聊天提醒。
Agent 友好设计:--agent 标志强制启用 JSON 输出、信封错误结构、无交互模式与只读安全策略,适合脚本集成。--readonly、--enable-commands 提供细粒度权限控制,防止误操作。
显著优点
- 多协议统一:通过 Matrix 桥接,单一 CLI 管理十余个消息网络,告别各平台独立客户端。
- 结构化输出:所有命令支持
--json,配合--envelope返回标准错误码(AUTH_ERROR、NOT_FOUND等),便于程序化重试。 - 安全机制完善:破坏性操作需显式
--force;--request-id+--dedupe-window防止非幂等写入重复执行;环境变量注入 token 避免硬编码。 - 高效批量处理:
--all --max-items=5000自动分页拉取,适合备份或审计场景。
潜在局限
- 依赖 Beeper Desktop:必须保持桌面应用运行,CLI 仅作为本地 API 封装,无法独立工作。
- 搜索语义有限:
messages search为字面词匹配,不支持向量语义或模糊拼音。 - 身份验证门槛:需从 Beeper Desktop 导出 token(
BEEPER_TOKEN),首次配置略显繁琐。 - 平台锁定:深度绑定 Beeper 生态,迁移至其他 Matrix 方案需重写工作流。
适合人群
- 自动化爱好者:希望用脚本批量发送通知、备份聊天记录、构建个人消息搜索引擎。
- 多账号运营者:社交媒体管理、客服团队需同时监控多个 iMessage/WhatsApp 商业账号。
- 隐私敏感用户:倾向本地 token 认证、拒绝云端 SaaS 消息托管的技术用户。
常规风险
| 风险类型 | 说明 |
|---------|------|
| 数据泄露 | 若 `BEEPER_TOKEN` 被写入 shell history 或日志文件,可能导致账号被盗用。建议 `set +H` 禁用 bash 历史扩展。 |
| 误发消息 | 脚本 bug 或错误的 `chat-id` 可能导致消息发送至错误对象,建议先用 `--readonly` 验证。 |
| 速率限制 | 高频调用本地 API 可能触发 Beeper Desktop 内部限流,表现为 `CONNECTION_ERROR`。 |
| 附件安全 | `--download-media` 拉取的外部文件需常规杀毒扫描,防范恶意 payload。 |