Skills alexa-cli

Control Amazon Alexa devices and smart home via the `alexacli` CLI. Use when a user asks to speak/announce on Echo devices, control lights/thermostats/locks, send voice commands, or query Alexa.

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/buddyh/alexa-cli" ~/.openclaw/skills/openclaw-skills-alexa-cli && rm -rf "$T"
manifest: skills/buddyh/alexa-cli/skill.md
source content

Alexa CLI

Use

alexacli
to control Amazon Echo devices and smart home via the unofficial Alexa API.

Authentication

# Browser login (recommended)
alexacli auth

# Non-US accounts
alexacli auth --domain amazon.de
alexacli auth --domain amazon.co.uk

# Check auth status
alexacli auth status
alexacli auth status --verify    # validate token against API

# Remove credentials
alexacli auth logout

Token is valid ~14 days. Configuration stored in

~/.alexa-cli/config.json
.

Devices

alexacli devices
alexacli devices --json

Text-to-Speech

# Speak on a specific device
alexacli speak "Hello world" -d "Kitchen Echo"

# Announce to ALL devices
alexacli speak "Dinner is ready!" --announce

# Device name matching is flexible
alexacli speak "Build complete" -d Kitchen

Voice Commands (Smart Home Control)

Send any command as if you spoke it to Alexa:

# Lights, switches, plugs
alexacli command "turn off the living room lights" -d Kitchen
alexacli command "dim the bedroom lights to 50 percent" -d Bedroom

# Thermostats
alexacli command "set thermostat to 72 degrees" -d Bedroom
alexacli command "what's the temperature inside" -d Kitchen

# Locks
alexacli command "lock the front door" -d Kitchen

# Music
alexacli command "play jazz music" -d "Living Room"
alexacli command "stop" -d "Living Room"

# Questions
alexacli command "what's the weather" -d Kitchen

# Timers
alexacli command "set a timer for 10 minutes" -d Kitchen

Ask (Get Response Back)

Send a command and capture Alexa's text response:

alexacli ask "what's the thermostat set to" -d Kitchen
# Output: The thermostat is set to 68 degrees.

alexacli ask "what's on my calendar today" -d Kitchen --json

Alexa+ (LLM Conversations)

Interact with Amazon's LLM-powered assistant:

# Quick start - auto-selects conversation
alexacli askplus -d "Echo Show" "What's the capital of France?"

# Multi-turn retains context
alexacli askplus -d "Echo Show" "What about Germany?"

# List conversations
alexacli conversations

# View conversation history
alexacli fragments "amzn1.conversation.xxx"

Audio Playback

Play MP3 audio through Echo devices:

alexacli play --url "https://example.com/audio.mp3" -d "Echo Show"

Requirements: MP3 at 48kbps, 22050Hz sample rate, HTTPS URL.

History

alexacli history
alexacli history --limit 5
alexacli history --json

Command Reference

CommandDescription
alexacli devices
List all Echo devices
alexacli speak <text> -d <device>
Text-to-speech on device
alexacli speak <text> --announce
Announce to all devices
alexacli command <text> -d <device>
Voice command (smart home, music, etc.)
alexacli ask <text> -d <device>
Send command, get response back
alexacli conversations
List Alexa+ conversation IDs
alexacli fragments <id>
View Alexa+ conversation history
alexacli askplus -d <device> <text>
Alexa+ LLM conversation
alexacli play --url <url> -d <device>
Play MP3 via SSML
alexacli auth
Browser login or manual token
alexacli auth status [--verify]
Show auth status
alexacli auth logout
Remove credentials
alexacli history
View recent voice activity

Notes

  • Uses Amazon's unofficial API (same as Alexa app)
  • Refresh token valid ~14 days, re-run
    alexacli auth
    if expired
  • Device names support partial, case-insensitive matching
  • For AI/agentic use,
    alexacli command
    with natural language is preferred
  • Add
    --verbose
    or
    -v
    to any command for debug output