核心用法
roadrunner(rr)是 Beeper 统一消息平台的官方 CLI 工具,通过本地 API 与 Beeper Desktop 通信,实现对多账户消息平台的命令行操控。主要功能模块包括:
- 账户管理:
rr accounts list查看已连接账户,rr capabilities获取功能元数据 - 聊天操作:
rr chats list/search/get浏览和检索对话,rr messages list/search/tail查看消息流 - 消息发送:
rr messages send/edit发送或编辑消息,rr messages send-file上传附件发送 - 联系人管理:
rr contacts search/resolve查找和解析联系人 - 全局搜索:
rr search跨聊天搜索消息和对话 - 提醒与聚焦:
rr reminders set/clear设置消息提醒,rr focus控制应用焦点和草稿
Agent 友好模式:--agent 标志强制 JSON 输出、结构化的 envelope 错误、无交互模式和只读默认,适合自动化脚本集成。--readonly、--enable-commands 和 --envelope 提供细粒度安全控制。
显著优点
1. 多平台统一:Beeper 原生聚合 iMessage、WhatsApp、Signal、Telegram 等 14+ 聊天服务,单 CLI 管理全渠道
2. 结构化输出:原生支持 --json 和 --envelope 错误格式,便于程序解析和错误恢复
3. 强大的搜索能力:支持按日期、发送者、媒体类型、阅读状态等多维度过滤消息
4. 安全的自动化设计:--agent 模式默认只读,非幂态操作需显式启用;--dedupe-window 和 --request-id 防止重复写入
5. 本地优先:依赖本地运行的 Beeper Desktop,无需暴露云端凭证,令牌通过环境变量管理
6. 流式与轮询支持:tail 和 wait 子命令支持实时消息监控和工作流触发
潜在缺点与局限性
- 依赖桌面客户端:必须保持 Beeper Desktop 运行,无法独立作为纯服务端工具使用
- 令牌管理负担:
BEEPER_TOKEN需手动从应用设置提取,无 OAuth 等自动化授权流程 - 搜索语义有限:消息搜索为字面词匹配,不支持向量语义搜索
- 历史扩展风险:
!字符在 bash/zsh 中触发历史扩展,需额外注意转义或禁用该功能 - Matrix ID 暴露:部分 DM 标题显示原始 Matrix ID,对非技术用户不够友好
适合人群
- 需要将聊天数据集成到自动化工作流的开发者/DevOps 工程师
- 使用 Beeper 聚合多平台消息、偏好命令行效率的高级用户
- 构建聊天机器人、消息归档系统或通知管道的系统管理员
- 希望通过脚本批量管理聊天记录、设置提醒的自动化爱好者
常规风险
- 令牌泄露:
BEEPER_TOKEN具备完整 API 权限,硬编码或日志泄露可导致账户接管。务必使用环境变量,禁止在聊天中传输 - 意外消息发送:
--no-input配合--force会跳过确认,脚本逻辑错误可能导致消息误发 - Shell 注入:消息文本通过 shell 传递时,
$和!等特殊字符可能触发扩展。必须使用<<'EOF'heredoc 或--stdin安全传递 - 速率限制:未公开的 API 限流机制,高频轮询可能触发临时封禁
- 数据同步延迟:本地 API 与 Beeper 云端存在同步延迟,极端情况下消息状态可能不一致