English | 简体中文 | 日本語 | 한국어 | Русский
Мульти-движковый AI-клиент для кодинга с полноценным удалённым доступом к агентам.
Мульти-движковый AI-клиент для кодинга — полная визуализация цепочки рассуждений агента и безопасный удалённый доступ без настройки. Это не очередная обёртка над чатом.
Это не обёртка над чатом, которая подставляет разные API-ключи. CodeMux — это шлюз на уровне протоколов: каждый движок работает со своим рантаймом, сессиями, выполнением инструментов и полным набором возможностей.
Переключайтесь между движками из единого интерфейса. Каждый сохраняет всю свою мощь — редактирование файлов, доступ к терминалу, историю сессий, контекст проекта — CodeMux лишь предоставляет им общую входную точку.
| Движок | Протокол | Статус |
|---|---|---|
| OpenCode | HTTP REST + SSE | ✅ Стабильный |
| GitHub Copilot CLI | JSON-RPC/stdio | ✅ Стабильный |
| Claude Code | SDK (stdio) | ✅ Стабильный |
| Codex | JSON-RPC/stdio (app-server) |
💡 CodeMux — это также первый и на данный момент единственный GUI с открытым кодом для GitHub Copilot CLI, подключающийся на уровне протокола (JSON-RPC через stdio) для предоставления полноценного агентного опыта Copilot в визуальном интерфейсе.
⚠️ Поддержка Codex сейчас experimental/unstable. По мере развития upstream app-server protocol детали интеграции и поведение могут меняться.
Каждое действие агента отображается как раскрываемый шаг — diff файлов, команды терминала, результаты поиска, вызовы инструментов — так что вы видите не только финальный ответ, но и что именно делает агент и почему.
Это не ограничивается десктопным приложением. Полноценная визуализация цепочки рассуждений сохраняется при любом способе доступа — через браузер по LAN или публичному интернету, или через IM-бота на телефоне.
Такие инструменты, как OpenClaw, популяризировали идею доступа к ИИ из мессенджеров — отправьте сообщение в WhatsApp или Telegram и получите текстовый ответ. Но для AI-разработки текстового ответа недостаточно. Нужно видеть, что агент думает, какие файлы редактирует, какие команды выполняет — в реальном времени.
CodeMux закрывает этот пробел. Независимо от того, заходите ли вы через браузер или IM-платформу, вы получаете полноценный агентный опыт со структурированным стримингом:
| Возможность | CodeMux | Текстовые ассистенты |
|---|---|---|
| Потоковый вывод | ✅ Стриминг в реальном времени на уровне токенов | |
| Шаги рассуждения | ✅ Каждый вызов инструмента — раскрываемый шаг | ❌ Только финальный ответ |
| Diff файлов | ✅ Встроенный просмотрщик diff с подсветкой синтаксиса | ❌ Простой текст или ничего |
| Команды терминала | ✅ Команда + вывод рендерятся в реальном времени | ❌ В лучшем случае текстовая сводка |
| Мульти-движки | ✅ Переключение между OpenCode / Copilot / Claude Code / Codex | ❌ Один модель / провайдер |
| Контекст кодинга | ✅ Сессии с привязкой к проекту и полным доступом к инструментам | |
| Ввод изображений | ✅ Вставка/перетаскивание изображений для анализа всеми движками | ❌ Только текстовый ввод |
Текстовые инструменты для кодинга ограничены текстовым вводом. CodeMux преодолевает этот барьер — прикрепляйте изображения к промптам, и пусть ИИ видит то, что видите вы.
Вставьте скриншот, перетащите макет дизайна или загрузите изображение ошибки — все четыре движка анализируют изображения нативно. Каждый адаптер движка преобразует изображения в свой формат за кулисами, а вы получаете единый опыт:
- Способы загрузки: Выбор файла, перетаскивание, вставка из буфера обмена
- Поддерживаемые форматы: JPEG, PNG, GIF, WebP (до 4 изображений на сообщение, по 3 МБ)
- Встроенный предпросмотр: Миниатюры перед отправкой, изображения в истории чата
Это работает при любом способе доступа — десктоп, удалённый браузер, IM-боты — где бы ни работал CodeMux, ввод изображений доступен.
CodeMux выходит за рамки чата — предоставляет интегрированные инструменты для управления рабочим процессом разработки прямо из интерфейса.
- Запланированные задачи: Автоматизируйте регулярные задачи агентов — ежедневные обзоры кода, генерация отчётов по интервалу, еженедельная пакетная обработка задач. Поддерживаются ручной запуск, интервал (5 мин – 12 часов), ежедневное и еженедельное расписание с автоматическим выполнением пропущенных запусков при перезапуске приложения.
-
Параллельные сессии Git Worktree: Работайте над несколькими ветками одновременно без
git stash. Создавайте изолированные рабочие деревья прямо из боковой панели, каждое со своим каталогом, веткой и AI-сессиями. Слияние обратно с выбором стратегии: merge, squash или rebase — не покидая интерфейса. -
Проводник файлов и мониторинг Git: Просматривайте файлы проекта в сворачиваемом дереве, предпросмотр кода с подсветкой синтаксиса и отслеживание изменений Git в реальном времени. Вкладка «Изменения» показывает модифицированные файлы с построчными счётчиками добавлений/удалений, а встроенный просмотрщик diff позволяет проверять каждое изменение, не покидая CodeMux.
-
Слеш-команды и навыки движков: Введите
/в поле ввода для вызова нативных команд и навыков движков с автодополнением —/cancel,/status,/mode,/modelи другие. Каждый движок предоставляет собственные команды; Copilot — навыки проекта и персональные, Claude Code — пользовательские навыки, OpenCode — команды SDK, а Codex — навыки app-server — всё через единый интерфейс автодополнения. -
Встроенный терминал: Прямо под чатом располагается терминал в стиле VS Code — переключается по
Ctrl+`. Открывайте несколько вкладок с настоящими шеллами (автоопределение PowerShell / pwsh / cmd / Git Bash / WSL в Windows;$SHELLи/etc/shellsв Unix; плюс пользовательские профили), с оверлеем поиска (Ctrl+F), кликабельными путями к файлам (открываются во встроенной файловой панели CodeMux) и выбираемым GPU-рендерингом (WebGL → Canvas → DOM). Поскольку терминал передаётся через тот же Gateway WebSocket, он работает и удалённо — по локальной сети или через Cloudflare Tunnel — а не только на локальном рабочем столе.
- Переключение режимов агента: Переключайтесь между режимами Build / Plan / Autopilot для каждого движка — каждый со своим поведением и стилем промптов
- Панель задач в реальном времени: Списки задач, сгенерированные агентом, отображаются над областью ввода с отслеживанием прогресса в реальном времени
- Одобрение разрешений: Одобряйте или отклоняйте чувствительные операции (терминал, редактирование файлов) прямо в интерфейсе — с опцией «Всегда разрешать» для доверенных шаблонов
- Интерактивные вопросы: Движки могут задавать вопросы с единичным/множественным выбором, описаниями и пользовательским вводом
- Выбор модели для каждого движка: Выбирайте разные модели для каждого движка независимо; Claude Code и Codex поддерживают ввод произвольного ID модели
- Отслеживание использования токенов: Мониторинг потребления входных, выходных и кеш-токенов с разбивкой затрат по движкам
Получите доступ к своим агентам кодинга с любого устройства — телефона, планшета или другого компьютера — без единого изменения конфигурации.
- LAN: Автоматически определённый IP + QR-код, готово за секунды
- Публичный интернет: Одним кликом Cloudflare Tunnel — без проброса портов, VPN и изменений файрвола. Поддерживаются как быстрые туннели (случайный временный URL, без настройки), так и именованные туннели (постоянный пользовательский домен через учётные данные
~/.cloudflared/) - Встроенная безопасность: Авторизация устройств, JWT-токены, HTTPS через Cloudflare; URL быстрых туннелей меняются при пересоздании самого туннеля, а именованные туннели сохраняют ваш домен
Используйте своих AI-агентов для кодинга прямо из любимых мессенджеров с потоковым выводом в реальном времени и структурированным rich-контентом — а не просто текстовыми ответами.
| Платформа | Получение событий | Стриминг | Создание групп | Rich-контент |
|---|---|---|---|---|
| Feishu (Lark) | WebSocket (длинное соединение) | ✅ Редактирование на месте | ✅ Автосоздание группы | Интерактивные карточки |
| DingTalk | Stream-режим (WS) | ✅ AI-карточка | ✅ Сценарные группы | ActionCard / Markdown |
| Telegram | Webhook / Long Polling | ✅ sendMessageDraft | ❌ Только P2P | MarkdownV2 + InlineKeyboard |
| WeCom | HTTP Callback (AES XML) | ❌ Пакетный режим | ✅ Групповой чат приложения | Markdown / Шаблонная карточка |
| Microsoft Teams | Bot Framework HTTP | ✅ Редактирование на месте | ❌ Только P2P | Adaptive Cards v1.5 |
- P2P точка входа: Личный чат с ботом для выбора проектов и сессий
- Slash-команды:
/cancel,/status,/mode,/model,/history,/help - Потоковые ответы: Вывод ИИ в реальном времени с платформенно-оптимальной стратегией обновления
- Сводка по инструментам: Сообщения о завершении включают счётчики действий (например,
Shell(2), Edit(1)) - Автоодобрение разрешений: Запросы разрешений движка одобряются автоматически
- Одна группа = одна сессия (Feishu, DingTalk, WeCom): Каждый групповой чат привязан к одной сессии CodeMux. В P2P выбираете проект → группа создаётся автоматически.
- P2P напрямую (Telegram, Teams): Общайтесь напрямую в личном чате с временными сессиями (TTL 2 часа). В групповых чатах — через @упоминание бота.
Для каждой платформы нужно создать бота/приложение на её портале разработчиков и настроить учётные данные в Настройках CodeMux → Каналы.
📖 Подробное руководство по настройке → — Пошаговые инструкции для каждой платформы, включая разрешения, настройку webhook и устранение неполадок.
| Платформа | Необходимые учётные данные | Портал разработчиков |
|---|---|---|
| Feishu | App ID, App Secret | open.feishu.cn |
| DingTalk | App Key, App Secret, Robot Code | open.dingtalk.com |
| Telegram | Bot Token (от @BotFather) | core.telegram.org |
| WeCom | Corp ID, Corp Secret, Agent ID, Callback Token, Encoding AES Key | developer.work.weixin.qq.com |
| Teams | Microsoft App ID, App Password, Tenant ID | Azure Portal + Teams Dev Portal |
macOS (рекомендуется — через Homebrew):
brew tap realDuang/codemux
brew install --cask codemuxРучная загрузка:
- macOS (Apple Silicon):
CodeMux-x.x.x-arm64.dmg - macOS (Intel):
CodeMux-x.x.x-x64.dmg - Windows:
CodeMux-x.x.x-setup.exe
Десктопное приложение включает бинарник Cloudflare Tunnel и сервер шлюза. OpenCode, Copilot CLI, Claude Code и Codex необходимо устанавливать отдельно (см. ниже).
⚠️ Пользователи macOS (ручная загрузка): Приложение не имеет подписи кода. Если macOS показывает «Приложение повреждено», выполните:xattr -cr /Applications/CodeMux.app
# Клонируйте репозиторий
git clone https://github.com/realDuang/codemux.git
cd codemux
# Установите зависимости
bun install
# Скачайте бинарник cloudflared (для удалённого доступа)
bun run update:cloudflared
# Запустите сервер разработки (Electron + Vite HMR)
bun run devТребования к движкам: Все движки — это внешние зависимости, которые нужно установить и добавить в PATH:
- OpenCode: Установите с opencode.ai —
curl -fsSL https://opencode.ai/install.sh | bash(Unix) илиirm https://opencode.ai/install.ps1 | iex(Windows)- Copilot CLI: Установите GitHub Copilot CLI отдельно
- Claude Code: Установите через
npm install -g @anthropic-ai/claude-codeи задайтеANTHROPIC_API_KEY- Codex: Установите
codexCLI отдельно и убедитесь, чтоcodexдоступен в PATH. CodeMux переиспользует уже настроенный вход OpenAI или API-ключ Codex. Сейчас это experimental/unstable интеграция.CodeMux автоматически обнаруживает установленные движки при запуске.
| Способ | Настройка | Подходит для |
|---|---|---|
| Браузер в LAN | Откройте http://<ваш-ip>:8233, введите 6-значный код или отсканируйте QR |
Быстрый доступ с другого устройства в той же сети |
| Публичный интернет | Включите «Публичный доступ» → поделитесь URL *.trycloudflare.com |
Доступ откуда угодно, без проброса портов |
| IM-бот | Настройте учётные данные бота в Настройках → Каналы | Взаимодействие из Feishu, DingTalk, Telegram, WeCom или Teams |
| Уровень | Защита |
|---|---|
| Авторизация устройств | Новые устройства требуют одобрения с 6-значным кодом |
| JWT-токены | Токены для каждого устройства хранятся безопасно |
| HTTPS | Публичный туннель автоматически использует HTTPS через Cloudflare |
| Временные URL | URL туннеля меняются при каждом перезапуске |
Управляйте подключёнными устройствами на странице Устройства — просматривайте время последнего доступа, переименовывайте для идентификации или отзывайте доступ для каждого устройства.
CodeMux предназначен для личного использования. Отзывайте доступ неиспользуемых устройств и отключайте публичный туннель, когда он не нужен.
┌─────────────────────────────────────────────────────────────────┐
│ Уровень доступа │
│ │
│ ┌──────────┐ ┌───────────────┐ ┌──────────────────────────┐ │
│ │ Electron │ │ Браузер (LAN/ │ │ IM-боты (Feishu/DingTalk │ │
│ │ приложе-│ │ Cloudflare) │ │ /Telegram/WeCom/Teams) │ │
│ │ ние │ │ │ │ │ │
│ └────┬─────┘ └──────┬────────┘ └────────────┬─────────────┘ │
│ │ │ │ │
│ └───────────────┼────────────────────────┘ │
│ │ │
│ WebSocket (JSON-RPC) │
│ │ │
│ ┌────────┴────────┐ │
│ │ Сервер шлюза │ │
│ │ (Engine Manager)│ │
│ └──┬──────┬──────┬─────┬┘ │
│ │ │ │ │ │
│ ┌─────┘ ┌──┘ ┌──┘ └──┐ │
│ │ │ │ │ │
│ ┌─────┴─────┐ ┌─┴──────┐ ┌┴───────┐ ┌─────────┐ │
│ │ OpenCode │ │Copilot │ │ Claude │ │ Codex │ │
│ │ Adapter │ │Adapter │ │Adapter │ │ Adapter │ │
│ │(HTTP+SSE) │ │(stdio) │ │ (SDK) │ │ (stdio) │ │
│ └───────────┘ └────────┘ └────────┘ └─────────┘ │
│ │
│ Унифицированная система типов: UnifiedPart, ToolPart, AgentMode│
└─────────────────────────────────────────────────────────────────┘Все способы доступа — десктопное приложение, удалённый браузер и IM-боты — подключаются через один и тот же WebSocket-шлюз. Движки используют нормализованную систему типов, поэтому вызовы инструментов, diff файлов и потоковые сообщения отображаются идентично независимо от используемого движка или способа доступа.
bun run dev # Electron + Vite HMR
bun run build # Продакшен-сборка
bun run dist:mac:arm64 # macOS Apple Silicon
bun run dist:mac:x64 # macOS Intel
bun run dist:win # Windows NSIS-установщик
bun run typecheck # Проверка типов
bun run update:cloudflared # Обновить бинарник Cloudflare Tunnelcodemux/
├── electron/
│ ├── main/
│ │ ├── engines/ # Адаптеры движков (OpenCode, Copilot, Claude Code, Codex)
│ │ ├── gateway/ # WebSocket-сервер + маршрутизация движков
│ │ ├── channels/ # Каналы IM-ботов (Feishu, DingTalk, Telegram, WeCom, Teams)
│ │ │ └── streaming/ # Кросс-канальная стриминговая инфраструктура
│ │ ├── services/ # Авторизация, хранилище устройств, туннель, сессии, файловый сервис, трей и др.
│ │ └── utils/ # Общие утилиты (генерация ID и др.)
│ └── preload/
├── src/ # SolidJS рендерер
│ ├── pages/ # Chat, Settings, Devices, Entry
│ ├── components/ # UI-компоненты + рендереры контента
│ ├── stores/ # Реактивное состояние (session, message, config)
│ ├── lib/ # Gateway-клиент, авторизация, i18n, тема
│ ├── locales/ # Файлы переводов i18n (en, zh, ru)
│ └── types/ # Унифицированная система типов + маппинг инструментов
├── shared/ # Общие модули бэкенда (авторизация, JWT, базовое хранилище устройств)
├── tests/ # Юнит-тесты, E2E-тесты (Playwright), бенчмарки
├── docs/ # Руководства по настройке каналов + проектная документация
├── website/ # Веб-сайт проекта (SolidJS + Vite)
├── scripts/ # Настройка, обновление бинарников, CI-хелперы
├── homebrew/ # Формула Homebrew для дистрибуции на macOS
├── electron.vite.config.ts
└── electron-builder.ymlМы приветствуем вклад! Подробные рекомендации см. в CONTRIBUTING.md.
Стиль кода: TypeScript strict mode, реактивные паттерны SolidJS, Tailwind для стилизации
Соглашение о коммитах: feat: | fix: | docs: | refactor: | chore:
Добавление нового движка: Реализуйте EngineAdapter (см. electron/main/engines/engine-adapter.ts), добавьте маппинг имён инструментов в src/types/tool-mapping.ts и зарегистрируйте в electron/main/index.ts.



