diff --git a/README.i18n/README.es.md b/README.i18n/README.es.md new file mode 100644 index 000000000..fffc70d4e --- /dev/null +++ b/README.i18n/README.es.md @@ -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 + +

+ + + + +

+ +### iPad / Tableta + +

+ + +

+ +### Móvil + +

+ + + + + + + + + +

+ +### Apple Watch + +

+ + + +

+ + +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 + +Download on the App Store + +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/ +``` + +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/ +``` + +```cmd +imcodes upgrade +``` + +```cmd +imcodes repair-watchdog +``` + +```cmd +npm prefix -g +``` + +```cmd +setx 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) diff --git a/README.i18n/README.ja.md b/README.i18n/README.ja.md new file mode 100644 index 000000000..73bfdde5b --- /dev/null +++ b/README.i18n/README.ja.md @@ -0,0 +1,277 @@ +# [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) + +**AI エージェントのための IM。** + +IM.codes は AI コーディングエージェント向けの専用メッセンジャーです。モバイルや Web から長時間動作する agent session にアクセスし、ターミナル、ファイル閲覧、Git 変更、localhost プレビュー、通知、マルチエージェント連携を扱えます。Claude Code、Codex、Gemini CLI、OpenClaw、Qwen に対応します。 + +> これは翻訳版です。**正式な内容は英語版 README(`../README.md`)です。** 差異がある場合は英語版を優先してください。 + +Claude Code と Codex はどちらも CLI と SDK の両方で接続できます。 + +## スクリーンショット + +### デスクトップ + +

+ + + + +

+ +### iPad / タブレット + +

+ + +

+ +### モバイル + +

+ + + + + + + + + +

+ +### Apple Watch + +

+ + + +

+ +Apple Watch ではセッションの素早い確認、未読件数、push 通知、手首からのクイックリプライに対応します。 + +## ダウンロード + +Download on the App Store + +iPhone、iPad、Apple Watch に対応しています。[Web App](https://app.im.codes) と `npm install -g imcodes` による daemon CLI も利用できます。 + +## なぜ作ったか + +デスクを離れると、多くの coding-agent workflow は途切れます。agent は端末で動き続けていても、続きの操作には SSH、`tmux attach`、リモートデスクトップなどが必要になります。 + +[IM.codes](https://im.codes) はそうした session をモバイルや Web から手の届く場所に保ちます。ターミナルを開き、ファイルや Git 変更を確認し、別デバイスで localhost をプレビューし、作業完了時に通知を受け取り、複数の agent を並行して動かせます。 + +これは別の AI IDE ではなく、単なる遠隔ターミナルでもありません。端末ベースの coding agents を取り巻くメッセージング / 制御レイヤーです。 + +## 主な機能 + +### リモートターミナル +SSH、VPN、ポート開放なしで、任意のブラウザから agent session の端末に完全アクセスできます。 + +### ファイルブラウザと Git 変更表示 +プロジェクトツリーの閲覧、ファイルのアップロード / ダウンロード、差分確認、プレビューができます。 + +### ローカル Web プレビュー +ローカルの開発サーバーをデプロイせずに他の端末から表示できます。 + +### モバイル、Watch、通知 +生体認証、push 通知、shell session の入力、Apple Watch での素早い確認と返信に対応します。 + +### マルチエージェント議論と監査 +複数の agent による discuss / audit / review / brainstorm ラウンドを実行できます。 + +### Streaming Transport Agents +OpenClaw や Qwen のような transport 型 agent に対して、terminal scraping ではなくネイティブなストリーミングを提供します。 + +### Agent 間通信 +`imcodes send` により、ある agent から別の agent へレビューやテスト依頼を直接送れます。 + +```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" +``` + +```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:\n{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 +``` + +### スマート `@` ピッカー +`@` でファイル検索、`@@` で P2P 対象の agent を選択できます。 + +### 複数サーバー / 複数セッション管理 +複数の開発マシンをひとつのダッシュボードで扱えます。 + +### Discord 風サイドバー +サーバー切り替え、階層的な session tree、未読バッジ、固定パネルを備えます。 + +### 固定パネル +ファイルブラウザ、リポジトリページ、sub-session チャット、ターミナルをサイドバーに固定できます。 + +### リポジトリダッシュボード +Issue、PR、branch、commit、CI/CD run をアプリ内から確認できます。 + +### 定期タスク(Cron) +cron 形式で agent workflow を自動化できます。 + +### 端末間同期 +タブ順序や固定パネルはサーバー経由で複数端末に同期されます。 + +### 国際化 +UI は 7 言語に対応しています。 + +### OTA アップデート +Daemon は npm 経由で自己更新でき、Web UI からも実行できます。 + +## IM.codes ではないもの + +- 別の AI IDE ではない +- 単なるチャットラッパーではない +- 単なるリモートターミナルクライアントではない +- Claude Code、Codex、Gemini CLI、OpenClaw、Qwen の代替ではない +- それらを囲むメッセージング / 制御レイヤーである + +## アーキテクチャ + +``` +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) +``` + +Daemon は開発マシン上で動作し、tmux または transport プロトコルを通じて agent session を管理します。Server は各デバイスと daemon の間を中継します。データは自分のインフラに留まります。 + +## インストール + +```bash +npm install -g imcodes +``` + +## クイックスタート + +> **Self-host を強く推奨します。** 共有インスタンス `app.im.codes` は評価用途のみです。 + +```bash +imcodes bind https://app.im.codes/bind/ +``` + +このコマンドはマシンをバインドし、daemon を起動し、システムサービスとして登録して、Web / モバイルのダッシュボードに表示します。 + +### OpenClaw 接続 + +OpenClaw がローカルで動作している場合、daemon マシン上で IM.codes を OpenClaw gateway に接続できます。 + +```bash +imcodes connect openclaw +``` + +このコマンドは次を行います。 + +- 既定で `ws://127.0.0.1:18789` に接続 +- `~/.openclaw/openclaw.json` の token を自動再利用 +- OpenClaw の main / child session を IM.codes に同期 +- `~/.imcodes/openclaw.json` に設定を保存 +- daemon を再起動して自動再接続を有効化 + +```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 +``` + +注意: + +- TLS なしのリモート `ws://` には `--insecure` が必要 +- `imcodes disconnect openclaw` で保存設定を削除して切断可能 +- このフローは現在 macOS でのみ検証済み + +## Self-Host + +### ワンコマンドセットアップ + +```bash +npm install -g imcodes +mkdir imcodes && cd imcodes +imcodes setup --domain imc.example.com +``` + +### 手動セットアップ + +```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(実験的) + +```cmd +npm install -g imcodes +imcodes bind https://app.im.codes/bind/ +``` + +```cmd +imcodes upgrade +``` + +```cmd +imcodes repair-watchdog +``` + +```cmd +npm prefix -g +``` + +```cmd +setx PATH ";%PATH%" +``` + +``` +%USERPROFILE%\.imcodes\watchdog.log +``` + +## 要件 + +- macOS または Linux +- Windows(実験的、ConPTY 経由) +- Node.js >= 20 +- Linux / macOS では tmux +- Claude Code、Codex、Gemini CLI、OpenClaw、Qwen のいずれか + +## 免責事項 + +IM.codes は独立したオープンソースプロジェクトであり、Anthropic、OpenAI、Google、Alibaba、OpenClaw などとは提携・承認・支援関係にありません。 + +## ライセンス + +[MIT](../LICENSE) + +© 2026 [IM.codes](https://im.codes) diff --git a/README.i18n/README.ko.md b/README.i18n/README.ko.md new file mode 100644 index 000000000..5c8fc34fd --- /dev/null +++ b/README.i18n/README.ko.md @@ -0,0 +1,277 @@ +# [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) + +**AI 에이전트를 위한 IM.** + +IM.codes는 AI 코딩 에이전트를 위한 전용 메신저입니다. 모바일이나 웹에서 장시간 실행 중인 agent session에 접근해 터미널, 파일 브라우징, Git 변경 보기, localhost 미리보기, 알림, 멀티 에이전트 워크플로를 사용할 수 있습니다. Claude Code, Codex, Gemini CLI, OpenClaw, Qwen을 지원합니다. + +> 이 문서는 번역본입니다. **기준 문서는 영어 README(`../README.md`)입니다.** 차이가 있으면 영어판을 우선합니다. + +Claude Code와 Codex는 이제 CLI와 SDK 두 방식 모두로 연결할 수 있습니다. + +## 스크린샷 + +### 데스크톱 + +

