核心用法
alexacli 是一款基于 Go 编写的命令行工具,通过逆向 Amazon Alexa 移动应用使用的非官方 API,实现对 Echo 设备与智能家居的远程控制。核心能力围绕三大场景:
1. 语音播报(TTS):将任意文本转为语音输出到指定或全部 Echo 设备,支持部分匹配设备名(如 -d Kitchen 匹配 "Kitchen Echo"),常用于构建完成通知、服务器告警等自动化场景。
2. 语音命令代理:通过 alexacli command 将自然语言指令(如"turn off living room lights")发送至指定 Echo,由 Alexa 解析并执行。这是控制智能灯具、温控器、门锁、播放音乐、设置计时器的主要方式,无需记住具体设备 ID。
3. 设备管理:列出所有 Echo 设备信息,支持 --json 输出标准化 JSON({success, data, error} 信封格式),便于脚本解析。
显著优点
- 自然语言控制:无需硬编码设备 ID 或记忆复杂 API,直接复用用户已习惯的 Alexa 语音指令。
- 灵活部署:提供 Homebrew 与 Go install 两种安装方式,单二进制文件无依赖。
- CI/CD 友好:结构化 JSON 输出、退出码规范,易于集成到自动化流水线。
- 跨设备广播:
--announce可同时向所有 Echo 播报,适合全屋通知。
潜在缺点与局限性
- 非官方 API 风险:依赖 Amazon 未公开的内部接口,随时可能因服务端变更而失效。
- Token 生命周期短:Refresh token 约 14 天过期,需定期重新认证(
alexacli auth),长期自动化需配套续期机制。 - 功能边界:直接智能家居 API(
alexacli sh)标记为 Coming Soon,目前仅能通过语音命令间接控制;Routines 支持同样未实装。 - 认证门槛:需借助第三方工具(alexa-cookie-cli)获取 refresh token,对普通用户不够友好。
适合人群
- 已将智能家居深度绑定 Alexa 生态的技术用户
- 需在服务器/构建节点推送语音告警的运维/开发者
- 希望用脚本编排"早安模式""离家模式"等场景自动化的智能家居爱好者
常规风险
| 风险类别 | 说明 |
|---------|------|
| 账号安全 | Refresh token 等同于长期凭证,泄露可导致他人远程控制家中设备;建议配合环境变量或密钥管理工具(如 1Password CLI)使用,避免硬编码。 |
| API 稳定性 | 非官方接口无 SLA,重大节日或 Amazon 策略调整时可能突然失效。 |
| 隐私边界 | 语音命令经由 Amazon 云端解析,敏感操作(如解锁门锁)存在语音指令被误识别或日志留存的风险。 |