核心功能
roadrunner(rr)是 Beeper Desktop 的官方命令行接口,允许用户通过本地 API 直接操作聊天、消息、联系人和提醒功能。主要能力包括:
- 聊天管理:列出、搜索、创建聊天,支持按参与者、未读状态、活动时间等维度筛选
- 消息操作:发送/编辑消息、添加反应、搜索历史消息、下载附件、实时轮询新消息
- 联系人管理:搜索、解析联系人,支持跨账户查询
- 全局搜索:统一搜索聊天和消息内容
- 提醒功能:设置聊天提醒
- 应用控制:聚焦窗口、预填充草稿
显著优点
1. 功能全面:覆盖 Beeper 核心功能,支持 JSON 输出便于自动化集成
2. 安全设计:提供 --readonly、--agent 等安全模式,支持命令白名单 --enable-commands
3. 结构化错误:--envelope 选项返回标准化错误码(AUTH_ERROR、NOT_FOUND 等)及修复提示
4. 去重与追踪:支持 --request-id 和 --dedupe-window 防止非幂等操作重复执行
5. 灵活认证:支持本地配置文件或环境变量,token 不暴露于命令行
潜在局限
- 依赖桌面端:必须保持 Beeper Desktop 运行,无法独立工作
- 本地网络限制:仅能通过本地 API 访问,无法远程操作
- 消息搜索局限:仅支持字面匹配,无语义搜索能力
- 实验性功能:
rr events tail的 WebSocket 支持尚不稳定 - 平台绑定:主要针对 macOS(Homebrew 安装),其他平台需 Go 源码安装
适合人群
- 需要批量处理聊天数据的高级用户
- 希望自动化消息工作流的开发者
- 习惯命令行效率的 Beeper 重度用户
- 需要集成 Beeper 数据到外部系统的技术团队
常规风险
- 误操作风险:消息发送/编辑不可逆,建议默认使用
--readonly - Token 安全:需妥善保管
~/.config/beeper/config.json中的认证令牌 - Shell 注入:发送消息时注意特殊字符转义,推荐使用
--stdin方式 - 历史扩展冲突:bash/zsh 中
!字符会触发历史扩展,需用单引号包裹或禁用该功能 - 数据隐私:聊天列表和消息内容属于敏感信息,应避免将原始 JSON 输出嵌入对外消息