Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
4af3c7f
fix(windows): use absolute cmd.exe path in upgrade spawn and startup …
Apr 5, 2026
2cee873
fix(windows): prevent upgrade race condition and use npm shim in watc…
Apr 6, 2026
603a2dd
fix(windows): upgrade lock file prevents watchdog race during npm ins…
Apr 6, 2026
6356c1f
test(windows): comprehensive daemon recovery tests
Apr 6, 2026
2290e7c
Add SDK transport support for Claude and Codex
Apr 6, 2026
35e5758
Remove tracked OpenSpec p2p-parallel-round-summary artifacts
Apr 6, 2026
f9df8a1
Fix coverage CI and document OpenClaw connect
Apr 6, 2026
cc0cb80
Normalize OpenClaw Discord labels
Apr 6, 2026
c27e379
Add Codex quota support and SDK session controls
Apr 6, 2026
130621b
Refine Codex quota display format
Apr 6, 2026
850c9e5
Fix Codex launch-session CI isolation
Apr 6, 2026
8085826
Clear stale Codex quota usage display
Apr 6, 2026
3e86922
Show Codex quota in usage footer
Apr 6, 2026
a23c039
Stabilize Codex rollout retracking
Apr 6, 2026
cce5984
Harden Codex no-text retrack refresh
Apr 6, 2026
c0201b5
Fix SDK labels and Codex CLI footer quota
Apr 6, 2026
f90faba
Add localized README files and fix account-wide quick history
Apr 6, 2026
51b5a74
p2p: unify single-agent discussions with full runs
Apr 6, 2026
67234c2
Update docs for CLI and SDK agents
Apr 6, 2026
15ab05c
Fix transport continuity and SDK streaming behavior
Apr 6, 2026
1625c2d
Fix Claude watcher isolation and Codex quota UI
Apr 6, 2026
ee80eba
Fix CI and add Claude SDK tool/preset support
Apr 6, 2026
e829f8d
Update new-session agent defaults and labels
Apr 6, 2026
8feb1af
Remove permission badges and verify transport tool rendering
Apr 6, 2026
8af3179
Fix SDK transport tool call coverage
Apr 6, 2026
58ad3d8
Unify transport tool detail rendering
Apr 6, 2026
d125f77
Fix SDK transport e2e tool detail assertion
Apr 6, 2026
4377f3d
Add bind command shortcuts to API key creation
Apr 6, 2026
5589fca
Allow SDK sub-session types in server API
Apr 6, 2026
5af5475
Add OpenClaw transport tool call support
Apr 6, 2026
2747f90
Add OpenClaw chat tool rendering regression test
Apr 6, 2026
d1f0964
Clamp floating sub-session windows into view
Apr 6, 2026
dfefb99
Keep sub-session cards scrolled to latest output
Apr 6, 2026
c996309
Merge origin/master into dev
Apr 6, 2026
0d323f0
Normalize Claude opus alias and simplify transport sub controls
Apr 6, 2026
a67f04b
Unify transport effort controls and metadata
Apr 6, 2026
23a9d29
Stabilize Qwen queued send unit test
Apr 6, 2026
899b0e7
Clean up lint warnings
Apr 6, 2026
79a13aa
Unify sub-session controls with main session
Apr 6, 2026
419afde
Sync transport sub-session settings to frontend
Apr 6, 2026
562eda9
Hydrate transport sub-session quota metadata
Apr 6, 2026
4237a19
Fix Windows transport cwd normalization
Apr 6, 2026
b7d32ed
Enforce full-access Codex SDK turns
Apr 6, 2026
f9ca079
Add Windows drive roots to directory picker
Apr 7, 2026
2c9a12a
Allow transport stop outside running state
Apr 7, 2026
353a2b2
fix(file-browser): use :drives: sentinel for Windows drives, restore …
Apr 7, 2026
22d25a1
fix(windows): wrap upgrade batch in VBS to fully suppress wmic/find p…
Apr 7, 2026
42ccacb
Persist transport model and thinking state
Apr 7, 2026
878eaa5
Fix timeline history cache scoping
Apr 7, 2026
7b78dc7
Relax GitHub integration issue filter assertions
Apr 7, 2026
5d7f100
fix(windows): SDK + watchdog Unicode + popup wave 2
Apr 7, 2026
08b5bd0
fix(test): execFile mock signature + path.join not path.win32.join in…
Apr 7, 2026
079ed53
fix(test): hardcode ';' for PATH/PATHEXT split in resolveBinaryOnWindows
Apr 7, 2026
02cb90d
fix(test): use lowercase PATHEXT to match lowercase test fixture file…
Apr 7, 2026
96eda9b
Refresh Codex quota metadata in realtime
Apr 7, 2026
59aeadd
fix(windows): daemon must NEVER die from uncaught errors
Apr 7, 2026
9075766
fix(daemon): bulletproof crash protection — error listeners on every …
Apr 7, 2026
6c7c0c9
feat(daemon): surface uncaught daemon errors to browsers via daemon.e…
Apr 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
286 changes: 286 additions & 0 deletions README.i18n/README.es.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,286 @@
# [IM.codes](https://im.codes)

