Coding one-handed: voice input and agents as a forcing function
- YT :: https://www.youtube.com/watch?v=NvVbCqDgfCs
- Original title :: How I Code Without Typing
A hand injury put Theo in a cast for a month, with one to six more months ahead, and forced him to rebuild his entire way of working at a computer. The result is part personal diary, part practical guide: you cannot dictate code, but you can dictate intent, and once voice input and agents take over the navigation and the grunt work, productivity holds up. He claims he has been shipping some of the widest-ranging changes of his career while typing with one hand.
Voice input is about intent, not syntax
Talking out code literally - "let x equals four, let y equals twelve, while x is less than y" - does not work, and he says so plainly. What voice is good for is describing what you want and letting an agent write it. He uses Whisper Flow, and his single biggest tip is unexpected hardware: a ~$70 podium mic. Its value is not fidelity but proximity and rejection - he can literally whisper into it in a shared office and it still transcribes cleanly, even with a YouTube video playing loudly nearby. That solved the social friction that had previously driven him to hide in meeting rooms to dictate. He made his whole team try one; all of them bought their own.
He also recommends starting with the built-in MacBook mic, which works fine at normal volume and only fails at the whisper level.
Terminals are the worst possible voice surface
Every strong opinion he already held about terminals being the wrong place for agentic development got 100x stronger. Dictating into a terminal is, in his words, hell. He has not opened one in weeks except for one long-running experimental job he deliberately parked out of the way.
Bring the agent in earlier and let it run longer
The core mental shift is widening the agent's window on both ends. Instead of doing the setup yourself and then handing off, tell the agent what is in your head before the prerequisites are even met.
Concrete examples:
- A repo called
fleetdocuments all his machines - SSH access, purpose, what is installed. He told a thread to transfer an ISO that had not finished downloading yet, and it waited and did it. - He asked
fleetfrom his phone, while doing his hair, to build a custom app from a specific branch with an isolated home directory so it would not collide with his existing install. It was done when he came back. - He gave a computer-use model his hospital's miserable patient portal and had it download 49 medical PDFs in ~20 minutes, then had another thread upload them to his new doctor's link.
Once you work this way, agent speed mostly stops mattering. Going through his live thread list, he cares about latency in roughly one thread out of ten - the rest are fire-and-forget, and a 3x slower model would not change his day.
Stop hand-carrying context between agents
Copy-paste is physically unpleasant for him right now, so he stopped. Rather than pasting a PR list into a new thread, he tells the next agent where to go find it. This is slower and more expensive in tokens and he explicitly does not care: "lazy is efficient". Don't do work the agents can do themselves. He hedges that this probably works less well on cheap models, but on frontier models with a $200/month subscription the overhead nets out to noise.
Related: GitHub's web UI has become slow enough that he no longer browses it. He asks an agent for a digest of recent PRs touching the surfaces he cares about, two to three sentences each plus a line on why he personally would care, and reviews and merges from inside his editor.
Smaller adaptations
- Phone as a real work surface - swipe typing is one-handed, and he drives agents from iOS.
- Windows no longer full-screened, so a mouse click can switch apps instead of Cmd-Tab.
- Keyboard shortcut to fire off a prompt and immediately open a fresh thread, so a mind-dump becomes four parallel jobs.
- He let go of caring about dictation typos. The model on the other end is also AI and handles wrong words fine.
The challenge he leaves you with
Next time you spot a bug or want a feature, before you plan it or gather context, fire off an agent with only what is already in your head - no hints, no pointers. Then go do it your usual way and compare. He expects you will be surprised how much of your process the agent just absorbs, which is what happened to him.