But I was stuck at my desk the whole time, even when the agent is running for minutes. I wanted to step away and check in from my phone when needed.
My journey to this:
First I tried tmux + SSH. Works great for terminal-only work. But once I need to see the browser, check the simulator, or read diffs in VS Code, I'm stuck.
Then I tried Chrome Remote Desktop, Parsec, Jump Desktop. They work, but the UX is painful, typing prompts on a phone keyboard is slow, and the interaction model assumes you're on another computer, not a phone.
So I built AFK. Key differences:
1. Voice input: Push-to-talk for dictating prompts. Much faster than phone keyboard for giving instructions to an agent.
2. WebRTC streaming: Same tech as Chrome Remote Desktop. Lower latency than VNC, works over cellular (not just same WiFi).
3. Custom data channel protocol: WebRTC's data channel lets me build features beyond basic screen mirroring: - Window switcher (pick any window from your phone) - Agent notifications (get pinged when Claude finishes) - Mobile-optimized touch controls
4. Mobile-first UX: Designed for phone as the primary controller, not a miniature desktop experience.
Tech: Flutter host (cross-platform), WebRTC with VP9, native Swift (macOS) / C++ (Windows) for input injection.
The host is now open source (many people asking for it, understandably, since it's running with pretty powerful permissions): https://github.com/LiboShen/afk-host
Mobile clients on App Store and Google Play. Windows host in progress.
Fun fact: I use AFK built a significant portion of itself while i'm not at my desk.
Pretty awesome to be able to tell Claude Code to keep working while I'm at the gym. Please give it a try and let me know what do you think.