IM.codes

The IM for agents

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

Sidebar Desktop 1 Desktop 2 Desktop 3

iPad / Tablet

iPad 1iPad 2

Mobile

Scheduled Tasks & CI/CD Execution History Local Web Preview Mobile Files Mobile 1 Mobile 2 Mobile 3 Mobile 4 Mobile 5

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

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 & notifications
biometric auth, push notifications, shell keyboard input
multi-agent discussions
discuss, audit, review across providers with ring progress
OpenClaw support
mobile/web companion for OpenClaw — terminal, files, git, notifications, localhost preview
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 Agents (Claude Code / Codex / Gemini CLI / OpenClaw and more)

The daemon runs on your dev machine and manages agent sessions through tmux. The server relays connections between your devices and the daemon. Everything stays on your infrastructure.

download

Download on the App Store Also available as a web app

install

$ npm install -g imcodes
click to copy

quick start

  1. Use app.im.codes or self-host the server
  2. Run imcodes bind https://app.im.codes/bind/<key>
  3. Open the dashboard — your agents are live

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 # generates .env, prints admin password docker compose up -d

supported agents

requirements

about

Personal project. Built almost entirely by Claude Code, with contributions from Codex and Gemini CLI.