+ + + + +

+ +### iPad / 태블릿 + +

+ + +

+ +### 모바일 + +

+ + + + + + + + + +

+ +### Apple Watch + +

+ + + +

+ +Apple Watch에서는 세션 빠른 확인, 읽지 않음 개수, 푸시 알림, 빠른 답장을 지원합니다. + +## 다운로드 + +Download on the App Store + +iPhone, iPad, Apple Watch를 지원합니다. [Web App](https://app.im.codes) 과 `npm install -g imcodes` 기반 daemon CLI도 사용할 수 있습니다. + +## 왜 필요한가 + +자리를 비우면 대부분의 coding-agent workflow가 끊깁니다. agent는 터미널에서 계속 실행되지만, 이어서 작업하려면 SSH, `tmux attach`, 원격 데스크톱 등이 필요합니다. + +[IM.codes](https://im.codes)는 그런 session을 모바일과 웹에서 계속 다룰 수 있게 합니다. 터미널을 열고, 파일과 Git 변경을 보고, 다른 기기에서 localhost를 미리보고, 작업 완료 알림을 받고, 여러 agent를 계속 움직일 수 있습니다. + +이것은 또 다른 AI IDE도 아니고 단순 원격 터미널도 아닙니다. 터미널 기반 coding agent 위에 놓이는 메시징 / 제어 레이어입니다. + +## 주요 기능 + +### 원격 터미널 +SSH, VPN, 포트 포워딩 없이 브라우저에서 agent session의 터미널에 접근할 수 있습니다. + +### 파일 브라우저와 Git 변경 보기 +프로젝트 트리, 업로드 / 다운로드, diff, 변경 요약을 제공합니다. + +### 로컬 웹 프리뷰 +배포 없이 로컬 개발 서버를 다른 기기에서 미리볼 수 있습니다. + +### 모바일, 워치, 알림 +생체 인증, 푸시 알림, shell session 입력, Apple Watch 빠른 응답을 지원합니다. + +### 멀티 에이전트 토론과 감사 +여러 agent가 discuss / audit / review / brainstorm 라운드를 수행할 수 있습니다. + +### 스트리밍 Transport Agents +OpenClaw, Qwen 같은 transport agent에 대해 네이티브 스트리밍을 제공합니다. + +### 에이전트 간 통신 +`imcodes send`로 한 agent가 다른 agent에게 직접 리뷰나 테스트를 요청할 수 있습니다. + +```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" +``` + +```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:\n{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 +``` + +### 스마트 `@` 선택기 +`@`는 프로젝트 파일 검색, `@@`는 P2P 대상 agent 선택에 사용됩니다. + +### 다중 서버 / 다중 세션 관리 +여러 개발 머신을 하나의 대시보드에 연결할 수 있습니다. + +### Discord 스타일 사이드바 +서버 전환, 계층형 session 트리, 읽지 않음 배지, 고정 패널을 제공합니다. + +### 고정 패널 +파일 브라우저, 저장소 페이지, sub-session 채팅, 터미널을 사이드바에 고정할 수 있습니다. + +### 저장소 대시보드 +이슈, PR, 브랜치, 커밋, CI/CD 실행 상태를 앱 안에서 확인할 수 있습니다. + +### 예약 작업 (Cron) +cron 스타일로 반복적인 agent workflow를 자동화할 수 있습니다. + +### 기기 간 동기화 +탭 순서와 고정 패널이 서버 설정 API를 통해 동기화됩니다. + +### 국제화 +UI는 7개 언어를 지원합니다. + +### OTA 업데이트 +daemon은 npm으로 자체 업그레이드할 수 있고, 웹에서도 트리거할 수 있습니다. + +## IM.codes가 아닌 것 + +- 또 다른 AI IDE가 아님 +- 단순 채팅 래퍼가 아님 +- 단순 원격 터미널 클라이언트가 아님 +- Claude Code, Codex, Gemini CLI, OpenClaw, Qwen의 대체품이 아님 +- 그 위에 놓이는 메시징 / 제어 레이어임 + +## 아키텍처 + +``` +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) +``` + +daemon은 개발 머신에서 실행되며 tmux 또는 transport 프로토콜을 통해 session을 관리합니다. 서버는 각 기기와 daemon 사이를 중계합니다. 데이터는 자신의 인프라 안에 남습니다. + +## 설치 + +```bash +npm install -g imcodes +``` + +## 빠른 시작 + +> **Self-host를 강하게 권장합니다.** 공유 인스턴스 `app.im.codes`는 테스트 용도입니다. + +```bash +imcodes bind https://app.im.codes/bind/ +``` + +이 명령은 머신을 바인드하고, daemon을 시작하고, 시스템 서비스로 등록한 뒤, 웹 / 모바일 대시보드에 해당 머신을 표시합니다. + +### OpenClaw 연결 + +OpenClaw가 로컬에서 실행 중이라면 daemon 머신에서 IM.codes를 OpenClaw gateway에 연결할 수 있습니다. + +```bash +imcodes connect openclaw +``` + +이 명령은 다음을 수행합니다. + +- 기본적으로 `ws://127.0.0.1:18789`에 연결 +- `~/.openclaw/openclaw.json`의 token 자동 재사용 +- OpenClaw의 main / child session을 IM.codes에 동기화 +- `~/.imcodes/openclaw.json`에 설정 저장 +- daemon을 재시작해 자동 재연결 가능하게 함 + +```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 +``` + +참고: + +- TLS 없는 원격 `ws://`는 `--insecure`가 필요 +- `imcodes disconnect openclaw`로 저장된 설정 삭제 및 연결 해제 가능 +- 현재 이 흐름은 macOS에서만 테스트됨 + +## Self-Host + +### 원커맨드 설정 + +```bash +npm install -g imcodes +mkdir imcodes && cd imcodes +imcodes setup --domain imc.example.com +``` + +### 수동 설정 + +```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 (실험적) + +```cmd +npm install -g imcodes +imcodes bind https://app.im.codes/bind/ +``` + +```cmd +imcodes upgrade +``` + +```cmd +imcodes repair-watchdog +``` + +```cmd +npm prefix -g +``` + +```cmd +setx PATH ";%PATH%" +``` + +``` +%USERPROFILE%\.imcodes\watchdog.log +``` + +## 요구 사항 + +- macOS 또는 Linux +- Windows (실험적, ConPTY 사용) +- Node.js >= 20 +- Linux / macOS에서는 tmux +- Claude Code, Codex, Gemini CLI, OpenClaw, Qwen 중 하나 + +## 고지 사항 + +IM.codes는 독립적인 오픈소스 프로젝트이며 Anthropic, OpenAI, Google, Alibaba, OpenClaw 등과 제휴, 보증, 후원 관계가 없습니다. + +## 라이선스 + +[MIT](../LICENSE) + +© 2026 [IM.codes](https://im.codes) diff --git a/README.i18n/README.ru.md b/README.i18n/README.ru.md new file mode 100644 index 000000000..0c5a7f0b0 --- /dev/null +++ b/README.i18n/README.ru.md @@ -0,0 +1,277 @@ +# [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) + +**Слой мессенджера для агентов.** + +IM.codes — специализированный мессенджер для AI coding agents. Он позволяет держать долгие agent‑сессии под рукой с телефона или из веба: терминал, файлы, Git, просмотр localhost, уведомления и multi‑agent workflows. Поддерживаются Claude Code, Codex, Gemini CLI, OpenClaw и Qwen. + +> Это перевод. **Каноническая версия — английский README (`../README.md`).** Если есть расхождения, ориентируйтесь на английский вариант. + +Claude Code и Codex теперь поддерживают два способа интеграции: CLI и SDK. + +## Скриншоты + +### Десктоп + +

