|
| 1 | +--- |
| 2 | +slug: echokit-remote-control-claude-code |
| 3 | +title: "My Coding Assistant Lives in a Box Now | EchoKit" |
| 4 | +tags: [echokit, claude-code, remote-control, voice-ai] |
| 5 | +--- |
| 6 | + |
| 7 | +It was 2 AM. I was deep in a coding session, fingers flying across the keyboard, completely in the zone. Then I hit a bug. I needed to run the tests. |
| 8 | + |
| 9 | +Which meant breaking my flow. Switching windows. Typing the command. Waiting. Switching back. |
| 10 | + |
| 11 | +I thought: *What if I could just say it?* |
| 12 | + |
| 13 | +**Not into my phone.** Not unlocking an app. Just speak—to a device sitting on my desk. |
| 14 | + |
| 15 | +## A Small Device, Big Idea |
| 16 | + |
| 17 | +That moment sparked an experiment. What if my AI coding assistant wasn't trapped in a terminal window, but lived in a small device on my desk? What if I could speak to it like a pair programmer sitting next to me? |
| 18 | + |
| 19 | +Not voice typing—I hate that. But voice *commands*. Like having a junior developer who actually does things, not just suggests them. |
| 20 | + |
| 21 | +So I built it. |
| 22 | + |
| 23 | +Today, I'm excited to share how EchoKit became a voice remote control for Claude Code. And why this changes everything about how I work. |
| 24 | + |
| 25 | +## It Started with a Problem |
| 26 | + |
| 27 | +Claude Code is amazing. It writes code, fixes bugs, runs tests, explains errors. |
| 28 | + |
| 29 | +**Yes, Claude Code now has an official Remote Control feature for mobile and web access.** But it's designed for phones and browsers—not for hands-free voice control or physical devices. You still need to look at a screen and tap buttons. |
| 30 | + |
| 31 | +I wanted something different. Something that felt like... magic. |
| 32 | + |
| 33 | +## The Missing Piece |
| 34 | + |
| 35 | +I had EchoKit—my open-source voice AI device sitting on my desk. It can hear me, think, and respond. But it couldn't control my code editor. |
| 36 | + |
| 37 | +I needed a bridge. |
| 38 | + |
| 39 | +That bridge is called [echokit_pty](https://github.com/second-state/echokit_pty). |
| 40 | + |
| 41 | +**What is echokit_pty?** It's the web version of Claude Code, but with a superpower: a WebSocket interface. |
| 42 | + |
| 43 | +See, Claude Code was designed as a CLI tool. You run it in your terminal, type commands, get responses. That's great for terminal workflows. But for voice control? For remote access? For building *anything* on top of Claude Code? |
| 44 | + |
| 45 | +You need something more. |
| 46 | + |
| 47 | +echokit_pty is that "more." |
| 48 | + |
| 49 | +## How echokit_pty Changed Everything |
| 50 | + |
| 51 | +Here's what echokit_pty does: it takes Claude Code and exposes it through a WebSocket server. Suddenly, Claude Code isn't just a terminal app—it's a service that *anything* can talk to. |
| 52 | + |
| 53 | +My EchoKit device can send commands. A web app could send commands. A mobile app. A game controller. Anything that speaks WebSocket. |
| 54 | + |
| 55 | +But here's the beautiful part: it's still Claude Code. All the capabilities, all the intelligence, everything that makes Claude Code amazing—just accessible through a clean, simple interface. |
| 56 | + |
| 57 | +## The Setup: Three Pieces, One Experience |
| 58 | + |
| 59 | +Now my coding setup looks like this: |
| 60 | + |
| 61 | +**1. echokit_pty runs on my machine** — Starts a WebSocket server (ws://localhost:3000/ws) |
| 62 | + |
| 63 | +**2. EchoKit Server connects to it** — Handles speech recognition and text-to-speech |
| 64 | + |
| 65 | +**3. EchoKit Device sits on my desk** — Listens for my voice, speaks back responses |
| 66 | + |
| 67 | +``` |
| 68 | +My Voice: "Run the tests" |
| 69 | + ↓ |
| 70 | +EchoKit Device (hears me) |
| 71 | + ↓ |
| 72 | +EchoKit Server (transcribes speech) |
| 73 | + ↓ |
| 74 | +echokit_pty (WebSocket connection) |
| 75 | + ↓ |
| 76 | +Claude Code (executes the command) |
| 77 | + ↓ |
| 78 | +Tests run, results stream back |
| 79 | + ↓ |
| 80 | +EchoKit speaks: "142 tests passed, 3 failed" |
| 81 | +``` |
| 82 | + |
| 83 | +All while I keep typing. No window switching. No flow breaking. |
| 84 | + |
| 85 | +## A Day in the Life |
| 86 | + |
| 87 | +Let me show you what this actually feels like. |
| 88 | + |
| 89 | +**Morning:** |
| 90 | +I sit down with coffee. "EchoKit, run the full test suite." I start reading emails while tests run in the background. Five minutes later: "Tests complete. Two failures in the auth module." |
| 91 | + |
| 92 | +**Afternoon:** |
| 93 | +I'm stuck on a bug. "EchoKit, why is the login failing?" It explains the issue while I'm looking at the code. "Can you fix it?" "Done. Want me to run the tests?" "Yes." |
| 94 | + |
| 95 | +**Evening:** |
| 96 | +I'm tired, don't want to type. "EchoKit, create a new feature branch called dark-mode." "Deploy staging." "Check if the build passed." Each command happens while I'm leaning back in my chair. |
| 97 | + |
| 98 | +It feels like having a coding companion. Not a tool—a teammate. |
| 99 | + |
| 100 | +## Why This Matters |
| 101 | + |
| 102 | +I know what you're thinking: *Voice control for coding? Sounds weird.* And doesn't Claude Code have Remote Control now? |
| 103 | + |
| 104 | +You're right—it *is* weird at first. But here's the thing: **Claude Code's Remote Control is great for mobile access, but EchoKit isn't your phone.** It's a dedicated device that sits on your desk. Always on. Always listening. No unlocking, no apps, no picking it up. |
| 105 | + |
| 106 | +Here's what I discovered: |
| 107 | + |
| 108 | +**It's not about voice typing.** I'm not dictating code. That would be terrible. |
| 109 | + |
| 110 | +**It's about having a physical device.** Think of it like a smart speaker for coding. It just sits there, ready to help. No screens to tap, no apps to open, no phone to find. |
| 111 | + |
| 112 | +**The magic is the always-there presence.** The device lives on my desk. It's part of my workspace. I don't need to grab anything or unlock anything. I just speak. |
| 113 | + |
| 114 | +**It keeps me in the flow.** That's the biggest one. I can stay focused on coding while EchoKit handles tasks in the background. It's like having a second pair of hands. |
| 115 | + |
| 116 | +## The Tech Behind the Magic |
| 117 | + |
| 118 | +If you're curious how echokit_pty works technically, here's the short version: |
| 119 | + |
| 120 | +**PTY** stands for "pseudo-terminal"—a Unix concept that lets a program control a terminal as if a user were typing. echokit_pty uses this to create a bridge between: |
| 121 | +- **WebSocket clients** → send JSON commands |
| 122 | +- **Claude Code CLI** → executes the commands |
| 123 | +- **Response streaming** → sends results back |
| 124 | + |
| 125 | +It's built with Rust, runs locally, and is completely open source. No cloud required. Your code never leaves your machine. |
| 126 | + |
| 127 | +But here's what I care about: it just works. |
| 128 | + |
| 129 | +## What You Can Do |
| 130 | + |
| 131 | +So what does this actually look like in practice? |
| 132 | + |
| 133 | +**"Create a web page for me"** |
| 134 | +→ Claude Code generates the HTML, EchoKit confirms when done |
| 135 | + |
| 136 | +**"Run the tests"** |
| 137 | +→ Tests execute, EchoKit tells me the results |
| 138 | + |
| 139 | +**"Explain this error"** |
| 140 | +→ Claude Code analyzes, EchoKit reads the explanation |
| 141 | + |
| 142 | +**"Deploy to staging"** |
| 143 | +→ Deployment triggers, EchoKit confirms when complete |
| 144 | + |
| 145 | +**"Create a new branch"** |
| 146 | +→ Git command executes, no typing required |
| 147 | + |
| 148 | +I can speak from across the room. Keep my hands on the keyboard while EchoKit works in the background. Get voice feedback without breaking my flow. |
| 149 | + |
| 150 | +## Building Your Own |
| 151 | + |
| 152 | +This is the part I'm most excited about: everything here is open source. |
| 153 | + |
| 154 | +- **EchoKit** — Open hardware, Rust firmware, fully customizable |
| 155 | +- **echokit_pty** — Open source WebSocket interface for Claude Code |
| 156 | +- **EchoKit Server** — Rust-based voice AI server |
| 157 | + |
| 158 | +You can build this yourself. Or modify it. Or extend it. |
| 159 | + |
| 160 | +Want to add custom voice commands? Go ahead. |
| 161 | +Want to integrate with other tools? echokit_pty makes it possible. |
| 162 | +Want to build a completely different interface? The WebSocket is waiting. |
| 163 | + |
| 164 | +## The Future |
| 165 | + |
| 166 | +This experiment showed me something: AI coding assistants can take many forms beyond screens and apps. |
| 167 | + |
| 168 | +**Claude Code's Remote Control solved mobile access.** But what about specialized hardware? What about completely hands-free experiences? What about devices that do one thing perfectly? |
| 169 | + |
| 170 | +echokit_pty is the bridge that makes these experiments possible. And EchoKit is just one example. |
| 171 | + |
| 172 | +Imagine what else we could build: |
| 173 | +- Voice-controlled development environments |
| 174 | +- Specialized devices for specific workflows |
| 175 | +- Educational tools that feel like magic |
| 176 | +- Assistive technology for developers with disabilities |
| 177 | + |
| 178 | +All built on top of echokit_pty's open WebSocket interface. |
| 179 | + |
| 180 | +## Try It Yourself |
| 181 | + |
| 182 | +Ready to turn your AI assistant into a physical device? |
| 183 | + |
| 184 | +**Full Documentation:** [Remote Control Claude Code with Your Voice](https://echokit.dev/docs/use-cases/claude-code) |
| 185 | + |
| 186 | +**EchoKit Hardware:** |
| 187 | +- [EchoKit Box](https://echokit.dev/echokit_box.html) — Pre-assembled device |
| 188 | +- [EchoKit DIY Kit](https://echokit.dev/echokit_diy.html) — Build it yourself |
| 189 | + |
| 190 | +**echokit_pty Repository:** [github.com/second-state/echokit_pty](https://github.com/second-state/echokit_pty) |
| 191 | + |
| 192 | +**Join the Community:** [EchoKit Discord](https://discord.gg/Fwe3zsT5g3) |
| 193 | + |
| 194 | +Build something cool. Then tell me about it. |
| 195 | + |
| 196 | +--- |
| 197 | + |
| 198 | +*PS: The first time I heard EchoKit say "Tests passed" while I was making coffee? That's when I knew this wasn't just a cool experiment. This was how I wanted to work from now on.* |
0 commit comments