7.2 KiB
To tłumaczenie zostało wygenerowane przez Claude. Jeśli masz sugestie dotyczące poprawek, otwórz PR.
English | 简体中文 | 繁體中文 | 한국어 | Deutsch | Español | Français | Italiano | Dansk | 日本語 | Polski | Русский | Bosanski | العربية | Norsk | Português (Brasil) | ไทย | Türkçe
cmux
Terminal macOS oparty na Ghostty z pionowymi kartami i powiadomieniami dla agentów kodowania AI
Funkcje
- Pionowe karty — Pasek boczny pokazuje gałąź git, katalog roboczy, nasłuchujące porty i tekst ostatniego powiadomienia
- Pierścienie powiadomień — Panele otrzymują niebieski pierścień, a karty podświetlają się, gdy agenci AI (Claude Code, OpenCode) potrzebują Twojej uwagi
- Panel powiadomień — Zobacz wszystkie oczekujące powiadomienia w jednym miejscu, przeskocz do najnowszego nieprzeczytanego
- Podzielone panele — Podziały poziome i pionowe
- Wbudowana przeglądarka — Podziel przeglądarkę obok terminala ze skryptowalnym API przeniesionym z agent-browser
- Skryptowalny — CLI i socket API do tworzenia przestrzeni roboczych, dzielenia paneli, wysyłania naciśnięć klawiszy i automatyzacji przeglądarki
- Natywna aplikacja macOS — Zbudowana w Swift i AppKit, nie Electron. Szybki start, niskie zużycie pamięci.
- Kompatybilny z Ghostty — Odczytuje istniejącą konfigurację
~/.config/ghostty/configdla motywów, czcionek i kolorów - Akceleracja GPU — Napędzany przez libghostty dla płynnego renderowania
Instalacja
DMG (zalecane)
Otwórz plik .dmg i przeciągnij cmux do folderu Aplikacje. cmux aktualizuje się automatycznie przez Sparkle, więc musisz pobrać go tylko raz.
Homebrew
brew tap manaflow-ai/cmux
brew install --cask cmux
Aby zaktualizować później:
brew upgrade --cask cmux
Przy pierwszym uruchomieniu macOS może poprosić o potwierdzenie otwarcia aplikacji od zidentyfikowanego dewelopera. Kliknij Otwórz, aby kontynuować.
Dlaczego cmux?
Uruchamiam wiele sesji Claude Code i Codex równolegle. Używałem Ghostty z masą podzielonych paneli i polegałem na natywnych powiadomieniach macOS, żeby wiedzieć, kiedy agent mnie potrzebuje. Ale treść powiadomienia Claude Code to zawsze tylko „Claude is waiting for your input" bez kontekstu, a przy wystarczającej liczbie otwartych kart nie mogłem nawet przeczytać tytułów.
Wypróbowałem kilka orkiestratorów kodowania, ale większość z nich to aplikacje Electron/Tauri, a ich wydajność mi przeszkadzała. Po prostu wolę też terminal, ponieważ orkiestratory GUI zamykają cię w swoim przepływie pracy. Dlatego zbudowałem cmux jako natywną aplikację macOS w Swift/AppKit. Używa libghostty do renderowania terminala i odczytuje istniejącą konfigurację Ghostty dla motywów, czcionek i kolorów.
Główne dodatki to pasek boczny i system powiadomień. Pasek boczny ma pionowe karty pokazujące gałąź git, katalog roboczy, nasłuchujące porty i tekst ostatniego powiadomienia dla każdej przestrzeni roboczej. System powiadomień przechwytuje sekwencje terminala (OSC 9/99/777) i ma CLI (cmux notify), który można podpiąć do hooków agentów dla Claude Code, OpenCode itp. Gdy agent czeka, jego panel otrzymuje niebieski pierścień, a karta podświetla się w pasku bocznym, więc mogę powiedzieć, który mnie potrzebuje, niezależnie od podziałów i kart. Cmd+Shift+U przeskakuje do najnowszego nieprzeczytanego.
Wbudowana przeglądarka ma skryptowalny API przeniesiony z agent-browser. Agenci mogą wykonać migawkę drzewa dostępności, uzyskać referencje elementów, klikać, wypełniać formularze i ewaluować JS. Możesz podzielić panel przeglądarki obok terminala i pozwolić Claude Code bezpośrednio komunikować się z Twoim serwerem deweloperskim.
Wszystko jest skryptowalne przez CLI i socket API — tworzenie przestrzeni roboczych/kart, dzielenie paneli, wysyłanie naciśnięć klawiszy, otwieranie URL-ów w przeglądarce.
Skróty Klawiszowe
Przestrzenie robocze
| Skrót | Akcja |
|---|---|
| ⌘ N | Nowa przestrzeń robocza |
| ⌘ 1–8 | Przejdź do przestrzeni roboczej 1–8 |
| ⌘ 9 | Przejdź do ostatniej przestrzeni roboczej |
| ⌃ ⌘ ] | Następna przestrzeń robocza |
| ⌃ ⌘ [ | Poprzednia przestrzeń robocza |
| ⌘ ⇧ W | Zamknij przestrzeń roboczą |
| ⌘ B | Przełącz pasek boczny |
Powierzchnie
| Skrót | Akcja |
|---|---|
| ⌘ T | Nowa powierzchnia |
| ⌘ ⇧ ] | Następna powierzchnia |
| ⌘ ⇧ [ | Poprzednia powierzchnia |
| ⌃ Tab | Następna powierzchnia |
| ⌃ ⇧ Tab | Poprzednia powierzchnia |
| ⌃ 1–8 | Przejdź do powierzchni 1–8 |
| ⌃ 9 | Przejdź do ostatniej powierzchni |
| ⌘ W | Zamknij powierzchnię |
Podzielone Panele
| Skrót | Akcja |
|---|---|
| ⌘ D | Podziel w prawo |
| ⌘ ⇧ D | Podziel w dół |
| ⌥ ⌘ ← → ↑ ↓ | Fokus panelu kierunkowo |
| ⌘ ⇧ H | Mignij fokusowanym panelem |
Przeglądarka
| Skrót | Akcja |
|---|---|
| ⌘ ⇧ L | Otwórz przeglądarkę w podziale |
| ⌘ L | Fokus na pasku adresu |
| ⌘ [ | Wstecz |
| ⌘ ] | Do przodu |
| ⌘ R | Przeładuj stronę |
| ⌥ ⌘ I | Otwórz Narzędzia Deweloperskie |
Powiadomienia
| Skrót | Akcja |
|---|---|
| ⌘ I | Pokaż panel powiadomień |
| ⌘ ⇧ U | Przejdź do najnowszego nieprzeczytanego |
Szukaj
| Skrót | Akcja |
|---|---|
| ⌘ F | Szukaj |
| ⌘ G / ⌘ ⇧ G | Znajdź następny / poprzedni |
| ⌘ ⇧ F | Ukryj pasek wyszukiwania |
| ⌘ E | Użyj zaznaczenia do wyszukiwania |
Terminal
| Skrót | Akcja |
|---|---|
| ⌘ K | Wyczyść scrollback |
| ⌘ C | Kopiuj (z zaznaczeniem) |
| ⌘ V | Wklej |
| ⌘ + / ⌘ - | Zwiększ / zmniejsz rozmiar czcionki |
| ⌘ 0 | Resetuj rozmiar czcionki |
Okno
| Skrót | Akcja |
|---|---|
| ⌘ ⇧ N | Nowe okno |
| ⌘ , | Ustawienia |
| ⌘ ⇧ , | Przeładuj konfigurację |
| ⌘ Q | Zakończ |
Licencja
Ten projekt jest licencjonowany na warunkach GNU Affero General Public License v3.0 lub nowszej (AGPL-3.0-or-later).
Pełny tekst znajduje się w pliku LICENSE.