
2026/02/20 6:30
Show HN:Ghosttyベースのターミナルで縦方向タブと通知機能付き --- **説明** - **Ghostty** を利用したターミナルエミュレータ - タブを垂直に配置できる(左右または上部ではなく、画面横幅に沿って) - 重要なイベントやメッセージが通知として表示される --- ※「Show HN」は Hacker News の「Show」カテゴリを指します。
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
cmux は、Swift/AppKit で書かれたネイティブ macOS ターミナルアプリケーションで、垂直タブ、AI コーディングエージェント用の堅牢な通知システム、および統合ブラウザを追加します。GPU‑アクセラレーションされた描画に libghostty を使用し、Ghostty 設定ファイルからテーマとフォントを読み取り、OSC 9/99/777 シーケンスで通知をトリガーします。サイドバーには現在の git ブランチ、作業ディレクトリ、リッスン中のポート、および各ワークスペースごとの最新通知テキストが表示されます;パネルは青いリングで囲まれ、AI エージェントに注意が必要な場合にはタブが点灯します。
通知は
cmux notify CLI コマンドを介してエージェントフックに接続され、アプリ内ブラウザ(agent-browser の移植)により、エージェントはアクセシビリティツリーのスナップショット取得、クリック、フォーム入力、JavaScript 評価、および開発サーバーとの対話が可能です。アプリ全体はコマンドラインインターフェースとソケット API を通じてスクリプト化でき、ワークスペース/タブの作成、パネル分割、キーストローク送信、ブラウザでの URL 開放などが行えます。
インストールは DMG(推奨)または Homebrew(
brew tap manaflow‑ai/cmux; brew install --cask cmux)で利用可能です。更新は Sparkle により自動管理されます。キーボードショートカットはワークスペース、サーフェス、パネル分割、ブラウザ制御、通知、検索操作、ターミナルアクション、およびウィンドウ管理(例:⌘ N で新規ワークスペース、⌘ T で新規サーフェス、⌘ D で右へ分割)をカバーします。アプリは GNU Affero General Public License v3.0 or later (AGPL‑3.0‑or‑later) の下でリリースされています。本文
cmux
A Ghostty ベースの macOS ターミナル ― 垂直タブと AI コーディングエージェント用通知機能付き
特徴
- 通知リング – AI エージェントが注意を要する際、パネルに青いリングが表示され、タブがライトアップします。
- 通知パネル – 未読通知を一括で確認でき、最新の未読へ即座にジャンプできます。
- アプリ内ブラウザ – agent‑browser から移植したスクリプト可能な API を備え、ターミナル横にブラウザを分割表示します。
- 垂直+水平タブ – サイドバーに Git ブランチ・作業ディレクトリ・監視ポート・最新通知テキストを表示。水平・垂直スプリットをサポートします。
- スクリプト可能 – CLI とソケット API でワークスペースの作成、パネル分割、キー入力送信、ブラウザ自動化が行えます。
- ネイティブ macOS アプリ – Swift + AppKit(Electron 非対応)で構築。起動速度とメモリ使用量を最小限に抑えています。
- Ghostty 互換 –
を読み込み、テーマ・フォント・カラー設定をそのまま利用します。~/.config/ghostty/config - GPU 加速 – libghostty により滑らかな描画が実現されています。
インストール
DMG(推奨)
- ダウンロードした
を開きます。.dmg - cmux をアプリケーションフォルダへドラッグします。
は Sparkle で自動更新されるため、二度とダウンロードする必要はありません。cmux
初回起動時に「認証済み開発元からのアプリを開く」確認が表示されます。「Open」をクリックして続行してください。
Homebrew
brew tap manaflow-ai/cmux brew install --cask cmux
後日更新する際は:
brew upgrade cmux
なぜ cmux なのか?
私は Claude Code と Codex のセッションを多数同時に実行しています。
Ghostty の分割パネルとネイティブ macOS 通知でエージェントが待機していることは把握できましたが、通知本文は常に「Claude is waiting for your input」とだけ表示され、文脈が不足していました。タブが多い環境ではタイトルを読むのも困難でした。
Electron/Tauri のオーケストレーターは遅く、GUI オーケストレーターはワークフローに縛られやすいという問題があります。
そこで cmux を Swift/AppKit でネイティブ macOS アプリとして構築し、libghostty によるターミナル描画と既存 Ghostty 設定の読み込みを実装しました。
主な追加機能:
- サイドバーに垂直タブを配置。各ワークスペースごとに Git ブランチ・作業ディレクトリ・監視ポート・最新通知テキストを表示。
- ターミナルシーケンス(OSC 9/99/777)を検知する通知システムと CLI (
) を提供。エージェントが待機するとパネルが青くリングし、サイドバーのタブがライトアップされます。分割・タブ間でも視認性が高いです。cmux notify - スクリプト可能な API(agent-browser から移植)を備えたアプリ内ブラウザ。アクセシビリティツリーのスナップショット取得、要素参照、クリック、フォーム入力、JS 評価などが可能です。ターミナル横にブラウザパネルを分割し、Claude Code が開発サーバーと直接対話できます。
すべては CLI とソケット API でスクリプト化可能です:ワークスペース/タブ作成・分割、キー入力送信、URL オープンなどが行えます。
キーボードショートカット
ワークスペース
| ショートカット | 動作 |
|---|---|
| ⌘ N | 新しいワークスペース |
| ⌘ 1–8 | ワークスペース 1〜8 にジャンプ |
| ⌘ 9 | 最後のワークスペースへジャンプ |
| ⌃ ⌘ ] | 次のワークスペース |
| ⌃ ⌘ [ | 前のワークスペース |
| ⌘ ⇧ W | ワークスペースを閉じる |
| ⌘ B | サイドバーを切り替え |
サーフェス
| ショートカット | 動作 |
|---|---|
| ⌘ T | 新しいサーフェス |
| ⌘ ⇧ ] | 次のサーフェス |
| ⌘ ⇧ [ | 前のサーフェス |
| ⌃ Tab | 次のサーフェス |
| ⌃ ⇧ Tab | 前のサーフェス |
| ⌃ 1–8 | サーフェス 1〜8 にジャンプ |
| ⌃ 9 | 最後のサーフェスへジャンプ |
| ⌘ W | サーフェスを閉じる |
パネル分割
| ショートカット | 動作 |
|---|---|
| ⌘ D | 右に分割 |
| ⌘ ⇧ D | 下に分割 |
| ⌥ ⌘ ← → ↑ ↓ | 指定方向へフォーカス移動 |
| ⌘ ⇧ H | フォーカスしたパネルをハイライト |
ブラウザ
| ショートカット | 動作 |
|---|---|
| ⌘ ⇧ L | 分割でブラウザを開く |
| ⌘ L | アドレスバーにフォーカス |
| ⌘ [ | 戻る |
| ⌘ ] | 進む |
| ⌘ R | ページ再読み込み |
| ⌥ ⌘ I | 開発者ツールを開く |
通知
| ショートカット | 動作 |
|---|---|
| ⌘ I | 通知パネル表示 |
| ⌘ ⇧ U | 最新未読へジャンプ |
検索
| ショートカット | 動作 |
|---|---|
| ⌘ F | 検索 |
| ⌘ G / ⌘ ⇧ G | 次/前の検索結果 |
| ⌘ ⇧ F | 検索バーを非表示 |
| ⌘ E | 選択範囲で検索 |
ターミナル
| ショートカット | 動作 |
|---|---|
| ⌘ K | スクロールバックをクリア |
| ⌘ C | 文字列コピー(選択付き) |
| ⌘ V | ペースト |
| ⌘ + / ⌘ - | フォントサイズ増減 |
| ⌘ 0 | フォントサイズリセット |
ウィンドウ
| ショートカット | 動作 |
|---|---|
| ⌘ ⇧ N | 新しいウィンドウ |
| ⌘ , | 設定 |
| ⌘ ⇧ , | 設定を再読み込み |
| ⌘ Q | 終了 |
ライセンス
本プロジェクトは GNU Affero General Public License v3.0 以上(AGPL‑3.0-or-later)に基づきライセンスされています。
LICENSE ファイルで全文をご確認ください。