Возможности
Кольца уведомлений
Когда агент кодирования ждёт вашего внимания, вокруг панели появляется синее кольцо, а вкладка в боковой панели подсвечивается.
Панель уведомлений
Все ожидающие уведомления собраны в одном месте; одним нажатием можно перейти к самому свежему непрочитанному.
Встроенный браузер
Разделите окно терминала и браузера: браузер имеет программируемый API, перенесённый из agent-browser.
Вертикальные и горизонтальные вкладки
Боковая панель показывает ветку git, статус и номер связанного PR, рабочую директорию, прослушиваемые порты и текст последнего уведомления. Поддерживается разделение как горизонтальное, так и вертикальное.
SSH
cmux ssh user@remote создаёт рабочее пространство для удалённой машины. Передайте --command 'omp "investigate auth"', чтобы выполнить начальную команду в первом удалённом терминале. Браузерные панели маршрутизируются через удалённую сеть, так что localhost работает прозрачно. Перетащите изображение в удалённую сессию, чтобы загрузить его по scp.
Claude Code Teams
cmux claude-teams запускает режим командной работы Claude Code одной командой. Участники команды открываются как нативные разделения с метаданными в боковой панели и поддержкой уведомлений. tmux не требуется.
-
Импорт браузера — импортируйте куки, историю и сессии из Chrome, Firefox, Arc и более чем 20 других браузеров, чтобы браузерные панели запускались уже авторизованными.
-
Пользовательские команды — определяйте специфичные для проекта действия в
cmux.jsonи запускайте их из палитры команд. -
Программируемость — CLI и socket API позволяют создавать рабочие пространства, разделять панели, отправлять нажатия клавиш и автоматизировать браузер.
-
Нативное приложение для macOS — написано на Swift и AppKit, не на Electron. Быстрый запуск, низкое потребление памяти.
-
Совместимость с Ghostty — читает ваш существующий
~/.config/ghostty/configдля тем, шрифтов и цветов. -
Аппаратное ускорение — рендеринг через libghostty обеспечивает плавную работу.
-
Горячие клавиши — обширный набор сочетаний для рабочих пространств, разделений, браузера и многого другого.
-
Открытый исходный код — бесплатное приложение с лицензией GPL.
Установка
DMG (рекомендуется)
Откройте .dmg и перетащите cmux в папку «Программы». Приложение обновляется автоматически через Sparkle, поэтому скачать нужно только один раз.
Homebrew
brew tap manaflow-ai/cmux
brew install --cask cmux
Для последующего обновления:
brew upgrade --cask cmux
При первом запуске macOS может попросить подтвердить открытие приложения от установленного разработчика. Нажмите Открыть, чтобы продолжить.
Зачем cmux?
Я одновременно запускаю множество сессий Claude Code и Codex. Раньше я использовал Ghostty с несколькими разделёнными панелями и опирался на нативные уведомления macOS, чтобы понять, когда агент нуждается во мне. Но текст уведомлений Claude Code всегда был одинаковым — «Claude is waiting for your input» — без какого-либо контекста, а при большом числе открытых вкладок заголовки вообще переставали читаться.
Я попробовал несколько оркестраторов кодирования, но большинство из них написаны на Electron или Tauri, и их производительность меня раздражала. К тому же я предпочитаю терминал: GUI-оркестраторы привязывают к своему рабочему процессу. Поэтому я написал cmux как нативное приложение для macOS на Swift/AppKit. Для рендеринга терминала оно использует libghostty и читает ваш существующий конфиг Ghostty для тем, шрифтов и цветов.
Главные добавленные элементы — боковая панель и система уведомлений. Боковая панель имеет вертикальные вкладки, показывающие ветку git, статус и номер связанного PR, рабочую директорию, прослушиваемые порты и последнее уведомление для каждого рабочего пространства. Система уведомлений перехватывает терминальные последовательности (OSC 9/99/777) и предоставляет CLI (cmux notify), который можно подключить к хукам агентов для Claude Code, OpenCode и других. Когда агент ждёт, вокруг его панели появляется синее кольцо, а вкладка в боковой панели подсвечивается — так сразу понятно, кто из них требует внимания среди всех разделений и вкладок. Сочетание Cmd+Shift+U переходит к самому свежему непрочитанному уведомлению.
Встроенный браузер имеет программируемый API, перенесённый из agent-browser. Агенты могут делать снимки дерева доступности, получать ссылки на элементы, кликать, заполнять формы и выполнять JavaScript. Можно открыть браузерную панель рядом с терминалом и дать Claude Code напрямую взаимодействовать с вашим dev-сервером.
Всё управляется через CLI и socket API: создавайте рабочие пространства и вкладки, разделяйте панели, отправляйте нажатия клавиш, открывайте URL в браузере.
Дзен cmux
cmux не навязывает разработчикам способ использования инструментов. Это терминал и браузер с CLI — всё остальное решаете вы сами.
cmux — это примитив, не готовое решение. Он даёт вам терминал, браузер, уведомления, рабочие пространства, разделения, вкладки и CLI для управления всем этим. cmux не заставляет вас работать с агентами кодирования по чьей-то схеме. Из примитивов вы строите то, что нужно именно вам.
Лучшие разработчики всегда создавали собственные инструменты. Никто ещё не нашёл оптимального способа работы с агентами, и команды, создающие закрытые продукты, тоже не нашли. Разработчики, работающие вплотную со своей кодовой базой, найдут его первыми.
Дайте миллиону разработчиков компонуемые примитивы — и они коллективно откроют самые эффективные рабочие процессы быстрее, чем любая продуктовая команда смогла бы спроектировать их сверху вниз.
Документация
Подробная информация о настройке cmux — в нашей документации.
Горячие клавиши
Рабочие пространства
| Сочетание | Действие |
|---|---|
⌘ N |
Новое рабочее пространство |
⌘ 1–8 |
Перейти к рабочему пространству 1–8 |
⌘ 9 |
Перейти к последнему рабочему пространству |
⌃ ⌘ ] |
Следующее рабочее пространство |
⌃ ⌘ [ |
Предыдущее рабочее пространство |
⌘ ⇧ W |
Закрыть рабочее пространство |
⌘ ⇧ R |
Переименовать рабочее пространство |
⌥ ⌘ E |
Изменить описание рабочего пространства |
⌘ B |
Показать/скрыть боковую панель |
⌥ ⌘ B |
Показать/скрыть правую боковую панель |
⌘ ⇧ E |
Переключить фокус на правую боковую панель |
Поверхности (Surfaces)
| Сочетание | Действие |
|---|---|
⌘ T |
Новая поверхность |
⌘ ⇧ ] |
Следующая поверхность |
⌘ ⇧ [ |
Предыдущая поверхность |
⌃ Tab |
Следующая поверхность |
⌃ ⇧ Tab |
Предыдущая поверхность |
⌃ 1–8 |
Перейти к поверхности 1–8 |
⌃ 9 |
Перейти к последней поверхности |
⌘ W |
Закрыть поверхность |
Разделённые панели
| Сочетание | Действие |
|---|---|
⌘ D |
Разделить вправо |
⌘ ⇧ D |
Разделить вниз |
⌥ ⌘ ← → ↑ ↓ |
Переместить фокус на панель в указанном направлении |
⌘ ⇧ H |
Подсветить активную панель |
Браузер
Горячие клавиши инструментов разработчика браузера соответствуют настройкам Safari по умолчанию и могут быть изменены в Settings → Keyboard Shortcuts. Горячие клавиши навигации по палитре команд, включая ⌃ P, также настраиваемы и могут быть отключены, чтобы нажатие передавалось активному терминалу.
| Сочетание | Действие |
|---|---|
⌘ ⇧ L |
Открыть браузер в разделении |
⌘ L |
Перейти к адресной строке |
⌘ [ |
Назад |
⌘ ] |
Вперёд |
⌘ R |
Перезагрузить страницу |
⌥ ⌘ I |
Открыть/закрыть инструменты разработчика (Safari по умолчанию) |
⌥ ⌘ C |
Показать консоль JavaScript (Safari по умолчанию) |
Уведомления
| Сочетание | Действие |
|---|---|
⌘ I |
Показать панель уведомлений |
⌘ ⇧ U |
Перейти к последнему непрочитанному |
⌥ ⌘ U |
Переключить статус прочитанности текущего элемента |
⌃ ⌘ U |
Отметить текущий элемент как старейший непрочитанный и перейти к следующему свежему непрочитанному |
Поиск
| Сочетание | Действие |
|---|---|
⌘ F |
Найти |
⌘ ⇧ F |
Найти в директории |
⌘ G / ⌥ ⌘ G |
Следующий / предыдущий результат |
⌥ ⌘ ⇧ F |
Скрыть строку поиска |
⌘ E |
Использовать выделение для поиска |
Терминал
| Сочетание | Действие |
|---|---|
⌘ K |
Очистить историю прокрутки |
⌘ C |
Копировать (с выделением) |
⌘ V |
Вставить |
⌘ + / ⌘ - |
Увеличить / уменьшить размер шрифта |
⌘ 0 |
Сбросить размер шрифта |
Окно
| Сочетание | Действие |
|---|---|
⌘ ⇧ N |
Новое окно |
⌘ ⇧ O |
Восстановить предыдущую сессию |
⌘ , |
Настройки |
⌘ ⇧ , |
Перезагрузить конфигурацию |
⌘ Q |
Выйти |
Ночные сборки (Nightly Builds)
cmux NIGHTLY — это отдельное приложение с собственным идентификатором пакета (bundle ID), поэтому оно работает параллельно со стабильной версией. Сборка выполняется автоматически из последнего коммита ветки main и обновляется через собственный канал Sparkle.
Об ошибках в ночных сборках сообщайте через GitHub Issues или в #nightly-bugs на Discord.
Восстановление сессий
При закрытии cmux текущая сессия сохраняется. При следующем запуске восстанавливается состояние, которым управляет само приложение:
-
Расположение окон, рабочих пространств и панелей
-
Рабочие директории
-
История прокрутки терминала (по мере возможности)
-
URL браузера и история навигации
cmux не сохраняет произвольное состояние живых процессов. tmux, vim, оболочки и неподдерживаемые терминальные приложения открываются заново как обычные терминалы.
Поддерживаемые сессии агентов могут возобновляться, если хуки сохранили нативный идентификатор сессии. Установите хуки после установки CLI агента, чтобы его исполняемый файл был доступен в PATH:
cmux hooks setup
cmux hooks setup codex
cmux hooks setup --agent opencode
cmux hooks setup устанавливает поддерживаемые агенты, которые удаётся обнаружить, и выводит сводку по пропущенным. Поддерживаемые интеграции возобновления включают Claude Code, Codex, Grok, OpenCode, Pi, Amp, Cursor CLI, Gemini, Rovo Dev, Copilot, CodeBuddy, Factory и Qoder. Claude Code обрабатывается обёрткой cmux Claude, если интеграция с Claude включена в настройках.
Опытные пользователи и интеграции могут привязать произвольную команду возобновления к текущей поверхности терминала. Это полезно для инструментов с собственным постоянным состоянием — например, tmux-сессий или пользовательских CLI агентов:
cmux surface resume set --kind tmux --checkpoint work --shell "tmux attach -t work"
cmux surface resume show --json
cmux surface resume clear --checkpoint work
Привязка сохраняется за поверхностью cmux. Привязки, созданные через публичный CLI или socket, хранятся для проверки и ручного восстановления, пока вы не одобрите подписанный префикс команды для автоматического запуска. Одобренные префиксы также привязываются к рабочей директории и конкретным значениям переменных окружения, если они присутствуют. Просматривать и редактировать разрешения можно в Settings > Terminal > Resume Commands. cmux автоматически запускает только те привязки возобновления, которые сам помечает как доверенные, — например, привязки tmux, обнаруженные по активному процессу, или одобренные пользователем префиксы. Чувствительные переменные окружения — токены, пароли, секреты и ключи API — удаляются перед сохранением привязки.
Чтобы восстановленные терминалы агентов оставались неактивными вместо автоматического запуска команд возобновления, отключите Settings > Terminal > Resume Agent Sessions on Reopen или задайте это в ~/.config/cmux/cmux.json:
{
"terminal": {
"autoResumeAgentSessions": false
}
}
Это отключает только автоматический запуск команд возобновления агентов. cmux по-прежнему восстанавливает сохранённый макет, рабочие директории, историю прокрутки и историю браузера.
Если нужно вручную применить последний сохранённый снимок, воспользуйтесь одним из способов:
-
File > Reopen Previous Session -
⌘ ⇧ O -
cmux restore-session
Под капотом cmux записывает версионированный снимок в ~/Library/Application Support/cmux/, а хуки агентов сохраняют привязки сессий в ~/.cmuxterm/. При восстановлении cmux сначала перестраивает макет, а затем запускает нативную команду возобновления поддерживаемого агента, если автоматическое возобновление агентских сессий включено.
Полное руководство: cmux.com/docs/session-restore.
Часто задаваемые вопросы
Какова связь cmux с Ghostty?
cmux не является форком Ghostty. Он использует libghostty как библиотеку для рендеринга терминала — так же, как приложения используют WebKit для отображения веб-страниц. Ghostty — самостоятельный терминал; cmux — это другое приложение, построенное поверх его движка рендеринга.
Какие платформы поддерживаются?
Пока только macOS. cmux — нативное приложение на Swift + AppKit.
Есть ли iOS-приложение?
Да, в бета-версии. Подключите iPhone к Mac через окно Mobile Connect и работайте с терминалами прямо с телефона, с опциональной переадресацией уведомлений терминала. Приложение распространяется через TestFlight как cmux BETA. Ранний доступ включён в cmux Founders Edition. Подробнее — в документации iOS.
С какими агентами кодирования работает cmux?
Со всеми. cmux — это терминал, поэтому любой агент, работающий в терминале, поддерживается без дополнительной настройки: Claude Code, Codex, OpenCode, Gemini CLI, Kiro, Aider, Goose, Amp, Cline, Cursor Agent и всё остальное, что можно запустить из командной строки.
Может ли cmux управлять несколькими агентами и субагентами?
Да. Когда агент порождает субагентов или участников команды, cmux превращает их в нативные панели и разделения, а не скрытые фоновые процессы. Поддерживаются командная работа Claude Code и оркестрация нескольких моделей через oh-my-opencode, так что каждый агент в процессе выполнения виден и управляем.
Можно ли использовать cmux с удалёнными машинами?
Да. Открывайте рабочие пространства по SSH и подключайтесь к удалённым tmux-сессиям — агенты могут работать на удалённом хосте, пока вы управляете ими из cmux. Подробнее — в разделе SSH и удалённые машины.
Как работают уведомления?
Когда процесс требует внимания, cmux показывает кольца уведомлений вокруг панелей, значки непрочитанных в боковой панели, всплывающее окно уведомлений и системное уведомление macOS. Они срабатывают автоматически через стандартные управляющие последовательности терминала (OSC 9/99/777), либо их можно вызвать через cmux CLI и хуки агентов. Работает любой агент, поддерживающий хуки или OSC: Claude Code, Codex, OpenCode, pi и другие.
Программируем ли cmux?
Да. Любое действие доступно через cmux CLI и Unix-сокет: создание рабочих пространств, открытие разделённых панелей, отправка ввода, чтение содержимого экрана, создание снимков экрана и управление встроенным браузером. Подробнее — в справочнике CLI и документации по автоматизации браузера.
На что способен встроенный браузер?
cmux может открыть полноценную браузерную панель рядом с терминалом, и она полностью программируема: навигация, снимок DOM, клики, ввод текста, выполнение JavaScript, чтение консоли и сетевой активности — всё через единый socket API. Агенты используют его для проверки своих изменений в вебе, не выходя из cmux. Подробнее — в разделе автоматизация браузера.
Есть ли в cmux навыки (skills)?
Да. Навыки — это многократно используемые рабочие процессы, которые можно передать любому агенту в cmux: управление CLI, автоматизация рабочих пространств, настройки, работа с браузером. Ознакомиться с открытой коллекцией можно на странице cmux-skills или в документации по навыкам.
Можно ли настроить горячие клавиши?
Привязки клавиш терминала читаются из вашего конфигурационного файла Ghostty (~/.config/ghostty/config). Специфичные для cmux сочетания (рабочие пространства, разделения, браузер, уведомления) настраиваются в настройках приложения. Полный список — горячие клавиши по умолчанию.
Можно ли настроить cmux?
Да. Рендеринг терминала использует ваш конфиг Ghostty, поэтому темы, шрифты, цвета и курсор переносятся напрямую. Собственные настройки cmux в ~/.config/cmux/cmux.json управляют боковой панелью, панелью вкладок, разделёнными панелями и поведением приложения, а каждое горячее клавишное сочетание можно изменить. Подробнее — в разделе конфигурация.
Сохраняются ли сессии?
Да. При повторном запуске cmux восстанавливает окна, рабочие пространства, панели, рабочие директории и историю прокрутки, причём состояние сохраняется даже после полной перезагрузки компьютера, а не только после закрытия приложения. Сессии агентов — Claude Code, Codex, OpenCode — также восстанавливаются. Подробнее — в разделе восстановление сессий.
Чем cmux отличается от tmux?
tmux — это мультиплексор терминала, работающий внутри любого терминала. cmux — нативное приложение для macOS с графическим интерфейсом: вертикальные вкладки, разделённые панели, встроенный браузер и socket API — всё включено, никаких конфигурационных файлов и клавиш-префиксов. При этом многие пользователи с удовольствием работают с cmux совместно с SSH и tmux, а cmux умеет нативно подключаться к удалённым tmux-сессиям (бета).
Бесплатен ли cmux?
Да, cmux бесплатен. Исходный код доступен на GitHub.
Как поддержать cmux?
cmux бесплатен и будет оставаться таковым. Если вы хотите поддержать разработку и получить ранний доступ к тому, что готовится, — включая cmux AI, iOS-приложение и облачные виртуальные машины, — ознакомьтесь с cmux Founders Edition.
Есть идея или нашли ошибку?
Мы хотим об этом услышать. Откройте issue или pull request на GitHub либо напишите нам.
История звёзд
Участие в проекте
Как можно помочь:
-
Следите за обновлениями в X: @manaflowai, @lawrencecchen и @austinywang.
-
Присоединяйтесь к обсуждению на Discord.
-
Создавайте issues и участвуйте в обсуждениях на GitHub.
-
Расскажите нам, что вы строите с помощью cmux.
Сообщество
Founders Edition
cmux бесплатен, открыт и таковым останется. Если вы хотите поддержать разработку и получить ранний доступ к тому, что ждёт впереди:
-
Приоритетное рассмотрение запросов и исправлений
-
Ранний доступ: cmux AI с контекстом по каждому рабочему пространству, вкладке и панели
-
Ранний доступ: iOS-приложение с синхронизацией терминалов между компьютером и телефоном
-
Ранний доступ: облачные виртуальные машины
-
Ранний доступ: голосовой режим
-
Личный контакт через iMessage/WhatsApp
Лицензия
cmux распространяется с открытым исходным кодом под лицензией GPL-3.0-or-later.
Если ваша организация не может соблюдать требования GPL, для части компонентов, на которые Manaflow обладает необходимыми правами, могут быть доступны коммерческие условия. Это не распространяется на перелицензирование материалов третьих сторон или внешних участников, на которые у Manaflow нет отдельного разрешения. Точный охват указан в файле LICENSE; по вопросам обращайтесь на founders@manaflow.com.