Code from bed

Lie down and drive Claude Code from your phone

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

Open source Β· runs in your phone's browser β€” no install, no signup.

Why Bedcoder

πŸ”

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.

πŸ”‘

Pairing code, no signup

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.

πŸ›‘οΈ

End-to-end encrypted Β· zero-knowledge

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.

πŸ“¦

Self-hosted, tiny relay

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.

πŸ“±

A real Claude Code UI

Token-by-token streaming, green/red diffs, live task lists, tool output, rich permission cards, a model picker (Opus 4.7 Β· Sonnet 4.6 Β· Haiku 4.5) and a context-usage indicator β€” a quick-action bar tuned for vibe coding.

🧠

Bring your own LLM

Beyond Claude (Anthropic), bedcoder also speaks MiniMax, GLM (Z.AI), DeepSeek and OpenRouter β€” switch providers with one flag (--claude / --minimax / --glm / --deepseek / --openrouter) and pin any specific model with --model.

πŸ“Ÿ

Terminal mirror Β· preview Β· files

Watch hosted terminals (like a dev server) live on your phone, open localhost ports in a built-in preview, and browse the project's files β€” right from the app.

🌳

Parallel tasks with worktrees

bedcoder --worktree feat-x runs a conversation in its own git worktree, so you can drive several tasks on one repo at once β€” each shows up as a separate conversation.

🧭

On the roadmap

GUI screen-casting over WebRTC P2P, and native iOS / Android apps.

How Bedcoder compares

Feature Official RC Happy πŸ‘‘ Bedcoder
Terminal interaction βœ• βœ• βœ“
Terminal mirror βœ• βœ• βœ“
Localhost preview βœ• βœ• βœ“
File manager βœ• βœ• βœ“
Parallel git worktrees βœ• βœ• βœ“
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

Three steps to start

  1. 1

    Install & run bedcoder

    Install 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.

  2. 2

    Pair your phone

    Open web.bedcoder.org, enter the code, and confirm the 6-digit SAS matches on both ends.

  3. 3

    Continue from bed

    Send prompts, approve permissions, watch streaming replies; back at your desk, claude --resume picks it right back up.

Platforms

Web Available now Open β†’
iOS Available now App Store β†’
Android Available now Download APK ↓