+ + + + +

+ +### iPad / Планшет + +

+ + +

+ +### Мобильный + +

+ + + + + + + + + +

+ +### Apple Watch + +

+ + + +

+ +Поддержка часов включает быстрый просмотр сессий, счётчики непрочитанных сообщений, push‑уведомления и быстрые ответы с запястья. + +## Загрузка + +Download on the App Store + +Поддерживаются iPhone, iPad и Apple Watch. Также доступно как [web app](https://app.im.codes) и через `npm install -g imcodes` (CLI daemon). + +## Зачем + +Когда вы отходите от рабочего места, большинство workflows с coding agents ломается. Агент всё ещё работает в терминале, но продолжение требует SSH, `tmux attach`, удалённого рабочего стола или ожидания возвращения к ноутбуку. + +[IM.codes](https://im.codes) удерживает эти сессии доступными с телефона или из веба: открыть терминал, проверить файлы и Git, посмотреть localhost с другого устройства, получить уведомление о завершении работы и координировать несколько агентов на собственной инфраструктуре. + +Это не ещё один AI IDE и не просто удалённый терминал. Это слой обмена сообщениями и управления вокруг терминальных coding agents. + +## Возможности + +### Удалённый терминал +Полный доступ к терминалу agent‑сессий из любого браузера без SSH, VPN и проброса портов. + +### Браузер файлов и Git changes +Просмотр дерева проекта, загрузка и скачивание файлов, diff‑просмотр и обзор изменений. + +### Локальный web preview +Без деплоя можно открыть локальный dev‑сервер на телефоне, планшете или в удалённом браузере. + +### Мобильные устройства, часы и уведомления +Есть биометрическая аутентификация, push‑уведомления, ввод для shell‑сессий и быстрые ответы на Apple Watch. + +### Многоагентные обсуждения и аудит +Можно запускать быстрые discuss / audit / review / brainstorm раунды между несколькими агентами. + +### Потоковые transport‑агенты +OpenClaw и Qwen работают через структурированный transport‑stream вместо terminal scraping. + +### Связь агент ↔ агент +`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" +``` + +```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:\n{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 +``` + +### Умный picker `@` +`@` ищет файлы проекта, `@@` выбирает агентов для P2P dispatch. + +### Управление несколькими серверами и сессиями +Можно подключить несколько dev‑машин к одной панели. + +### Боковая панель в стиле Discord +Есть панель серверов, древовидный список сессий, unread badges и закрепляемые окна. + +### Закрепляемые панели +Файловый браузер, страница репозитория, чат sub‑session и терминал можно закрепить в боковой панели. + +### Дашборд репозитория +В приложении можно просматривать issues, PR, branches, commits и CI/CD runs. + +### Планировщик задач (Cron) +Поддерживаются cron‑задачи для запуска команд и multi‑agent дискуссий. + +### Синхронизация между устройствами +Порядок вкладок и закреплённые панели синхронизируются через серверные preferences. + +### Интернационализация +Интерфейс поддерживает 7 языков. + +### OTA‑обновления +Daemon может обновляться через npm, в том числе по команде из веб‑интерфейса. + +## Чем IM.codes не является + +- Это не ещё один AI IDE +- Это не просто чат‑обёртка +- Это не просто клиент удалённого терминала +- Это не замена Claude Code, Codex, Gemini CLI, OpenClaw или Qwen +- Это слой управления и обмена сообщениями вокруг них + +## Архитектура + +``` +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) +``` + +Daemon работает на вашей dev‑машине и управляет сессиями через tmux или transport‑протоколы. Сервер проксирует соединения между вашими устройствами и daemon. Всё остаётся на вашей инфраструктуре. + +## Установка + +```bash +npm install -g imcodes +``` + +## Быстрый старт + +> **Self-hosting настоятельно рекомендуется.** Общий инстанс `app.im.codes` предназначен только для тестирования. + +```bash +imcodes bind https://app.im.codes/bind/ +``` + +Эта команда привязывает вашу машину, запускает daemon, регистрирует его как системный сервис и добавляет машину в веб / мобильную панель. + +### Подключение OpenClaw + +Если OpenClaw запущен локально, подключите IM.codes к OpenClaw gateway на машине с daemon: + +```bash +imcodes connect openclaw +``` + +Команда: + +- подключается по умолчанию к `ws://127.0.0.1:18789` +- автоматически использует token из `~/.openclaw/openclaw.json` +- синхронизирует основные и дочерние сессии OpenClaw в IM.codes +- сохраняет конфигурацию в `~/.imcodes/openclaw.json` +- перезапускает daemon для автоматического восстановления transport‑сессий + +```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 +``` + +Примечания: + +- для удалённых `ws://` без TLS нужен `--insecure` +- `imcodes disconnect openclaw` удаляет сохранённую конфигурацию и разрывает соединение +- этот сценарий пока тестировался только на macOS + +## Self-host + +### Настройка одной командой + +```bash +npm install -g imcodes +mkdir imcodes && cd imcodes +imcodes setup --domain imc.example.com +``` + +### Ручная настройка + +```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 (экспериментально) + +```cmd +npm install -g imcodes +imcodes bind https://app.im.codes/bind/ +``` + +```cmd +imcodes upgrade +``` + +```cmd +imcodes repair-watchdog +``` + +```cmd +npm prefix -g +``` + +```cmd +setx PATH ";%PATH%" +``` + +``` +%USERPROFILE%\.imcodes\watchdog.log +``` + +## Требования + +- macOS или Linux +- Windows (экспериментально) через ConPTY +- Node.js >= 20 +- tmux на Linux/macOS +- как минимум один AI coding agent: Claude Code, Codex, Gemini CLI, OpenClaw или Qwen + +## Дисклеймер + +IM.codes — независимый open-source проект и не аффилирован с Anthropic, OpenAI, Google, Alibaba, OpenClaw или другими упомянутыми компаниями. + +## Лицензия + +[MIT](../LICENSE) + +© 2026 [IM.codes](https://im.codes) diff --git a/README.i18n/README.zh-CN.md b/README.i18n/README.zh-CN.md new file mode 100644 index 000000000..a27aa115b --- /dev/null +++ b/README.i18n/README.zh-CN.md @@ -0,0 +1,347 @@ +# [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) + + +**Agent 的即时通讯层。** + +IM.codes 是一个面向 AI 编码代理的专用即时通讯器。你可以在手机或网页上持续查看长时间运行的 agent 会话,直接访问终端、浏览文件、查看 Git 变更、预览本地 localhost、接收通知,并进行多 agent 协作。支持 [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)、[Qwen](https://github.com/QwenLM/qwen-agent) 等,也支持 transport 型 agent 的原生流式输出。 + +> **说明:** 本文件是中文翻译版。**英文 README(`../README.md`)是规范版本。** 若内容存在差异,以英文版为准。 + +Claude Code 和 Codex 现在都支持两种接入方式:CLI 和 SDK。 + +## 截图 + +### 桌面端 + +

