imcodes
Health Pass
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 10 GitHub stars
Code Pass
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Pass
- Permissions — No dangerous permissions requested
This tool is a specialized instant messenger interface for AI coding agents. It allows developers to monitor, interact with, and manage long-running AI sessions via web or mobile, with built-in terminal access, file browsing, and localhost previews.
Security Assessment
Risk Rating: Medium
Based on the project description, the tool inherently interacts with sensitive local development environments. It facilitates terminal access, localhost previewing, and file browsing, which means it processes and exposes highly sensitive data. The automated code scan did not find dangerous patterns or hardcoded secrets, and the tool requires no elevated system permissions. However, because it acts as a bridge to your local system and integrates deeply with other AI agents (like Claude Code and Codex), it inherently handles shell commands and local network traffic. The authors explicitly state in their disclaimer that there are no guarantees regarding security or stability.
Quality Assessment
The project is very actively maintained, with the most recent code push occurring today. It uses the permissive MIT license, which is excellent for open-source adoption. However, community trust is currently quite low, with only 10 GitHub stars, indicating limited public auditing. Furthermore, it is explicitly described as a personal project without SLAs or backward compatibility, meaning breaking changes can occur without notice.
Verdict
Use with caution — the automated code scan is clean and the project is actively maintained, but its deep local system access and early-stage, no-warranty status warrant manual review before handling sensitive repositories.
The IM for agents. A specialized instant messenger for AI 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. Works with Claude Code, Codex, Gemini CLI, OpenClaw, and more.
IM.codes
English | 简体中文 | 繁體中文 | Español | Русский | 日本語 | 한국어
The IM for agents.
A specialized instant messenger for AI agents. Keep long-running coding-agent sessions within reach from iPhone, iPad, Apple Watch, mobile, or web, with terminal access, file browsing, git views, localhost preview, notifications, and multi-agent workflows built in. Works with Claude Code and Codex via both CLI and SDK integrations, plus Gemini CLI, OpenClaw, Qwen, and more — including native streaming output for transport-backed agents.
Disclaimer: This is an actively developed personal open-source project. There are no warranties, no SLA, and no guarantees of stability, security, or backward compatibility. Use at your own risk. Breaking changes may happen at any time without notice.
Screenshots
Desktop
iPad / Tablet
Mobile
Apple Watch
Watch support covers quick session monitoring, unread counts, push notifications, and quick replies directly from the wrist.
Download
Supports iPhone, iPad, and Apple Watch. Also available as a web app and via npm install -g imcodes (daemon CLI).
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.
It is not another AI IDE or a generic remote terminal. It is the messaging/control layer around terminal-based coding agents.
This is a personal project. I haven't written any code myself — it was built almost entirely by Claude Code, with significant contributions from Codex and Gemini CLI.
Features
Remote Terminal
Full terminal access to your agent sessions from any browser — no SSH, no VPN, no port forwarding. Switch between raw terminal mode (the native CLI experience) and a structured chat view with parsed tool calls, thinking blocks, and streaming output. Real-time PTY streaming at 12fps with zero message limits.
File Browser & Git Changes
Browse project files with a tree view. Upload files, images, and photos from any device — download files directly from the server. Changes tab shows git status with per-file +additions/-deletions line counts in color. Click a file to open a floating preview window with syntax highlighting, diff view, and auto-refresh every 5s. Pin the file browser to the sidebar — it follows the active tab's project directory automatically.
Local Web Preview
Preview your local dev server from any device — phone, tablet, or remote browser — without deploying. The daemon proxies localhost traffic through a secure WebSocket tunnel to the server. HTML rewriting and a runtime patch handle URL remapping so links, fetch, and WebSocket connections just work. Supports HMR/hot-reload via WebSocket tunneling. No public URLs, no third-party tunnels — traffic stays within your IM.codes server.
Mobile, Watch & Notifications
Full mobile support with biometric auth and push notifications. Shell sessions allow interactive keyboard input on mobile (SSH-like). Sub-session preview cards always show latest messages. Toast notifications navigate directly to the relevant session. Apple Watch support adds quick session monitoring, unread counts, and quick replies from the wrist.
Multi-Agent Discussions & Cross-Provider Audit
Single-model output shouldn't be trusted blindly. P2P discussions let multiple agents — across different providers and thinking styles — collaborate on the same codebase before a single line is written. Each round follows a customizable multi-phase pipeline where every agent reads all prior contributions and builds on them. Different models catch different classes of issues: one spots a race condition, another flags a missing migration, a third questions the API design. This cross-provider scrutiny catches the majority of problems before implementation, dramatically reducing rework cycles.
Built-in modes include audit (structured audit → review → plan pipeline), review, discuss, and brainstorm — or define your own phase sequence. Ring progress indicator shows round/hop completion in the sidebar. Works across Claude Code, Codex, Gemini CLI, and Qwen, including sandboxed agents. Configure participants, round counts, modes, and per-session P2P settings via @@all(config) or the UI.
Streaming Transport Agents
Native streaming output support for transport-backed agents like Claude Code SDK, Codex SDK, OpenClaw, and Qwen. These agents connect via network protocols or local SDKs instead of terminal scraping, delivering structured event streams with real-time delta updates, tool call tracking, and session restore.
Note on Qwen: Qwen currently offers a free tier (1,000 requests/day) provided by Alibaba Cloud. This is an Alibaba Cloud policy, not an IM.codes offering — terms, limits, and availability may change at any time without notice. Check the Qwen documentation for current details.
Note on OpenClaw:
imcodes connect openclawhas only been tested on macOS so far.
Agent-to-Agent Communication
Agents can message each other directly using imcodes send. An agent running in one session can ask a sibling to review code, run tests, or coordinate on a task — no user intervention needed. Target resolution by label, session name, or agent type. --reply flag instructs the target to send its response back automatically. Built-in circuit breakers prevent abuse (depth limit, rate limiting, broadcast cap).
imcodes send "Plan" "review the changes in src/api.ts"
imcodes send "Cx" "run tests" --reply
imcodes send --all "migration complete, check your end"
Beyond agent-to-agent chat, you can use script sessions to build custom automation. A Python script running in a script session can call imcodes send to trigger agents based on any external event:
# monitor.py — watch a log file, trigger agent when errors appear
import subprocess, time
while True:
with open("/var/log/app.log") as f:
for line in f:
if "ERROR" in line:
subprocess.run([
"imcodes", "send", "Claude",
f"Fix this error and write the patch to /tmp/fix.patch:\n{line}"
])
time.sleep(30)
# Webhook → agent: GitHub webhook handler triggers code review
curl -X POST https://your-server/webhook -d '{"pr": 42}' \
&& imcodes send "Gemini" "review PR #42, write summary to /tmp/review.md"
# CI → agent: post-build trigger
imcodes send "Claude" "tests failed on main, check CI log at /tmp/ci.log and fix" --reply
Use cases: log monitoring → auto-fix, webhook-triggered code review, CI failure auto-diagnosis, scheduled data pipeline checks, custom approval workflows with output written to specific files for human review.
@ Picker — Smart Agent & File Selection
Type @ to search project files, @@ to select agents for P2P dispatch. @@all(config) sends to all configured agents with saved per-session P2P settings (mode, rounds, participants). Custom round counts via @@all+. The picker integrates with the structured WS routing — daemon handles all expansion, frontend stays clean.
Multi-Server, Multi-Session Management
Connect multiple dev machines to one dashboard. Each machine runs a lightweight daemon that manages local agent sessions via tmux. See all servers and sessions at a glance — start, stop, restart, or switch between them instantly. Sub-sessions let you spawn additional agents from within a running session for parallel tasks. Draggable tabs with pin support and right-click context menus.
Discord-Style Sidebar
Server icon bar for instant multi-server switching. Hierarchical session tree with collapsible sub-sessions, unread message badges, and idle flash animation when agents finish tasks. Pin any floating window (file browser, repository, sub-session chat) to the sidebar for persistent access. Language switcher and build info at the bottom.
Pinnable Panels
Drag any floating window to the sidebar to pin it as a persistent panel. Supports file browser, repository page, sub-session chat, and terminal views. Panels are resizable, server-synced (cross-device), and auto-recover on reconnect. Generic registry — new panel types register in one file.
Repository Dashboard
View issues, pull requests, branches, commits, and CI/CD runs directly in the app. Silent background refresh — no more pull-to-refresh jitter. CI status auto-polls (10s when running, 15s otherwise). Pin the repository page to the sidebar for always-on visibility.
Scheduled Tasks (Cron)
Automate recurring agent workflows with cron-style scheduling. Create scheduled tasks that send commands to specific sessions or trigger multi-agent P2P discussions on a timetable. Visual cron picker for common intervals, timezone-aware scheduling, and manual "Run Now" for testing. Execution history with expandable result detail — click any record to navigate to the target session and quote the result for follow-up. Cross-job execution list with Latest/All modes and multi-server filtering.
Cross-Device Sync
Tab order, pinned tabs, and pinned sidebar panels sync across devices via the server preferences API. Write-through cache pattern: localStorage for instant render, debounced server PUT for cross-device consistency. Timestamped payloads for conflict resolution. Device-specific state (sidebar width, panel heights, view mode) stays local.
Internationalization
7 languages: English, 简体中文, 繁體中文, Español, Русский, 日本語, 한국어. Language switcher in the sidebar footer. All user-visible strings use i18n keys.
OTA Updates
Daemon self-upgrades via npm. Trigger from the web UI for one device or all devices at once.
What IM.codes 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
Architecture
You (browser / mobile)
↓ WebSocket
Server (self-hosted)
↓ WebSocket
Daemon (your machine)
↓ tmux / transport
AI Agents (Claude Code / Codex / Gemini CLI / OpenClaw)
↔ imcodes send (agent-to-agent)
The daemon runs on your dev machine and manages process-backed agent sessions through tmux or transport-backed sessions through network protocols / local SDKs (for example Claude Code SDK, Codex SDK, OpenClaw gateway, and Qwen). Agents can communicate with each other via imcodes send. The server relays connections between your devices and the daemon. Everything stays on your infrastructure.
Install
npm install -g imcodes
Quick Start
Self-hosting is strongly recommended. The shared instance at
app.im.codesis for testing only — it comes with no uptime guarantees, may be rate-limited, and could be targeted. This is a personal project with no commercial support. For anything beyond evaluation, deploy the server on your own infrastructure.
Use app.im.codes for evaluation, or self-host for anything real.
imcodes bind https://app.im.codes/bind/<api-key>
This binds your machine, starts the daemon, registers it as a system service, and brings the machine into the web/mobile dashboard.
OpenClaw Connect
If OpenClaw is running locally, connect IM.codes to the OpenClaw gateway on the daemon machine:
imcodes connect openclaw
What this does:
- connects to
ws://127.0.0.1:18789by default - reuses the OpenClaw gateway token automatically from
~/.openclaw/openclaw.json - syncs OpenClaw sessions and child sessions into IM.codes so they appear as transport-backed sessions/sub-sessions
- saves the IM.codes-side connection config to
~/.imcodes/openclaw.json - restarts the daemon so OpenClaw transport sessions can reconnect automatically
Common variants:
imcodes connect openclaw --url ws://127.0.0.1:18789
OPENCLAW_GATEWAY_TOKEN=... imcodes connect openclaw
imcodes connect openclaw --url wss://gateway.example.com
Notes:
- remote non-TLS
ws://URLs require--insecure - use
imcodes disconnect openclawto remove the saved config and drop the connection - this flow has only been tested on macOS
Self-Host
One-Command Setup
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
This generates all config, starts PostgreSQL + server + Caddy with automatic HTTPS, creates the admin account, and binds the local daemon — all in one step. Credentials are printed at the end.
To connect additional machines:
npm install -g imcodes
imcodes bind https://imc.example.com/bind/<api-key>
Manual Setup
If you prefer to configure manually:
git clone https://github.com/im4codes/imcodes.git && cd imcodes
./gen-env.sh imc.example.com # generates .env with random secrets, prints admin password
docker compose up -d
Login at https://your-domain with admin and the printed password. Bind your dev machine with imcodes bind.
Windows (experimental)
Windows is natively supported via ConPTY (built-in on Windows 10+). No WSL required.
Install & Bind (Windows)
npm install -g imcodes
imcodes bind https://app.im.codes/bind/<api-key>
Upgrade (Windows)
imcodes upgrade
Or upgrade remotely from the web dashboard (sends upgrade command to the daemon).
Troubleshooting (Windows)
If the daemon stops after an auto-upgrade, regenerate the launch chain:
imcodes repair-watchdog
This rewrites the watchdog script and scheduled task with the current Node.js and imcodes paths. Needed after Node.js version switches (nvm, fnm) or if the daemon won't restart after upgrade.
If imcodes is "not recognized as internal or external command" after upgrade, the npm global directory may not be on your PATH. Fix it:
npm prefix -g
Copy the output path and add it to your PATH:
setx PATH "<npm-prefix-path>;%PATH%"
Then open a new terminal window.
Check the daemon watchdog log for errors:
%USERPROFILE%\.imcodes\watchdog.log
Requirements
- macOS or Linux (tested on both)
- Windows (experimental): Native support via ConPTY (built-in on Windows 10+). Just
npm install -g imcodes— no extra software needed. WSL also works. - Node.js >= 20
- Terminal multiplexer: tmux (Linux/macOS). Windows uses ConPTY (auto-detected, built-in).
- At least one AI coding agent: Claude Code (CLI or SDK), Codex (CLI or SDK), Gemini CLI, OpenClaw, or Qwen
Disclaimer
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.
License
© 2026 IM.codes
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found

















