Keep long-running coding-agent sessions within reach from mobile or web, with terminal access, file browsing, git views, localhost preview, notifications, and multi-agent workflows built in.
imcodes bind https://app.im.codes/bind/<key>
bound to app.im.codes · daemon started · registered as system service
Self-hosting is strongly recommended. app.im.codes is a shared test instance with no uptime guarantees — it may be rate-limited, targeted, or unavailable. This is a personal project with no commercial support. For anything beyond evaluation, deploy on your own infrastructure.
screenshots
Desktop
iPad / Tablet
Mobile
Apple Watch
Watch support covers quick session monitoring, unread counts, OTA update visibility, push notifications, and quick replies from the wrist.
why
When you leave your desk, most coding-agent workflows fall apart. The agent is still running in a terminal, but continuing the work usually means SSH, tmux attach, remote desktop hacks, or waiting until you're back at your laptop. IM.codes keeps those sessions within reach from mobile or web: open the terminal, inspect files and git changes, preview localhost from another device, get notified when work finishes, and keep multiple agents moving on your own infrastructure.
what it is not
- Not another AI IDE
- Not just a chat wrapper
- Not just a remote terminal client
- Not a replacement for Claude Code, Codex, Gemini CLI, OpenClaw, or Qwen
- It is the messaging/control layer around them
features
remote terminal
browser & mobile, no SSH/VPN, real-time PTY streaming at 12fps
file browser & git
tree view, upload/download, +/- stats, floating preview
local web preview
preview localhost from any device via secure tunnel, supports HMR
mobile, watch & notifications
biometric auth, push notifications, shell keyboard input, watch quick replies
multi-agent discussions
discuss, audit, review across providers with ring progress
CLI + SDK agents
Claude Code and Codex work through both CLI and SDK integrations. OpenClaw and Qwen stream natively with real-time deltas, tool tracking, and session restore.
terminal + chat
raw CLI or structured view with parsed tool calls
Discord-style sidebar
server icons, session tree, unread badges, idle flash
@ picker
@files, @@agents, @@all(config) for group dispatch
multi-server
manage agents across machines from one dashboard
pinnable panels
drag any window to sidebar, cross-device sync
sub-sessions
spawn parallel agents on the fly
repository dashboard
issues, PRs, branches, commits, CI/CD
scheduled tasks
cron-style automation, timezone-aware, execution history with jump-to-session
cross-device sync
tab order, pinned tabs & panels synced to server
7 languages
EN, 中文, 繁體, ES, RU, JA, KO
real-time stream
live output, zero polling, zero message limits
self-hosted
your infra, your data, one-command deploy
OTA updates
upgrade daemons from the web UI
architecture
You (browser / mobile)
│ WebSocket
Server (self-hosted, relays connections)
│ WebSocket
Daemon (your machine, manages sessions)
│ tmux / transport
Agents (Claude Code / Codex via CLI + SDK · Gemini CLI · OpenClaw · Qwen)
The daemon runs on your dev machine and manages process-backed sessions through tmux plus transport-backed sessions through SDKs and network protocols. The server relays connections between your devices and the daemon. Everything stays on your infrastructure.
download
⌚ iPhone · iPad · Apple Watch
Watch app includes session list, unread counts, and quick replies.
install
$ npm install -g imcodes
click to copy
quick start
- Use app.im.codes or self-host the server
- Run
imcodes bind https://app.im.codes/bind/<key>
- Open the dashboard — your agents are live
openclaw connect
If OpenClaw is running on the same machine as the daemon, connect IM.codes to the local OpenClaw gateway with:
imcodes connect openclaw
- Default gateway URL:
ws://127.0.0.1:18789
- Token auto-detected from
~/.openclaw/openclaw.json, or pass --token / OPENCLAW_GATEWAY_TOKEN
- OpenClaw sessions and child sessions sync into IM.codes automatically
- Saved to
~/.imcodes/openclaw.json so the daemon can reconnect automatically
- Use
imcodes disconnect openclaw to remove the saved config
imcodes connect openclaw --url wss://gateway.example.com
OPENCLAW_GATEWAY_TOKEN=... imcodes connect openclaw
Only tested on macOS so far. Remote plain-text ws:// URLs require --insecure.
self-host
Deploy server + daemon on a single machine. Requires Docker and a domain with DNS pointing to the server.
npm install -g imcodes
mkdir imcodes && cd imcodes
imcodes setup --domain imc.example.com
Generates all config, starts PostgreSQL + server + Caddy with automatic HTTPS, creates admin account, and binds the local daemon. Credentials printed at the end.
To connect additional machines:
npm install -g imcodes
imcodes bind https://imc.example.com/bind/<api-key>
Manual setup:
git clone https://github.com/im4codes/imcodes.git && cd imcodes
./gen-env.sh imc.example.com
docker compose up -d
supported agents
Claude Code and Codex support both CLI and SDK integrations.
requirements
- macOS, Linux, or Windows (native experimental; WSL fully supported)
- Node.js ≥ 20
- tmux (Linux/macOS/WSL). Windows native uses ConPTY (built-in). Claude Code and Codex also support SDK-backed sessions.
IM.codes is an independent open-source project and is not affiliated with, endorsed by, or sponsored by Anthropic, OpenAI, Google, Alibaba, OpenClaw, or any other company whose products are mentioned. All product names, trademarks, and registered trademarks are the property of their respective owners.