+ + + + +

+ +### iPad / 平板 + +

+ + +

+ +### 手机 + +

+ + + + + + + + + +

+ +### Apple Watch + +

+ + + +

+ + +手表支持会话快速查看、未读计数、推送通知,以及直接在手腕上快速回复。 + +## 下载 + +Download on the App Store + +支持 iPhone、iPad 和 Apple Watch。也可以通过 [Web App](https://app.im.codes) 使用,或通过 `npm install -g imcodes` 安装 daemon CLI。 + +## 为什么做这个 + +当你离开电脑时,大多数 coding-agent 工作流都会断掉。agent 仍然在终端里运行,但继续工作通常意味着 SSH、tmux attach、远程桌面,或者只能等你回到电脑前。 + +[IM.codes](https://im.codes) 让这些会话在手机或网页上也始终可达:打开终端、检查文件和 Git 变更、在其他设备上预览 localhost、在任务完成时收到通知,并继续调度多个 agent。 + +它不是另一个 AI IDE,也不是普通的远程终端。它是围绕终端型 coding agent 的消息与控制层。 + +这是一个个人项目。我自己几乎没写代码——它基本由 [Claude Code](https://github.com/anthropics/claude-code) 构建完成,[Codex](https://github.com/openai/codex) 和 [Gemini CLI](https://github.com/google-gemini/gemini-cli) 也提供了大量贡献。 + +## 功能 + +### 远程终端 + +可以从任意浏览器完整访问 agent 会话终端——无需 SSH、VPN 或端口转发。支持原始终端模式(原生 CLI 体验)与结构化聊天视图(解析工具调用、thinking block 和流式输出)之间切换。实时 PTY 流以 12fps 更新,没有消息条数限制。 + +### 文件浏览与 Git 变更 + +用树形结构浏览项目文件。可以从任意设备上传文件、图片和照片,也可以直接从服务器下载文件。Changes 标签页显示 git status,并给出每个文件彩色的 `+新增` / `-删除` 行数。点击文件可打开悬浮预览窗口,支持语法高亮、diff 视图和每 5 秒自动刷新。文件浏览器还可以固定到侧边栏,并自动跟随当前活动标签的项目目录。 + +### 本地 Web 预览 + +可以在手机、平板或远端浏览器上预览你本机的开发服务器,而无需部署。daemon 会通过安全的 WebSocket 隧道把 `localhost` 流量代理到服务器。HTML 重写和运行时补丁会处理 URL 映射,使链接、fetch 和 WebSocket 都能正常工作。支持通过 WebSocket 隧道实现 HMR / 热更新。不需要公开 URL,也不依赖第三方隧道——流量只在你自己的 IM.codes 服务器中转。 + +### 移动端、手表与通知 + +完整支持移动端,包含生物识别认证和推送通知。Shell 会话在手机上也支持交互式键盘输入(类似 SSH)。子会话预览卡始终显示最新消息。Toast 通知可直接跳转到对应会话。Apple Watch 支持会话快速查看、未读计数和快速回复。 + +### 多 Agent 讨论与审计 + +单模型输出不应被盲目信任。你可以快速发起多轮讨论,让多个 agent——甚至跨 provider——围绕同一主题进行 review、audit 或 brainstorming。每个 agent 会读取前面的内容,再追加自己的分析。支持 `discuss`、`audit`、`review`、`brainstorm` 模式。侧边栏中的环形进度条会显示 round / hop 完成情况。支持 Claude Code、Codex、Gemini CLI,也兼容带 sandbox 的 agent。 + +### 流式 Transport Agents + +对 [OpenClaw](https://openclaw.com) 和 [Qwen](https://github.com/QwenLM/qwen-agent) 这类 transport 型 agent,提供原生流式输出支持。这些 agent 通过网络协议(WebSocket 或本地 SDK)连接,而不是通过终端抓取,从而能提供实时 delta 更新、工具调用跟踪和会话恢复。 + +> **Qwen 说明:** Qwen 当前提供免费层(每天 1000 次请求),这是阿里云的政策,不是 IM.codes 提供的承诺——条款、额度和可用性都可能随时变化。请查看 [Qwen 文档](https://qwen.readthedocs.io/) 获取最新信息。 + +> **OpenClaw 说明:** `imcodes connect openclaw` 目前只在 macOS 上验证过。 + +### Agent 到 Agent 通信 + +agent 可以通过 `imcodes send` 直接互相发送消息。一个会话中的 agent 可以请求另一个兄弟会话去 review 代码、跑测试或协同处理任务——无需用户手动中转。支持按 label、session 名或 agent 类型解析目标。`--reply` 参数会要求对方自动把结果发回。内置了防滥用的保护:深度限制、速率限制和广播上限。 + +```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" +``` + +除了 agent-to-agent 聊天,你还可以使用 `script` 会话构建自定义自动化。一个运行在 script 会话中的 Python 脚本可以调用 `imcodes send`,根据任意外部事件触发 agent: + +```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 +``` + +适用场景包括:日志监控自动修复、Webhook 触发代码评审、CI 失败自动诊断、定时数据管道检查,以及需要把结果写入指定文件供人工审批的自定义工作流。 + +### @ 选择器——智能 Agent 与文件选择 + +输入 `@` 搜索项目文件,输入 `@@` 选择 agent 用于 P2P 分发。`@@all(config)` 会按照当前会话保存的 P2P 设置(模式、轮数、参与者)发送给所有已配置 agent。通过 `@@all+` 可以自定义轮数。前端只负责选择,具体展开由 daemon 通过结构化 WS 路由完成。 + +### 多服务器、多会话管理 + +你可以把多台开发机接到同一个面板里。每台机器运行一个轻量 daemon,通过 tmux 管理本地 agent 会话。你可以在一个界面里查看所有 server 和 session,并即时启动、停止、重启或切换。Sub-session 允许你在运行中的主会话内部再启动更多 agent 来并行处理任务。支持可拖拽标签、固定和右键菜单。 + +### Discord 风格侧边栏 + +支持 server 图标栏快速切换服务器。层级式会话树支持折叠 sub-session、未读消息徽标,以及 agent 完成任务时的 idle 闪烁动画。任意悬浮窗口(文件浏览器、仓库页、子会话聊天)都可以固定到侧边栏。语言切换器和构建信息在底部。 + +### 可固定面板 + +任何悬浮窗口都可以拖到侧边栏并固定为常驻面板。支持文件浏览器、仓库页面、子会话聊天和终端视图。面板可调整大小、通过服务器同步到多设备,并在重连后自动恢复。底层是通用注册机制,新面板类型只需在一个文件里注册。 + +### 仓库看板 + +可以直接在应用里查看 issue、pull request、branch、commit 和 CI/CD 运行状态。后台静默刷新,不会出现下拉刷新抖动。CI 状态自动轮询(运行中每 10 秒,否则每 15 秒)。仓库页面也可以固定到侧边栏,常驻显示。 + +### 定时任务(Cron) + +支持以 cron 风格自动化重复性的 agent 工作流。你可以创建定时任务,按时间表向某个 session 发送命令,或触发多 agent 的 P2P 讨论。提供常见周期的可视化 cron 选择器、时区感知调度,以及用于调试的“立即运行”。执行历史支持展开查看详情,点击任何记录都可以跳转到目标会话并引用结果继续跟进。还支持跨任务执行列表的 Latest / All 模式和多服务器筛选。 + +### 跨设备同步 + +标签顺序、固定标签和固定侧边栏面板会通过服务器偏好 API 在多设备之间同步。采用写穿缓存模式:本地 localStorage 用于即时渲染,服务器端使用防抖 PUT 以保证跨设备一致性。通过带时间戳的 payload 解决冲突。设备特有状态(侧边栏宽度、面板高度、视图模式)仍然保留在本地。 + +### 国际化 + +支持 7 种语言:English、简体中文、繁體中文、Español、Русский、日本語、한국어。侧边栏底部有语言切换器。所有用户可见字符串都通过 i18n key 管理。 + +### OTA 更新 + +daemon 可以通过 npm 自升级。也可以从 Web UI 为单台设备或全部设备触发升级。 + +## IM.codes 不是什么 + +- 不是另一个 AI IDE +- 不是聊天壳子 +- 不只是远程终端客户端 +- 不是 Claude Code、Codex、Gemini CLI、OpenClaw 或 Qwen 的替代品 +- 它是围绕这些工具的消息与控制层 + +## 架构 + +``` +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) +``` + +Daemon 运行在你的开发机上,通过 tmux 管理进程型 agent,会通过网络协议管理 transport 型 agent(例如 OpenClaw gateway)。Agent 之间可以用 `imcodes send` 互相通信。Server 负责在你的设备与 daemon 之间中转连接。所有数据都留在你自己的基础设施里。 + +## 安装 + +```bash +npm install -g imcodes +``` + +## 快速开始 + +> **强烈建议自托管。** 共享实例 `app.im.codes` 只用于测试,没有可用性保证,可能会被限流,也可能成为攻击目标。这是个人项目,没有商业支持。除了评估之外,建议部署到你自己的基础设施。 + +你可以用 [app.im.codes](https://app.im.codes) 做体验,或者在正式使用时自行部署。 + +```bash +imcodes bind https://app.im.codes/bind/ +``` + +这条命令会把你的机器绑定到 IM.codes,启动 daemon,把它注册成系统服务,并让这台机器出现在网页和移动端面板里。 + +### OpenClaw 连接 + +如果本机正在运行 OpenClaw,可以在 daemon 所在机器上把 IM.codes 连接到 OpenClaw gateway: + +```bash +imcodes connect openclaw +``` + +这条命令会做以下事情: + +- 默认连接到 `ws://127.0.0.1:18789` +- 自动复用 `~/.openclaw/openclaw.json` 中的 OpenClaw gateway token +- 把 OpenClaw 的主会话和子会话同步到 IM.codes,显示为 transport-backed session / sub-session +- 把 IM.codes 侧的连接配置保存到 `~/.imcodes/openclaw.json` +- 重启 daemon,使 OpenClaw transport 会话能自动重连 + +常见变体: + +```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 +``` + +注意: + +- 远程的非 TLS `ws://` 地址需要加 `--insecure` +- 可以通过 `imcodes disconnect openclaw` 删除保存的配置并断开连接 +- 这条流程目前只在 macOS 上测试过 + +## 自托管 + +### 一键部署 + +在同一台机器上部署 server + daemon。需要 Docker,以及一个 DNS 已指向服务器的域名。 + +```bash +npm install -g imcodes +mkdir imcodes && cd imcodes +imcodes setup --domain imc.example.com +``` + +这条命令会自动生成全部配置,启动 PostgreSQL + server + Caddy(自动 HTTPS),创建管理员账户,并绑定本机 daemon。最后会打印出凭据。 + +如果要连接更多机器: + +```bash +npm install -g imcodes +imcodes bind https://imc.example.com/bind/ +``` + +### 手动部署 + +如果你希望手动配置: + +```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 +``` + +然后访问 `https://your-domain`,使用 `admin` 和打印出来的密码登录。之后使用 `imcodes bind` 绑定你的开发机。 + +## Windows(实验性) + +Windows 通过 [ConPTY](https://devblogs.microsoft.com/commandline/windows-command-line-introducing-the-windows-pseudo-console-conpty/) 原生支持(Windows 10+ 内置),不需要 WSL。 + +### 安装与绑定(Windows) + +```cmd +npm install -g imcodes +imcodes bind https://app.im.codes/bind/ +``` + +### 升级(Windows) + +```cmd +imcodes upgrade +``` + +你也可以从网页面板远程触发升级(会向 daemon 发送 upgrade 命令)。 + +### 故障排查(Windows) + +如果 daemon 在自动升级后停止运行,可以重建启动链: + +```cmd +imcodes repair-watchdog +``` + +这条命令会使用当前的 Node.js 和 imcodes 路径重写 watchdog 脚本和计划任务。适用于 Node.js 版本切换(nvm、fnm)之后,或者 daemon 升级后无法重启的情况。 + +如果升级后 `imcodes` 提示 “not recognized as internal or external command”,通常是 npm 全局目录没有加入 PATH。可以这样修复: + +```cmd +npm prefix -g +``` + +复制输出路径并把它加入 PATH: + +```cmd +setx PATH ";%PATH%" +``` + +然后打开一个**新的**终端窗口。 + +检查 daemon watchdog 日志: + +``` +%USERPROFILE%\.imcodes\watchdog.log +``` + +## 运行要求 + +- macOS 或 Linux(都已验证) +- **Windows(实验性)**:通过 ConPTY 原生支持(Windows 10+ 内置)。直接 `npm install -g imcodes` 即可,不需要额外软件。WSL 也可用。 +- Node.js >= 20 +- 终端复用器:[tmux](https://github.com/tmux/tmux)(Linux/macOS)。Windows 使用 ConPTY(自动检测,系统内置)。 +- 至少安装一个 AI coding agent:[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) 或 [Qwen](https://github.com/QwenLM/qwen-agent) + +## 免责声明 + +IM.codes 是一个独立开源项目,与 Anthropic、OpenAI、Google、Alibaba、OpenClaw 以及本文提到的其他公司不存在附属、背书或赞助关系。所有产品名、商标和注册商标均归其各自所有者所有。 + +## 许可证 + +[MIT](../LICENSE) + +© 2026 [IM.codes](https://im.codes) diff --git a/README.i18n/README.zh-TW.md b/README.i18n/README.zh-TW.md new file mode 100644 index 000000000..f96330bd0 --- /dev/null +++ b/README.i18n/README.zh-TW.md @@ -0,0 +1,347 @@ +# [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) + + +**Agent 的即時通訊層。** + +IM.codes 是一个面向 AI 编码代理的專用即時通訊器。你可以在手機或網頁上持续檢視长时间运行的 agent 会话,直接访问终端、瀏覽文件、檢視 Git 變更、預覽本地 localhost、接收通知,并进行多 agent 协作。支持 [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)、[Qwen](https://github.com/QwenLM/qwen-agent) 等,也支持 transport 型 agent 的原生流式输出。 + +> **說明:** 本文件是中文翻译版。**英文 README(`../README.md`)是規範版本。** 若内容存在差异,以英文版为准。 + +Claude Code 和 Codex 現在都支援兩種接入方式:CLI 和 SDK。 + +## 截圖 + +### 桌面端 + +

