148 lines
10 KiB
Markdown
148 lines
10 KiB
Markdown
> Этот перевод создан Claude. Если у вас есть предложения по улучшению, откройте PR.
|
||
|
||
<p align="center">
|
||
<a href="README.md">English</a> | <a href="README.zh-CN.md">简体中文</a> | <a href="README.zh-TW.md">繁體中文</a> | <a href="README.ko.md">한국어</a> | <a href="README.de.md">Deutsch</a> | <a href="README.es.md">Español</a> | <a href="README.fr.md">Français</a> | <a href="README.it.md">Italiano</a> | <a href="README.da.md">Dansk</a> | <a href="README.ja.md">日本語</a> | <a href="README.pl.md">Polski</a> | Русский | <a href="README.bs.md">Bosanski</a> | <a href="README.ar.md">العربية</a> | <a href="README.no.md">Norsk</a> | <a href="README.pt-BR.md">Português (Brasil)</a> | <a href="README.th.md">ไทย</a> | <a href="README.tr.md">Türkçe</a>
|
||
</p>
|
||
|
||
<h1 align="center">cmux</h1>
|
||
<p align="center">Терминал macOS на базе Ghostty с вертикальными вкладками и уведомлениями для AI-агентов программирования</p>
|
||
|
||
<p align="center">
|
||
<a href="https://github.com/manaflow-ai/cmux/releases/latest/download/cmux-macos.dmg">
|
||
<img src="./docs/assets/macos-badge.png" alt="Скачать cmux для macOS" width="180" />
|
||
</a>
|
||
</p>
|
||
|
||
<p align="center">
|
||
<img src="./docs/assets/screenshot.png" alt="Скриншот cmux" width="900" />
|
||
</p>
|
||
|
||
## Возможности
|
||
|
||
- **Вертикальные вкладки** — Боковая панель показывает ветку git, рабочий каталог, прослушиваемые порты и текст последнего уведомления
|
||
- **Кольца уведомлений** — Панели получают синее кольцо, а вкладки подсвечиваются, когда AI-агенты (Claude Code, OpenCode) нуждаются в вашем внимании
|
||
- **Панель уведомлений** — Просматривайте все ожидающие уведомления в одном месте, переходите к последнему непрочитанному
|
||
- **Разделённые панели** — Горизонтальное и вертикальное разделение
|
||
- **Встроенный браузер** — Разделите браузер рядом с терминалом со скриптуемым API, портированным из [agent-browser](https://github.com/vercel-labs/agent-browser)
|
||
- **Скриптуемость** — CLI и socket API для создания рабочих пространств, разделения панелей, отправки нажатий клавиш и автоматизации браузера
|
||
- **Нативное приложение macOS** — Создано на Swift и AppKit, не Electron. Быстрый запуск, низкое потребление памяти.
|
||
- **Совместимость с Ghostty** — Читает вашу существующую конфигурацию `~/.config/ghostty/config` для тем, шрифтов и цветов
|
||
- **Ускорение GPU** — На базе libghostty для плавного рендеринга
|
||
|
||
## Установка
|
||
|
||
### DMG (рекомендуется)
|
||
|
||
<a href="https://github.com/manaflow-ai/cmux/releases/latest/download/cmux-macos.dmg">
|
||
<img src="./docs/assets/macos-badge.png" alt="Скачать cmux для macOS" width="180" />
|
||
</a>
|
||
|
||
Откройте файл `.dmg` и перетащите cmux в папку «Программы». cmux автоматически обновляется через Sparkle, поэтому скачивание требуется только один раз.
|
||
|
||
### Homebrew
|
||
|
||
```bash
|
||
brew tap manaflow-ai/cmux
|
||
brew install --cask cmux
|
||
```
|
||
|
||
Для обновления в дальнейшем:
|
||
|
||
```bash
|
||
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, рабочий каталог, прослушиваемые порты и текст последнего уведомления для каждого рабочего пространства. Система уведомлений перехватывает терминальные последовательности (OSC 9/99/777) и имеет CLI (`cmux notify`), который можно подключить к хукам агентов для Claude Code, OpenCode и т.д. Когда агент ожидает, его панель получает синее кольцо, а вкладка подсвечивается в боковой панели, так что я могу определить, какой из них нуждается во мне, среди разделений и вкладок. Cmd+Shift+U переходит к последнему непрочитанному.
|
||
|
||
Встроенный браузер имеет скриптуемый API, портированный из [agent-browser](https://github.com/vercel-labs/agent-browser). Агенты могут делать снимок дерева доступности, получать ссылки на элементы, кликать, заполнять формы и выполнять JS. Вы можете разделить панель браузера рядом с терминалом и позволить Claude Code взаимодействовать с вашим сервером разработки напрямую.
|
||
|
||
Всё скриптуемо через CLI и socket API — создание рабочих пространств/вкладок, разделение панелей, отправка нажатий клавиш, открытие URL в браузере.
|
||
|
||
## Сочетания Клавиш
|
||
|
||
### Рабочие пространства
|
||
|
||
| Сочетание | Действие |
|
||
|----------|--------|
|
||
| ⌘ N | Новое рабочее пространство |
|
||
| ⌘ 1–8 | Перейти к рабочему пространству 1–8 |
|
||
| ⌘ 9 | Перейти к последнему рабочему пространству |
|
||
| ⌘ ⇧ W | Закрыть рабочее пространство |
|
||
|
||
### Поверхности
|
||
|
||
| Сочетание | Действие |
|
||
|----------|--------|
|
||
| ⌘ T | Новая поверхность |
|
||
| ⌘ ⇧ [ | Предыдущая поверхность |
|
||
| ⌃ ⇧ Tab | Предыдущая поверхность |
|
||
| ⌃ 1–8 | Перейти к поверхности 1–8 |
|
||
| ⌃ 9 | Перейти к последней поверхности |
|
||
| ⌘ W | Закрыть поверхность |
|
||
|
||
### Разделённые Панели
|
||
|
||
| Сочетание | Действие |
|
||
|----------|--------|
|
||
| ⌘ D | Разделить вправо |
|
||
| ⌘ ⇧ D | Разделить вниз |
|
||
| ⌥ ⌘ ← → ↑ ↓ | Фокус панели по направлению |
|
||
|
||
### Браузер
|
||
|
||
| Сочетание | Действие |
|
||
|----------|--------|
|
||
| ⌘ ⇧ B | Открыть браузер в разделении |
|
||
| ⌘ L | Фокус на адресной строке |
|
||
| ⌘ ] | Вперёд |
|
||
| ⌘ R | Перезагрузить страницу |
|
||
| ⌥ ⌘ I | Открыть Инструменты Разработчика |
|
||
|
||
### Уведомления
|
||
|
||
| Сочетание | Действие |
|
||
|----------|--------|
|
||
| ⌘ ⇧ I | Показать панель уведомлений |
|
||
| ⌘ ⇧ U | Перейти к последнему непрочитанному |
|
||
|
||
### Поиск
|
||
|
||
| Сочетание | Действие |
|
||
|----------|--------|
|
||
| ⌘ F | Поиск |
|
||
| ⌘ G / ⌘ ⇧ G | Найти следующий / предыдущий |
|
||
| ⌘ ⇧ F | Скрыть панель поиска |
|
||
| ⌘ E | Использовать выделение для поиска |
|
||
|
||
### Терминал
|
||
|
||
| Сочетание | Действие |
|
||
|----------|--------|
|
||
| ⌘ K | Очистить scrollback |
|
||
| ⌘ C | Копировать (с выделением) |
|
||
| ⌘ V | Вставить |
|
||
| ⌘ + / ⌘ - | Увеличить / уменьшить размер шрифта |
|
||
| ⌘ 0 | Сбросить размер шрифта |
|
||
|
||
### Окно
|
||
|
||
| Сочетание | Действие |
|
||
|----------|--------|
|
||
| ⌘ ⇧ N | Новое окно |
|
||
| ⌘ , | Настройки |
|
||
| ⌘ ⇧ R | Перезагрузить конфигурацию |
|
||
| ⌘ Q | Выход |
|
||
|
||
## Лицензия
|
||
|
||
Этот проект лицензирован под GNU Affero General Public License v3.0 или более поздней версии (`AGPL-3.0-or-later`).
|
||
|
||
Полный текст см. в файле `LICENSE`.
|