核心用法
alexa-cli 是一款基于 Go 开发的开源命令行工具,通过调用 Amazon 非官方 API(与 Alexa 移动应用相同协议)实现对 Echo 音箱及智能家居生态的远程控制。
主要功能模块
1. 设备管理:alexacli devices 列出所有 Echo 设备,支持 JSON 输出便于脚本集成
2. 语音播报:speak 命令实现 TTS 文本转语音,支持定向播报或全屋广播(--announce)
3. 智能家居控制:command 模拟语音指令,控制灯光、温控器、门锁、音乐播放等
4. 交互查询:ask 发送指令并捕获 Alexa 的文字回复,支持结构化 JSON 输出
5. Alexa+ 对话:askplus 接入 Amazon LLM 助手,支持多轮上下文对话
6. 音频播放:通过 SSML 播放指定 HTTPS URL 的 MP3(需 48kbps/22050Hz)
认证机制
采用浏览器 OAuth 登录获取 refresh token,存储于 ~/.alexa-cli/config.json,有效期约 14 天,支持多区域账号(--domain amazon.de 等)。
显著优点
- 全功能覆盖:几乎复刻 Alexa App 全部核心能力,远超官方有限的开发者 API
- 自然语言交互:
command/ask支持原生自然语言,无需记忆设备 ID 或复杂参数 - 脚本友好:所有命令支持
--json输出,易于集成至自动化工作流 - 跨平台:提供 Homebrew 和 Go 两种安装方式,支持 macOS/Linux
- 轻量快速:原生二进制,响应速度优于官方 Web 界面
局限性与风险
- 非官方 API:依赖私有接口,Amazon 随时可能变更协议导致功能失效
- 认证周期短:14 天强制重新登录,不适合长期无人值守的自动化场景
- 无官方 SLA:无技术支持,issue 响应依赖社区维护者
- 音频格式限制:MP3 播放有严格的码率/采样率要求
- 隐私顾虑:需存储 Amazon 账户凭证至本地文件
适合人群
智能家居极客、自动化工程师、需要将 Alexa 集成至 CI/CD 或监控告警系统的开发者。
常规风险
Token 本地存储存在泄露风险;非官方 API 使用可能违反 Amazon ToS;建议配合环境变量 ALEXA_REFRESH_TOKEN 而非硬编码配置。