[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)


**La capa de mensajería para agentes.**

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).

> **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.

Claude Code y Codex ahora admiten dos modos de integración: CLI y SDK.

## Capturas

### Escritorio

<p>
<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-sidebar.png"><img src="../landing/imcodes-sidebar.png" width="24%" /></a>
<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes0.png"><img src="../landing/imcodes0.png" width="24%" /></a>
<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes1.png"><img src="../landing/imcodes1.png" width="24%" /></a>
<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes2.png"><img src="../landing/imcodes2.png" width="24%" /></a>
</p>

### iPad / Tableta

<p>
<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-ipad2.png"><img src="../landing/imcodes-ipad2.png" width="48%" /></a>
<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-ipad3.png"><img src="../landing/imcodes-ipad3.png" width="48%" /></a>
</p>

### Móvil

<p>
<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-m6.png"><img src="../landing/imcodes-m6.png" width="18%" /></a>
<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-m7.png"><img src="../landing/imcodes-m7.png" width="18%" /></a>
<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-m8.png"><img src="../landing/imcodes-m8.png" width="18%" /></a>
<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-m5.png"><img src="../landing/imcodes-m5.png" width="18%" /></a>
<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-m1.png"><img src="../landing/imcodes-m1.png" width="18%" /></a>
<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-m2.png"><img src="../landing/imcodes-m2.png" width="18%" /></a>
<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-m3.png"><img src="../landing/imcodes-m3.png" width="18%" /></a>
<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-m4.png"><img src="../landing/imcodes-m4.png" width="18%" /></a>
<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-m0.png"><img src="../landing/imcodes-m0.png" width="18%" /></a>
</p>

### Apple Watch

<p>
<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-watch1.png"><img src="../landing/imcodes-watch1.png" width="31%" /></a>
<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-watch0.png"><img src="../landing/imcodes-watch0.png" width="31%" /></a>
<a href="https://raw.githubusercontent.com/im4codes/imcodes/master/landing/imcodes-watch2.png"><img src="../landing/imcodes-watch2.png" width="31%" /></a>
</p>


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.

## Descarga

<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>

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).

## Por qué

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.

[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.

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.

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).

## Funciones

### Terminal remota
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.

### Navegador de archivos y cambios Git
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.

### Vista previa web local
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.

### Móvil, reloj y notificaciones
Soporte completo para móvil, autenticación biométrica, notificaciones push, entrada interactiva para sesiones shell y respuestas rápidas desde Apple Watch.

### Discusiones y auditoría multiagente
Puedes ejecutar rondas rápidas de discusión donde varios agentes, incluso de distintos proveedores, revisan o auditan el mismo tema.

### Agentes transport con streaming
Soporte nativo de streaming para agentes transport como OpenClaw y Qwen, sin scraping de terminal.

### Comunicación agente a agente
Los agentes pueden enviarse mensajes directamente mediante `imcodes send`.

```bash
imcodes send "Plan" "review the changes in src/api.ts"
imcodes send "Cx" "run tests" --reply
imcodes send --all "migration complete, check your end"
```

