Seamless with official claude
Not a replacement β an ultra-thin headless daemon (~5 MB RAM, under 2,000 lines) built on the official Agent SDK, reusing your ~/.claude session. Hand off between desktop and phone with context intact.
Code from bed
Bedcoder is a mobile-first remote control for AI coding agents. Use the official
claude at your desk; when you want to lie down, start
bedcoder and continue from your phone β
same session, seamless handoff.
npm i -g bedcoder
Works in your phone's browser β no install, no signup.
Not a replacement β an ultra-thin headless daemon (~5 MB RAM, under 2,000 lines) built on the official Agent SDK, reusing your ~/.claude session. Hand off between desktop and phone with context intact.
The desktop shows an 8-character code; enter it on your phone and verify a 6-digit SAS once. No accounts, no login, no email.
X25519-paired keys with XSalsa20-Poly1305 payloads; the relay only forwards ciphertext and never sees content or keys. Pairing verifies a commitment + 6-digit SAS to stop a man-in-the-middle.
One command spins up the relay β a single static Go binary on your own server, with zero lock-in; a public instance is available too. The phone just opens a browser β nothing to install.
Structured message cards, one-tap permissions, mode switching, and cost & context progress β a quick-action bar tuned for vibe coding.
Terminal mirror (see hosted terminals on your phone), localhost preview, file manager, and GUI screen-casting (WebRTC P2P).
| Feature | Official RC | Happy | π Bedcoder |
|---|---|---|---|
| Terminal interaction | β | β | β |
| Terminal mirror | β | β | soon |
| Localhost preview | β | β | soon |
| File manager | β | β | soon |
| Session interoperability with official claude | β | β | β |
| Extra desktop TUI required | β | Yes tied | No headless |
| P2P direct connection | β | β | soon |
β Available now Β· soon Planned Β· β Not supported Β· β N/A
bedcoderInstall once with npm i -g bedcoder, then run bedcoder in your project. A thin headless daemon shows a pairing code + QR β no conversation is rendered locally.
Open web.bedcoder.org, enter the code, and confirm the 6-digit SAS matches on both ends.
Send prompts, approve permissions, watch streaming replies; back at your desk, claude --resume picks it right back up.