+ + + + +

+ +### iPad / 平板 + +

+ + +

+ +### 手機 + +

+ + + + + + + + + +

+ +### Apple Watch + +

+ + + +

+ + +手表支持会话快速檢視、未读计数、推送通知,以及直接在手腕上快速回复。 + +## 下载 + +Download on the App Store + +支持 iPhone、iPad 和 Apple Watch。也可以通过 [Web App](https://app.im.codes) 使用,或通过 `npm install -g imcodes` 安裝 daemon CLI。 + +## 為什麼做這個 + +当你离开电脑时,大多数 coding-agent 工作流都会断掉。agent 仍然在终端里运行,但继续工作通常意味着 SSH、tmux attach、远程桌面,或者只能等你回到电脑前。 + +[IM.codes](https://im.codes) 让这些会话在手機或網頁上也始终可达:打开终端、检查文件和 Git 變更、在其他设备上預覽 localhost、在任务完成时收到通知,并继续调度多个 agent。 + +它不是另一个 AI IDE,也不是普通的遠端終端。它是围绕终端型 coding agent 的消息与控制层。 + +这是一个个人项目。我自己几乎没写代码——它基本由 [Claude Code](https://github.com/anthropics/claude-code) 构建完成,[Codex](https://github.com/openai/codex) 和 [Gemini CLI](https://github.com/google-gemini/gemini-cli) 也提供了大量贡献。 + +## 功能 + +### 遠端終端 + +可以从任意瀏覽器完整访问 agent 会话终端——无需 SSH、VPN 或端口转发。支持原始终端模式(原生 CLI 体验)与结构化聊天视图(解析工具调用、thinking block 和流式输出)之间切换。实时 PTY 流以 12fps 更新,没有消息条数限制。 + +### 文件瀏覽与 Git 變更 + +用树形结构瀏覽项目文件。可以从任意设备上传文件、图片和照片,也可以直接从服务器下载文件。Changes 标签页显示 git status,并给出每个文件彩色的 `+新增` / `-删除` 行数。点击文件可打开悬浮預覽窗口,支持语法高亮、diff 视图和每 5 秒自动刷新。文件瀏覽器还可以固定到侧边栏,并自动跟随当前活动标签的项目目录。 + +### 本地 Web 預覽 + +可以在手機、平板或远端瀏覽器上預覽你本机的开发服务器,而无需部署。daemon 会通过安全的 WebSocket 隧道把 `localhost` 流量代理到服务器。HTML 重写和运行时补丁会处理 URL 映射,使链接、fetch 和 WebSocket 都能正常工作。支持通过 WebSocket 隧道实现 HMR / 热更新。不需要公开 URL,也不依赖第三方隧道——流量只在你自己的 IM.codes 服务器中转。 + +### 行動端、手錶與通知 + +完整支持移动端,包含生物识别认证和推送通知。Shell 会话在手機上也支持交互式键盘输入(类似 SSH)。子会话預覽卡始终显示最新消息。Toast 通知可直接跳转到对应会话。Apple Watch 支持会话快速檢視、未读计数和快速回复。 + +### 多 Agent 討論與審計 + +单模型输出不应被盲目信任。你可以快速发起多轮讨论,让多个 agent——甚至跨 provider——围绕同一主题进行 review、audit 或 brainstorming。每个 agent 会读取前面的内容,再追加自己的分析。支持 `discuss`、`audit`、`review`、`brainstorm` 模式。侧边栏中的环形进度条会显示 round / hop 完成情况。支持 Claude Code、Codex、Gemini CLI,也兼容带 sandbox 的 agent。 + +### 串流 Transport Agents + +对 [OpenClaw](https://openclaw.com) 和 [Qwen](https://github.com/QwenLM/qwen-agent) 这类 transport 型 agent,提供原生流式输出支持。这些 agent 通过网络协议(WebSocket 或本地 SDK)连接,而不是通过终端抓取,从而能提供实时 delta 更新、工具调用跟踪和会话恢复。 + +> **Qwen 說明:** Qwen 当前提供免费层(每天 1000 次请求),这是阿里云的政策,不是 IM.codes 提供的承诺——条款、额度和可用性都可能随时变化。请檢視 [Qwen 文档](https://qwen.readthedocs.io/) 获取最新信息。 + +> **OpenClaw 說明:** `imcodes connect openclaw` 目前只在 macOS 上验证过。 + +### Agent 到 Agent 通信 + +agent 可以通过 `imcodes send` 直接互相发送消息。一个会话中的 agent 可以请求另一个兄弟会话去 review 代码、跑测试或协同处理任务——无需用户手动中转。支持按 label、session 名或 agent 类型解析目标。`--reply` 参数会要求对方自动把结果发回。内置了防滥用的保护:深度限制、速率限制和广播上限。 + +```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" +``` + +除了 agent-to-agent 聊天,你还可以使用 `script` 会话构建自定义自动化。一个运行在 script 会话中的 Python 脚本可以调用 `imcodes send`,根据任意外部事件触发 agent: + +```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 +``` + +適用場景包括:日志监控自动修复、Webhook 触发代码评审、CI 失败自动诊断、定时数据管道检查,以及需要把结果写入指定文件供人工审批的自定义工作流。 + +### @ 选择器——智慧 Agent 與檔案選擇 + +输入 `@` 搜索项目文件,输入 `@@` 选择 agent 用于 P2P 分发。`@@all(config)` 会按照当前会话保存的 P2P 设置(模式、轮数、参与者)发送给所有已配置 agent。通过 `@@all+` 可以自定义轮数。前端只负责选择,具体展开由 daemon 通过结构化 WS 路由完成。 + +### 多伺服器、多會話管理 + +你可以把多台开发机接到同一个面板里。每台机器运行一个轻量 daemon,通过 tmux 管理本地 agent 会话。你可以在一个界面里檢視所有 server 和 session,并即时启动、停止、重启或切换。Sub-session 允许你在运行中的主会话内部再启动更多 agent 来并行处理任务。支持可拖拽标签、固定和右键菜单。 + +### Discord 风格侧边栏 + +支持 server 图标栏快速切换服务器。层级式会话树支持折叠 sub-session、未读消息徽标,以及 agent 完成任务时的 idle 闪烁动画。任意悬浮窗口(文件瀏覽器、仓库页、子会话聊天)都可以固定到侧边栏。语言切换器和构建信息在底部。 + +### 可固定面板 + +任何悬浮窗口都可以拖到侧边栏并固定为常驻面板。支持文件瀏覽器、仓库页面、子会话聊天和终端视图。面板可调整大小、通过服务器同步到多设备,并在重连后自动恢复。底层是通用注册机制,新面板类型只需在一个文件里注册。 + +### 倉庫看板 + +可以直接在应用里檢視 issue、pull request、branch、commit 和 CI/CD 运行状态。后台静默刷新,不会出现下拉刷新抖动。CI 状态自动轮询(运行中每 10 秒,否则每 15 秒)。仓库页面也可以固定到侧边栏,常驻显示。 + +### 定時任務(Cron) + +支持以 cron 风格自动化重复性的 agent 工作流。你可以创建定時任務,按时间表向某个 session 发送命令,或触发多 agent 的 P2P 讨论。提供常见周期的可视化 cron 选择器、时区感知调度,以及用于调试的“立即运行”。执行历史支持展开檢視详情,点击任何记录都可以跳转到目标会话并引用结果继续跟进。还支持跨任务执行列表的 Latest / All 模式和多服务器筛选。 + +### 跨裝置同步 + +标签顺序、固定标签和固定侧边栏面板会通过服务器偏好 API 在多设备之间同步。采用写穿缓存模式:本地 localStorage 用于即时渲染,服务器端使用防抖 PUT 以保证跨设备一致性。通过带时间戳的 payload 解决冲突。设备特有状态(侧边栏宽度、面板高度、视图模式)仍然保留在本地。 + +### 国际化 + +支持 7 种语言:English、簡體中文、繁體中文、Español、Русский、日本語、한국어。侧边栏底部有语言切换器。所有用户可见字符串都通过 i18n key 管理。 + +### OTA 更新 + +daemon 可以通过 npm 自升級。也可以从 Web UI 为单台设备或全部设备触发升級。 + +## IM.codes 不是什么 + +- 不是另一个 AI IDE +- 不是聊天壳子 +- 不只是遠端終端客户端 +- 不是 Claude Code、Codex、Gemini CLI、OpenClaw 或 Qwen 的替代品 +- 它是围绕这些工具的消息与控制层 + +## 架构 + +``` +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) +``` + +Daemon 运行在你的开发机上,通过 tmux 管理进程型 agent,会通过网络协议管理 transport 型 agent(例如 OpenClaw gateway)。Agent 之间可以用 `imcodes send` 互相通信。Server 负责在你的设备与 daemon 之间中转连接。所有数据都留在你自己的基础设施里。 + +## 安裝 + +```bash +npm install -g imcodes +``` + +## 快速開始 + +> **強烈建議自行託管。** 共享实例 `app.im.codes` 只用于测试,没有可用性保证,可能会被限流,也可能成为攻击目标。这是个人项目,没有商业支持。除了评估之外,建议部署到你自己的基础设施。 + +你可以用 [app.im.codes](https://app.im.codes) 做体验,或者在正式使用时自行部署。 + +```bash +imcodes bind https://app.im.codes/bind/ +``` + +这条命令会把你的机器绑定到 IM.codes,启动 daemon,把它注册成系统服务,并让这台机器出现在網頁和移动端面板里。 + +### OpenClaw 连接 + +如果本机正在运行 OpenClaw,可以在 daemon 所在机器上把 IM.codes 连接到 OpenClaw gateway: + +```bash +imcodes connect openclaw +``` + +这条命令会做以下事情: + +- 默认连接到 `ws://127.0.0.1:18789` +- 自动复用 `~/.openclaw/openclaw.json` 中的 OpenClaw gateway token +- 把 OpenClaw 的主会话和子会话同步到 IM.codes,显示为 transport-backed session / sub-session +- 把 IM.codes 侧的连接配置保存到 `~/.imcodes/openclaw.json` +- 重启 daemon,使 OpenClaw transport 会话能自动重连 + +常见变体: + +```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 +``` + +注意: + +- 远程的非 TLS `ws://` 地址需要加 `--insecure` +- 可以通过 `imcodes disconnect openclaw` 删除保存的配置并断开连接 +- 这条流程目前只在 macOS 上测试过 + +## 自行託管 + +### 一鍵部署 + +在同一台机器上部署 server + daemon。需要 Docker,以及一个 DNS 已指向服务器的域名。 + +```bash +npm install -g imcodes +mkdir imcodes && cd imcodes +imcodes setup --domain imc.example.com +``` + +这条命令会自动生成全部配置,启动 PostgreSQL + server + Caddy(自动 HTTPS),创建管理员账户,并绑定本机 daemon。最后会打印出凭据。 + +如果要连接更多机器: + +```bash +npm install -g imcodes +imcodes bind https://imc.example.com/bind/ +``` + +### 手動部署 + +如果你希望手动配置: + +```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 +``` + +然后访问 `https://your-domain`,使用 `admin` 和打印出来的密码登录。之后使用 `imcodes bind` 绑定你的开发机。 + +## Windows(实验性) + +Windows 通过 [ConPTY](https://devblogs.microsoft.com/commandline/windows-command-line-introducing-the-windows-pseudo-console-conpty/) 原生支持(Windows 10+ 内置),不需要 WSL。 + +### 安裝与绑定(Windows) + +```cmd +npm install -g imcodes +imcodes bind https://app.im.codes/bind/ +``` + +### 升級(Windows) + +```cmd +imcodes upgrade +``` + +你也可以从網頁面板远程触发升級(会向 daemon 发送 upgrade 命令)。 + +### 故障排查(Windows) + +如果 daemon 在自动升級后停止运行,可以重建启动链: + +```cmd +imcodes repair-watchdog +``` + +这条命令会使用当前的 Node.js 和 imcodes 路径重写 watchdog 脚本和计划任务。适用于 Node.js 版本切换(nvm、fnm)之后,或者 daemon 升級后无法重启的情况。 + +如果升級后 `imcodes` 提示 “not recognized as internal or external command”,通常是 npm 全局目录没有加入 PATH。可以这样修复: + +```cmd +npm prefix -g +``` + +复制输出路径并把它加入 PATH: + +```cmd +setx PATH ";%PATH%" +``` + +然后打开一个**新的**终端窗口。 + +检查 daemon watchdog 日志: + +``` +%USERPROFILE%\.imcodes\watchdog.log +``` + +## 需求 + +- macOS 或 Linux(都已验证) +- **Windows(实验性)**:通过 ConPTY 原生支持(Windows 10+ 内置)。直接 `npm install -g imcodes` 即可,不需要额外软件。WSL 也可用。 +- Node.js >= 20 +- 终端复用器:[tmux](https://github.com/tmux/tmux)(Linux/macOS)。Windows 使用 ConPTY(自动检测,系统内置)。 +- 至少安裝一个 AI coding agent:[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) 或 [Qwen](https://github.com/QwenLM/qwen-agent) + +## 免责声明 + +IM.codes 是一个独立开源项目,与 Anthropic、OpenAI、Google、Alibaba、OpenClaw 以及本文提到的其他公司不存在附属、背书或赞助关系。所有产品名、商标和注册商标均归其各自所有者所有。 + +## 授權條款 + +[MIT](../LICENSE) + +© 2026 [IM.codes](https://im.codes) diff --git a/README.md b/README.md index 5bc929d52..bd30da01a 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,10 @@ # [IM.codes](https://im.codes) +[English](README.md) | [简体中文](README.i18n/README.zh-CN.md) | [繁體中文](README.i18n/README.zh-TW.md) | [Español](README.i18n/README.es.md) | [Русский](README.i18n/README.ru.md) | [日本語](README.i18n/README.ja.md) | [한국어](README.i18n/README.ko.md) + **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](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), [Qwen](https://github.com/QwenLM/qwen-agent), and more — including native streaming output for transport-backed 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](https://github.com/anthropics/claude-code) and [Codex](https://github.com/openai/codex) via both CLI and SDK integrations, plus [Gemini CLI](https://github.com/google-gemini/gemini-cli), [OpenClaw](https://openclaw.com), [Qwen](https://github.com/QwenLM/qwen-agent), 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. @@ -38,11 +40,21 @@ A specialized instant messenger for AI agents. Keep long-running coding-agent se

