|
| 1 | +# [IM.codes](https://im.codes) |
| 2 | + |
| 3 | +[English](../README.md) | [简体中文](README.zh-CN.md) | [繁體中文](README.zh-TW.md) | [Español](README.es.md) | [Русский](README.ru.md) | [日本語](README.ja.md) | [한국어](README.ko.md) |
| 4 | + |
| 5 | + |
| 6 | +**La capa de mensajería para agentes.** |
| 7 | + |
| 8 | +IM.codes es un mensajero especializado para agentes de programación con IA. Te permite seguir sesiones largas desde móvil o web, con acceso a terminal, navegación de archivos, vistas de Git, vista previa de localhost, notificaciones y flujos multiagente integrados. Funciona con [Claude Code](https://github.com/anthropics/claude-code), [Codex](https://github.com/openai/codex), [Gemini CLI](https://github.com/google-gemini/gemini-cli), [OpenClaw](https://openclaw.com) y [Qwen](https://github.com/QwenLM/qwen-agent). |
| 9 | + |
| 10 | +> **Nota:** Este archivo es una traducción. **El README en inglés (`../README.md`) es la versión canónica.** Si hay alguna diferencia, prevalece la versión en inglés. |
| 11 | +
|
| 12 | +## Capturas |
| 13 | + |
| 14 | +### Escritorio |
| 15 | + |
| 16 | +<p> |
| 17 | +<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-sidebar.png"><img src="../landing/imcodes-sidebar.png" width="24%" /></a> |
| 18 | +<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes0.png"><img src="../landing/imcodes0.png" width="24%" /></a> |
| 19 | +<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes1.png"><img src="../landing/imcodes1.png" width="24%" /></a> |
| 20 | +<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes2.png"><img src="../landing/imcodes2.png" width="24%" /></a> |
| 21 | +</p> |
| 22 | + |
| 23 | +### iPad / Tableta |
| 24 | + |
| 25 | +<p> |
| 26 | +<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-ipad2.png"><img src="../landing/imcodes-ipad2.png" width="48%" /></a> |
| 27 | +<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-ipad3.png"><img src="../landing/imcodes-ipad3.png" width="48%" /></a> |
| 28 | +</p> |
| 29 | + |
| 30 | +### Móvil |
| 31 | + |
| 32 | +<p> |
| 33 | +<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-m6.png"><img src="../landing/imcodes-m6.png" width="18%" /></a> |
| 34 | +<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-m7.png"><img src="../landing/imcodes-m7.png" width="18%" /></a> |
| 35 | +<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-m8.png"><img src="../landing/imcodes-m8.png" width="18%" /></a> |
| 36 | +<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-m5.png"><img src="../landing/imcodes-m5.png" width="18%" /></a> |
| 37 | +<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-m1.png"><img src="../landing/imcodes-m1.png" width="18%" /></a> |
| 38 | +<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-m2.png"><img src="../landing/imcodes-m2.png" width="18%" /></a> |
| 39 | +<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-m3.png"><img src="../landing/imcodes-m3.png" width="18%" /></a> |
| 40 | +<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-m4.png"><img src="../landing/imcodes-m4.png" width="18%" /></a> |
| 41 | +<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-m0.png"><img src="../landing/imcodes-m0.png" width="18%" /></a> |
| 42 | +</p> |
| 43 | + |
| 44 | +### Apple Watch |
| 45 | + |
| 46 | +<p> |
| 47 | +<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-watch1.png"><img src="../landing/imcodes-watch1.png" width="31%" /></a> |
| 48 | +<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-watch0.png"><img src="../landing/imcodes-watch0.png" width="31%" /></a> |
| 49 | +<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-watch2.png"><img src="../landing/imcodes-watch2.png" width="31%" /></a> |
| 50 | +</p> |
| 51 | + |
| 52 | + |
| 53 | +La compatibilidad con Apple Watch cubre monitorización rápida de sesiones, contadores de no leídos, notificaciones push y respuestas rápidas desde la muñeca. |
| 54 | + |
| 55 | +## Descarga |
| 56 | + |
| 57 | +<a href="https://apps.apple.com/us/app/im-codes/id6761014424"><img src="https://developer.apple.com/assets/elements/badges/download-on-the-app-store.svg" height="40" alt="Download on the App Store" /></a> |
| 58 | + |
| 59 | +Compatible con iPhone, iPad y Apple Watch. También disponible como [web app](https://app.im.codes) y mediante `npm install -g imcodes` (CLI del daemon). |
| 60 | + |
| 61 | +## Por qué |
| 62 | + |
| 63 | +Cuando te alejas del escritorio, la mayoría de los flujos con coding agents se rompen. El agente sigue ejecutándose en un terminal, pero continuar normalmente implica SSH, `tmux attach`, escritorios remotos o esperar hasta volver al portátil. |
| 64 | + |
| 65 | +[IM.codes](https://im.codes) mantiene esas sesiones al alcance desde móvil o web: abrir el terminal, inspeccionar archivos y cambios Git, previsualizar localhost desde otro dispositivo, recibir notificaciones cuando el trabajo termina y mantener varios agentes en marcha sobre tu propia infraestructura. |
| 66 | + |
| 67 | +No es otro IDE de IA ni un cliente genérico de terminal remota. Es la capa de mensajería y control alrededor de coding agents basados en terminal. |
| 68 | + |
| 69 | +Este es un proyecto personal. Yo prácticamente no escribí código: fue construido casi por completo por [Claude Code](https://github.com/anthropics/claude-code), con contribuciones importantes de [Codex](https://github.com/openai/codex) y [Gemini CLI](https://github.com/google-gemini/gemini-cli). |
| 70 | + |
| 71 | +## Funciones |
| 72 | + |
| 73 | +### Terminal remota |
| 74 | +Acceso completo al terminal de tus sesiones de agente desde cualquier navegador, sin SSH, VPN ni port forwarding. Puedes alternar entre modo terminal bruto y una vista de chat estructurada con tool calls, bloques de thinking y salida en streaming. |
| 75 | + |
| 76 | +### Navegador de archivos y cambios Git |
| 77 | +Explora archivos del proyecto en árbol, sube y descarga archivos, revisa estado Git con conteo de líneas añadidas y eliminadas, y abre vistas previas flotantes con resaltado de sintaxis y diff. |
| 78 | + |
| 79 | +### Vista previa web local |
| 80 | +Previsualiza tu servidor de desarrollo local desde cualquier dispositivo sin desplegar nada. El daemon hace proxy del tráfico `localhost` a través de un túnel WebSocket seguro. |
| 81 | + |
| 82 | +### Móvil, reloj y notificaciones |
| 83 | +Soporte completo para móvil, autenticación biométrica, notificaciones push, entrada interactiva para sesiones shell y respuestas rápidas desde Apple Watch. |
| 84 | + |
| 85 | +### Discusiones y auditoría multiagente |
| 86 | +Puedes ejecutar rondas rápidas de discusión donde varios agentes, incluso de distintos proveedores, revisan o auditan el mismo tema. |
| 87 | + |
| 88 | +### Agentes transport con streaming |
| 89 | +Soporte nativo de streaming para agentes transport como OpenClaw y Qwen, sin scraping de terminal. |
| 90 | + |
| 91 | +### Comunicación agente a agente |
| 92 | +Los agentes pueden enviarse mensajes directamente mediante `imcodes send`. |
| 93 | + |
| 94 | +```bash |
| 95 | +imcodes send "Plan" "review the changes in src/api.ts" |
| 96 | +imcodes send "Cx" "run tests" --reply |
| 97 | +imcodes send --all "migration complete, check your end" |
| 98 | +``` |
| 99 | + |
| 100 | +También puedes usar sesiones `script` para automatizar flujos personalizados. |
| 101 | + |
| 102 | +```python |
| 103 | +# monitor.py — watch a log file, trigger agent when errors appear |
| 104 | +import subprocess, time |
| 105 | + |
| 106 | +while True: |
| 107 | + with open("/var/log/app.log") as f: |
| 108 | + for line in f: |
| 109 | + if "ERROR" in line: |
| 110 | + subprocess.run([ |
| 111 | + "imcodes", "send", "Claude", |
| 112 | + f"Fix this error and write the patch to /tmp/fix.patch: |
| 113 | +{line}" |
| 114 | + ]) |
| 115 | + time.sleep(30) |
| 116 | +``` |
| 117 | + |
| 118 | +```bash |
| 119 | +# Webhook → agent: GitHub webhook handler triggers code review |
| 120 | +curl -X POST https://your-server/webhook -d '{"pr": 42}' \ |
| 121 | + && imcodes send "Gemini" "review PR #42, write summary to /tmp/review.md" |
| 122 | + |
| 123 | +# CI → agent: post-build trigger |
| 124 | +imcodes send "Claude" "tests failed on main, check CI log at /tmp/ci.log and fix" --reply |
| 125 | +``` |
| 126 | + |
| 127 | +### Selector `@` inteligente |
| 128 | +`@` busca archivos del proyecto; `@@` selecciona agentes para despacho P2P. |
| 129 | + |
| 130 | +### Gestión de múltiples servidores y sesiones |
| 131 | +Conecta varias máquinas de desarrollo a un único panel. |
| 132 | + |
| 133 | +### Barra lateral estilo Discord |
| 134 | +Barra de iconos de servidor, árbol jerárquico de sesiones, contadores de no leídos y paneles fijados. |
| 135 | + |
| 136 | +### Paneles fijables |
| 137 | +Cualquier ventana flotante se puede fijar a la barra lateral. |
| 138 | + |
| 139 | +### Panel del repositorio |
| 140 | +Consulta issues, PRs, ramas, commits y ejecuciones CI/CD desde la app. |
| 141 | + |
| 142 | +### Tareas programadas (Cron) |
| 143 | +Automatiza flujos de agentes recurrentes con programación estilo cron. |
| 144 | + |
| 145 | +### Sincronización entre dispositivos |
| 146 | +Orden de pestañas y paneles fijados se sincronizan a través de la API de preferencias del servidor. |
| 147 | + |
| 148 | +### Internacionalización |
| 149 | +La interfaz soporta 7 idiomas. |
| 150 | + |
| 151 | +### Actualizaciones OTA |
| 152 | +El daemon puede actualizarse vía npm y dispararse desde la web. |
| 153 | + |
| 154 | +## Lo que IM.codes no es |
| 155 | + |
| 156 | +- No es otro IDE de IA |
| 157 | +- No es solo un wrapper de chat |
| 158 | +- No es solo un cliente de terminal remota |
| 159 | +- No reemplaza Claude Code, Codex, Gemini CLI, OpenClaw o Qwen |
| 160 | +- Es la capa de mensajería y control alrededor de ellos |
| 161 | + |
| 162 | +## Arquitectura |
| 163 | + |
| 164 | +``` |
| 165 | +You (browser / mobile) |
| 166 | + ↓ WebSocket |
| 167 | +Server (self-hosted) |
| 168 | + ↓ WebSocket |
| 169 | +Daemon (your machine) |
| 170 | + ↓ tmux / WezTerm / transport |
| 171 | +AI Agents (Claude Code / Codex / Gemini CLI / OpenClaw) |
| 172 | + ↔ imcodes send (agent-to-agent) |
| 173 | +``` |
| 174 | + |
| 175 | +El daemon se ejecuta en tu máquina y gestiona sesiones a través de tmux, WezTerm o protocolos transport. El servidor reenvía las conexiones entre tus dispositivos y el daemon. Todo permanece en tu propia infraestructura. |
| 176 | + |
| 177 | +## Instalación |
| 178 | + |
| 179 | +```bash |
| 180 | +npm install -g imcodes |
| 181 | +``` |
| 182 | + |
| 183 | +## Inicio rápido |
| 184 | + |
| 185 | +> **Se recomienda encarecidamente autoalojar.** La instancia compartida `app.im.codes` es solo para pruebas. |
| 186 | +
|
| 187 | +```bash |
| 188 | +imcodes bind https://app.im.codes/bind/<api-key> |
| 189 | +``` |
| 190 | + |
| 191 | +Este comando vincula tu máquina, inicia el daemon, lo registra como servicio del sistema y hace que la máquina aparezca en el panel web/móvil. |
| 192 | + |
| 193 | +### Conexión OpenClaw |
| 194 | + |
| 195 | +Si OpenClaw está ejecutándose localmente, conecta IM.codes al gateway de OpenClaw en la máquina donde corre el daemon: |
| 196 | + |
| 197 | +```bash |
| 198 | +imcodes connect openclaw |
| 199 | +``` |
| 200 | + |
| 201 | +Esto: |
| 202 | + |
| 203 | +- se conecta por defecto a `ws://127.0.0.1:18789` |
| 204 | +- reutiliza automáticamente el token desde `~/.openclaw/openclaw.json` |
| 205 | +- sincroniza sesiones principales e hijas de OpenClaw en IM.codes |
| 206 | +- guarda la configuración en `~/.imcodes/openclaw.json` |
| 207 | +- reinicia el daemon para permitir la reconexión automática |
| 208 | + |
| 209 | +```bash |
| 210 | +imcodes connect openclaw --url ws://127.0.0.1:18789 |
| 211 | +OPENCLAW_GATEWAY_TOKEN=... imcodes connect openclaw |
| 212 | +imcodes connect openclaw --url wss://gateway.example.com |
| 213 | +``` |
| 214 | + |
| 215 | +Notas: |
| 216 | + |
| 217 | +- las URLs remotas `ws://` sin TLS requieren `--insecure` |
| 218 | +- usa `imcodes disconnect openclaw` para eliminar la configuración guardada |
| 219 | +- este flujo solo se ha probado en macOS |
| 220 | + |
| 221 | +## Autoalojado |
| 222 | + |
| 223 | +### Configuración en un solo comando |
| 224 | + |
| 225 | +```bash |
| 226 | +npm install -g imcodes |
| 227 | +mkdir imcodes && cd imcodes |
| 228 | +imcodes setup --domain imc.example.com |
| 229 | +``` |
| 230 | + |
| 231 | +### Configuración manual |
| 232 | + |
| 233 | +```bash |
| 234 | +git clone https://github.com/im4codes/imcodes.git && cd imcodes |
| 235 | +./gen-env.sh imc.example.com # generates .env with random secrets, prints admin password |
| 236 | +docker compose up -d |
| 237 | +``` |
| 238 | + |
| 239 | +## Windows (experimental) |
| 240 | + |
| 241 | +Windows está soportado de forma nativa mediante ConPTY. |
| 242 | + |
| 243 | +```cmd |
| 244 | +npm install -g imcodes |
| 245 | +imcodes bind https://app.im.codes/bind/<api-key> |
| 246 | +``` |
| 247 | + |
| 248 | +```cmd |
| 249 | +imcodes upgrade |
| 250 | +``` |
| 251 | + |
| 252 | +```cmd |
| 253 | +imcodes repair-watchdog |
| 254 | +``` |
| 255 | + |
| 256 | +```cmd |
| 257 | +npm prefix -g |
| 258 | +``` |
| 259 | + |
| 260 | +```cmd |
| 261 | +setx PATH "<npm-prefix-path>;%PATH%" |
| 262 | +``` |
| 263 | + |
| 264 | +``` |
| 265 | +%USERPROFILE%\.imcodes\watchdog.log |
| 266 | +``` |
| 267 | + |
| 268 | +## Requisitos |
| 269 | + |
| 270 | +- macOS o Linux |
| 271 | +- Windows (experimental) vía ConPTY |
| 272 | +- Node.js >= 20 |
| 273 | +- tmux en Linux/macOS |
| 274 | +- Al menos un coding agent: Claude Code, Codex, Gemini CLI, OpenClaw o Qwen |
| 275 | + |
| 276 | +## Descargo de responsabilidad |
| 277 | + |
| 278 | +IM.codes es un proyecto independiente de código abierto y no está afiliado, respaldado ni patrocinado por Anthropic, OpenAI, Google, Alibaba, OpenClaw ni ninguna otra empresa mencionada. |
| 279 | + |
| 280 | +## Licencia |
| 281 | + |
| 282 | +[MIT](../LICENSE) |
| 283 | + |
| 284 | +© 2026 [IM.codes](https://im.codes) |
0 commit comments