Talking to Claude Code through an Alexa An engineer built a system that lets them start coding tasks on Claude Code by speaking to an Amazon Alexa device. The main challenge was Alexa's eight-second response limit, which forced a design where the assistant acknowledges instantly, thinks in the background, and surfaces results on a dashboard. The system runs tasks in tmux sessions so the user can watch the work live. This was an afternoon experiment, so read it in that spirit. The goal was to start real coding work by talking to a speaker: not "set a timer", but "work on the board script", and have an agent plan it with me and go and do it. No laptop open. I gave myself a few hours, which means there are shortcuts everywhere. The backend is literally my laptop. The public entry point is a free tunnel. There is exactly one user, me, and no accounts. None of that would survive contact with real users, and I will come back to what a grown-up version looks like at the end. But the core turned out to be more interesting than I expected, because the main constraint forced a better design than the obvious one. Alexa cuts off a skill's response after about eight seconds. That is the whole design problem in one sentence. A coding agent does not fit in eight seconds. Even just asking Claude to think of a few options for a task takes anywhere from four to twenty-plus seconds. So you cannot do the obvious thing, which is take what the person said, ask Claude about it, and speak the answer. Alexa will have hung up long before Claude replies. Once you accept that nothing useful finishes in the window, the design falls out of it: acknowledge instantly, think in the background, and surface the thinking somewhere the eight seconds do not apply. Here is what actually happens when I use it. me: "Alexa, open assistant" claude: "Claude ready. What should I work on?" me: "work on the board script" claude: "Okay, work on the board script. I'm putting a few options on the dashboard. Tell me which one or describe what you want, then say go." me: "the second one" claude: "Here's the plan: add a --since flag to the board script. Say go to start, or add more." me: "go" claude: "Starting now: add a --since flag to the board script. Watch the dashboard, and ask me for the result." The moment I describe a task, the server does two things at once. It replies immediately with a short acknowledgement, well inside the window, and it spawns a detached job that asks Claude to turn my vague sentence into two or three concrete, short options. Those options land on a dashboard, and the next thing I say is resolved against them. "The second one", "option two", and "three" all map to a choice; anything else is folded in as more detail. sequenceDiagram actor You participant Echo as "Echo / Alexa cloud" participant Mac as "alexa-claude my Mac " participant Claude You- Echo: "work on the board script" Echo- Mac: signed request Mac-- Echo: ack in under a second Mac- Claude: generate options background Claude-- Mac: options appear on dashboard You- Echo: "the second one" ... "go" Echo- Mac: signed request Mac- Claude: run task in a tmux session Mac-- Echo: "starting, ask me for status" So the latency that made the naive design impossible becomes invisible: by the time I have heard the acknowledgement and decided what I want, the options are already there. The prompt gets built up across a couple of turns, and "go" commits it. The skill is invoked as "assistant" rather than "claude", because Amazon will not let you claim a single well-known word as a custom invocation name. It just introduces itself as Claude. When I say "go", the task does not run as some opaque background process. It starts in its own tmux session , which means it shows up in the same sessions tool I use for every other Claude session on the machine, and I can attach and watch it work live: sessions go