+### Apple Watch + +

+ + + +

+ +Watch support covers quick session monitoring, unread counts, push notifications, and quick replies directly from the wrist. + ## Download Download on the App Store -Also available as a [web app](https://app.im.codes) and via `npm install -g imcodes` (daemon CLI). +Supports iPhone, iPad, and Apple Watch. Also available as a [web app](https://app.im.codes) and via `npm install -g imcodes` (daemon CLI). ## Why @@ -68,9 +80,9 @@ Browse project files with a tree view. Upload files, images, and photos from any 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 & Notifications +### 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. +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 & Audit @@ -78,10 +90,12 @@ Single-model output shouldn't be trusted blindly. Spawn quick discussion rounds ### Streaming Transport Agents -Native streaming output support for transport-backed agents like [OpenClaw](https://openclaw.com) and [Qwen](https://github.com/QwenLM/qwen-agent). These agents connect via network protocols (WebSocket or local SDK) instead of terminal scraping, delivering structured event streams with real-time delta updates, tool call tracking, and session restore. +Native streaming output support for transport-backed agents like [Claude Code SDK](https://github.com/anthropics/claude-agent-sdk-typescript), [Codex SDK](https://github.com/openai/codex/tree/main/sdk/typescript), [OpenClaw](https://openclaw.com), and [Qwen](https://github.com/QwenLM/qwen-agent). 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](https://qwen.readthedocs.io/) for current details. +> **Note on OpenClaw:** `imcodes connect openclaw` has 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). @@ -171,12 +185,12 @@ You (browser / mobile) Server (self-hosted) ↓ WebSocket Daemon (your machine) - ↓ tmux / WezTerm / transport + ↓ tmux / transport AI Agents (Claude Code / Codex / Gemini CLI / OpenClaw) ↔ imcodes send (agent-to-agent) ``` -The daemon runs on your dev machine and manages agent sessions through tmux or WezTerm (process-backed) or network protocols (transport-backed, e.g. OpenClaw gateway). Agents can communicate with each other via `imcodes send`. The server relays connections between your devices and the daemon. Everything stays on your infrastructure. +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 @@ -196,6 +210,36 @@ imcodes bind https://app.im.codes/bind/ 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: + +```bash +imcodes connect openclaw +``` + +What this does: + +- connects to `ws://127.0.0.1:18789` by 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: + +```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 +``` + +Notes: + +- remote non-TLS `ws://` URLs require `--insecure` +- use `imcodes disconnect openclaw` to remove the saved config and drop the connection +- this flow has only been tested on macOS + ## Self-Host ### One-Command Setup @@ -284,7 +328,7 @@ Check the daemon watchdog log for errors: - **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](https://github.com/tmux/tmux) (Linux/macOS). Windows uses ConPTY (auto-detected, built-in). -- At least one AI coding agent: [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), or [Qwen](https://github.com/QwenLM/qwen-agent) +- At least one AI coding agent: [Claude Code](https://github.com/anthropics/claude-code) (CLI or SDK), [Codex](https://github.com/openai/codex) (CLI or SDK), [Gemini CLI](https://github.com/google-gemini/gemini-cli), [OpenClaw](https://openclaw.com), or [Qwen](https://github.com/QwenLM/qwen-agent) ## Disclaimer diff --git a/landing/imcodes-watch0.png b/landing/imcodes-watch0.png new file mode 100644 index 000000000..c8ae8eb70 Binary files /dev/null and b/landing/imcodes-watch0.png differ diff --git a/landing/imcodes-watch1.png b/landing/imcodes-watch1.png new file mode 100644 index 000000000..17418906b Binary files /dev/null and b/landing/imcodes-watch1.png differ diff --git a/landing/imcodes-watch2.png b/landing/imcodes-watch2.png new file mode 100644 index 000000000..debefae7d Binary files /dev/null and b/landing/imcodes-watch2.png differ diff --git a/landing/index.html b/landing/index.html index dcf597729..19877d229 100644 --- a/landing/index.html +++ b/landing/index.html @@ -69,6 +69,10 @@ .screenshots .row.desktop img { width: 100%; } .screenshots .row.mobile a { width: 18%; } .screenshots .row.mobile img { width: 100%; } +.screenshots .row.watch a { width: 31%; } +.screenshots .row.watch img { width: 100%; } +.download-note { color: var(--dim); font-size: 12px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; } +.download-note .watch-pill { display: inline-flex; align-items: center; gap: 6px; padding: 3px 8px; border: 1px solid var(--border); border-radius: 999px; background: var(--code-bg); color: var(--fg); } .arch { background: var(--code-bg); @@ -265,6 +269,13 @@

