IM.codes gives coding agents one shared memory layer and one managed MCP tool surface across providers. It turns completed work into reusable context, then injects or recalls the right history in future sessions across Claude Code, Codex, Gemini, GitHub Copilot, Cursor, OpenCode, Qwen, OpenClaw, and more. Built-in Auto supervision can judge completed turns, continue work autonomously, and optionally run an audit/rework loop before handing control back. Team discussion lets multiple models review and audit each other's plans and implementations — an effective way to reduce single-model misses, blind spots, and biases.
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 usually means SSH, tmux attach, remote desktop, or waiting for your laptop. That is only half the problem. Hard agent work also needs better judgment: one model can fall into patterns, miss issues, or lose context when you switch providers. IM.codes pairs always-reachable sessions with shared memory for summarized completed work and structured Team cross-model review, so multiple agents can challenge plans before code lands. It does not make output perfect, but it reduces single-model blind spots while keeping the work continuous.
shared agent context
IM.codes keeps a searchable memory of solved work — structured problem→solution summaries instead of raw prompt logs. Relevant history is recalled automatically for new prompts and session startup, and every injection stays visible in the timeline.
- Personal memory stays local by default, with optional cloud sync for processed summaries across your devices.
- Enterprise shared context lets teams reuse fixes across workspaces and projects with queryable memory, stats, and inspection UI. It is still under active development and has not been fully production-tested yet.
- Multilingual recall uses local embeddings plus pgvector-backed server search, so related fixes can be found across different languages.
- Timeline cards show exactly what was injected, with relevance score, recall count, and last-used metadata.
managed MCP tools
Supported SDK-backed agents receive a daemon-managed stdio MCP server with one runtime-scoped surface for memory, agent messaging, and scheduled follow-ups, without raw auth tokens or ad hoc shell commands.
search_memory recalls prior work, decisions, preferences, bugs, commits, deployments, and discussed context, returning compact summaries plus projectionId values.
get_memory_sources expands a relevant memory hit into provenance snippets when exact prior instructions, bug details, or source evidence matter.
save_observation and save_preference persist useful facts and stable user preferences.
send_list_targets and send_message let agents discover sibling sessions and send scoped text, file references, replies, or broadcasts.
cron_create, cron_list, cron_update, and cron_delete manage future structured sends for reminders, recurring checks, delegated reviews, and follow-ups.
- Runtime-bound identity prevents forged namespace, user, server, token, or routing fields; provider-level ready/degraded status and redacted recent calls stay visible in the UI.
supervised execution
IM.codes can supervise supported transport sessions turn by turn instead of relying on blind auto-continue. Auto checks whether the latest turn is done, should continue, or should return control to you.
- Per-session Auto modes: Off, Supervised, and Supervised + audit.
- At the idle boundary, Auto can classify a turn as complete, continue, or ask_human, then dispatch the next continue prompt in the same session.
- Supervised + audit can run an audit→rework loop before handing control back, so finished work is reviewed instead of trusted blindly.
- Global defaults seed new sessions. Set a default supervisor backend, model, and timeout once — each session snapshots them at enable time and can still override backend/model/timeout and audit mode individually.
- Two-layer custom supervision instructions. Keep a global supervision persona plus a per-session addition — by default the two are concatenated into the prompt, or tick the session's “Override global” checkbox to ignore the global value for that session. Editing the global persona takes effect on already-enabled sessions on the next turn without re-enabling Auto.
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
shared agent context
problem→solution memory, multilingual recall, automatic per-message and startup injection with visible timeline cards
managed MCP tools
ten runtime-scoped tools for memory search/sources, preferences, scoped Send, and Cron scheduling
supervised execution
turn-level completion checks, auto-continue, and optional audit→rework loops for transport-backed agents
remote terminal
browser & mobile, no SSH/VPN, real-time PTY streaming at 12fps
file browser & git
tree view, upload/download, +/- stats, safe HTML quick preview, inline image previews with lightbox zoom
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
cross-provider audit
multi-agent Team discussions with customizable phases (audit, review, brainstorm…) — different models catch different issues before code is written, reducing rework
CLI + SDK access
Access multiple agents through both CLI and SDK integrations. OpenClaw and Qwen also 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 / managed MCP
Agents (multiple agents via CLI + SDK · native transport backends)
The daemon runs on your dev machine and manages process-backed sessions through tmux plus transport-backed sessions through SDKs and network protocols. It also owns the managed MCP server for runtime-scoped memory, Send, and Cron tools. 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
Generated docker-compose.yml uses pgvector/pgvector:pg18 for PostgreSQL.
supported agents
Multiple agents 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). Multiple agents 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.