También puedes usar sesiones `script` para automatizar flujos personalizados.

```python
# 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:
{line}"
])
time.sleep(30)
```

```bash
# 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
```

### Selector `@` inteligente
`@` busca archivos del proyecto; `@@` selecciona agentes para despacho P2P.

### Gestión de múltiples servidores y sesiones
Conecta varias máquinas de desarrollo a un único panel.

### Barra lateral estilo Discord
Barra de iconos de servidor, árbol jerárquico de sesiones, contadores de no leídos y paneles fijados.

### Paneles fijables
Cualquier ventana flotante se puede fijar a la barra lateral.

### Panel del repositorio
Consulta issues, PRs, ramas, commits y ejecuciones CI/CD desde la app.

### Tareas programadas (Cron)
Automatiza flujos de agentes recurrentes con programación estilo cron.

### Sincronización entre dispositivos
Orden de pestañas y paneles fijados se sincronizan a través de la API de preferencias del servidor.

### Internacionalización
La interfaz soporta 7 idiomas.

### Actualizaciones OTA
El daemon puede actualizarse vía npm y dispararse desde la web.

## Lo que IM.codes no es

- No es otro IDE de IA
- No es solo un wrapper de chat
- No es solo un cliente de terminal remota
- No reemplaza Claude Code, Codex, Gemini CLI, OpenClaw o Qwen
- Es la capa de mensajería y control alrededor de ellos

## Arquitectura

```
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)
```

El daemon se ejecuta en tu máquina y gestiona sesiones a través de tmux o protocolos transport. El servidor reenvía las conexiones entre tus dispositivos y el daemon. Todo permanece en tu propia infraestructura.

## Instalación

```bash
npm install -g imcodes
```

## Inicio rápido

> **Se recomienda encarecidamente autoalojar.** La instancia compartida `app.im.codes` es solo para pruebas.

```bash
imcodes bind https://app.im.codes/bind/<api-key>
```

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.

### Conexión OpenClaw

Si OpenClaw está ejecutándose localmente, conecta IM.codes al gateway de OpenClaw en la máquina donde corre el daemon:

```bash
imcodes connect openclaw
```

Esto:

- se conecta por defecto a `ws://127.0.0.1:18789`
- reutiliza automáticamente el token desde `~/.openclaw/openclaw.json`
- sincroniza sesiones principales e hijas de OpenClaw en IM.codes
- guarda la configuración en `~/.imcodes/openclaw.json`
- reinicia el daemon para permitir la reconexión automática

```bash
imcodes connect openclaw --url ws://127.0.0.1:18789
OPENCLAW_GATEWAY_TOKEN=... imcodes connect openclaw
imcodes connect openclaw --url wss://gateway.example.com
```

Notas:

- las URLs remotas `ws://` sin TLS requieren `--insecure`
- usa `imcodes disconnect openclaw` para eliminar la configuración guardada
- este flujo solo se ha probado en macOS

## Autoalojado

### Configuración en un solo comando

```bash
npm install -g imcodes
mkdir imcodes && cd imcodes
imcodes setup --domain imc.example.com
```

### Configuración manual

```bash
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
```

## Windows (experimental)

Windows está soportado de forma nativa mediante ConPTY.

```cmd
npm install -g imcodes
imcodes bind https://app.im.codes/bind/<api-key>
```

```cmd
imcodes upgrade
```

```cmd
imcodes repair-watchdog
```

```cmd
npm prefix -g
```

```cmd
setx PATH "<npm-prefix-path>;%PATH%"
```

```
%USERPROFILE%\.imcodes\watchdog.log
```

## Requisitos

- macOS o Linux
- Windows (experimental) vía ConPTY
- Node.js >= 20
- tmux en Linux/macOS
- Al menos un coding agent: Claude Code, Codex, Gemini CLI, OpenClaw o Qwen

## Descargo de responsabilidad

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.

## Licencia

[MIT](../LICENSE)

© 2026 [IM.codes](https://im.codes)
Loading
Loading