screenshots

Mobile 4 Mobile 5 +

Apple Watch

+
+ Watch session list + Watch quick reply + Watch session details +
+
Watch support covers quick session monitoring, unread counts, OTA update visibility, push notifications, and quick replies from the wrist.
@@ -292,9 +303,9 @@

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
+
mobile, watch & notifications
biometric auth, push notifications, shell keyboard input, watch quick replies
multi-agent discussions
discuss, audit, review across providers with ring progress
-
streaming transport agents
native streaming for OpenClaw & Qwen — real-time delta updates, tool tracking, session restore. Qwen offers a free tier (1,000 req/day) from Alibaba Cloud — subject to change.
+
CLI + SDK agents
Claude Code and Codex work through both CLI and SDK integrations. OpenClaw and Qwen 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
@@ -318,17 +329,21 @@

architecture

Server (self-hosted, relays connections) WebSocket Daemon (your machine, manages sessions) - tmux -Agents (Claude Code / Codex / Gemini CLI / OpenClaw / Qwen 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.

+ tmux / transport +Agents (Claude Code / Codex via CLI + SDK · Gemini CLI · OpenClaw · Qwen) +

The daemon runs on your dev machine and manages process-backed sessions through tmux plus transport-backed sessions through SDKs and network protocols. 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
+
+ iPhone · iPad · Apple Watch + Watch app includes session list, unread counts, and quick replies. +
@@ -348,6 +363,22 @@

quick start

+
+

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.

@@ -366,6 +397,7 @@

self-host

supported agents

+

Claude Code and Codex support both CLI and SDK integrations.

Claude Code Codex @@ -382,7 +414,7 @@

requirements

  • macOS, Linux, or Windows (native experimental; WSL fully supported)
  • Node.js ≥ 20
  • -
  • tmux (Linux/macOS/WSL). Windows native uses ConPTY (built-in).
  • +
  • tmux (Linux/macOS/WSL). Windows native uses ConPTY (built-in). Claude Code and Codex also support SDK-backed sessions.
@@ -420,14 +452,28 @@

about