> Cette traduction a été générée par Claude. Si vous avez des suggestions d'amélioration, ouvrez une PR.
Un terminal macOS basé sur Ghostty avec des onglets verticaux et des notifications pour les agents de programmation IA
English | 日本語 | Tiếng Việt | 简体中文 | 繁體中文 | 한국어 | Deutsch | Español | Français | Italiano | Dansk | Polski | Русский | Bosanski | العربية | Norsk | Português (Brasil) | ไทย | Türkçe | ភាសាខ្មែរ | Українська
▶ Vidéo de démonstration · The Zen of cmux
## Fonctionnalités
Anneaux de notificationLes panneaux reçoivent un anneau bleu et les onglets s'illuminent lorsque les agents de programmation ont besoin de votre attention |
|
Panneau de notificationsConsultez toutes les notifications en attente au même endroit, accédez directement à la plus récente non lue |
|
Navigateur intégréDivisez un navigateur à côté de votre terminal avec une API scriptable portée depuis agent-browser |
|
Onglets verticaux + horizontauxLa barre latérale affiche la branche git, le statut/numéro de PR lié, le répertoire de travail, les ports en écoute et le texte de la dernière notification. Divisez horizontalement et verticalement. |
|
SSHcmux ssh user@remote crée un espace de travail pour une machine distante. Les panneaux navigateur sont routés via le réseau distant, donc localhost fonctionne directement. Glissez une image dans une session distante pour la transférer via scp.
|
|
Claude Code Teamscmux claude-teams lance le mode coéquipier de Claude Code en une seule commande. Les coéquipiers apparaissent comme des divisions natives avec des métadonnées dans la barre latérale et des notifications. Pas besoin de tmux.
|
|
Ouvrez le `.dmg` et glissez cmux dans votre dossier Applications. cmux se met à jour automatiquement via Sparkle, vous n'avez donc besoin de le télécharger qu'une seule fois.
### Homebrew
```bash
brew tap manaflow-ai/cmux
brew install --cask cmux
```
Pour mettre à jour plus tard :
```bash
brew upgrade --cask cmux
```
Au premier lancement, macOS peut vous demander de confirmer l'ouverture d'une application provenant d'un développeur identifié. Cliquez sur **Ouvrir** pour continuer.
## Pourquoi cmux ?
J'exécute beaucoup de sessions Claude Code et Codex en parallèle. J'utilisais Ghostty avec plein de panneaux divisés et je comptais sur les notifications natives de macOS pour savoir quand un agent avait besoin de moi. Mais le contenu des notifications de Claude Code est toujours juste « Claude is waiting for your input » sans aucun contexte, et avec suffisamment d'onglets ouverts, je ne pouvais même plus lire les titres.
J'ai essayé quelques orchestrateurs de programmation, mais la plupart étaient des applications Electron/Tauri et les performances me dérangeaient. Je préfère aussi simplement le terminal, car les orchestrateurs à interface graphique vous enferment dans leur flux de travail. J'ai donc construit cmux comme une application macOS native en Swift/AppKit. Elle utilise libghostty pour le rendu du terminal et lit votre configuration Ghostty existante pour les thèmes, polices et couleurs.
Les principaux ajouts sont la barre latérale et le système de notifications. La barre latérale comporte des onglets verticaux qui affichent la branche git, le statut/numéro de PR lié, le répertoire de travail, les ports en écoute et le texte de la dernière notification pour chaque espace de travail. Le système de notifications capte les séquences de terminal (OSC 9/99/777) et dispose d'un CLI (`cmux notify`) que vous pouvez brancher aux hooks d'agents pour Claude Code, OpenCode, etc. Quand un agent est en attente, son panneau reçoit un anneau bleu et l'onglet s'illumine dans la barre latérale, pour que je puisse identifier lequel a besoin de moi parmi les divisions et les onglets. ⌘⇧U permet de sauter à la notification non lue la plus récente.
Le navigateur intégré dispose d'une API scriptable portée depuis [agent-browser](https://github.com/vercel-labs/agent-browser). Les agents peuvent capturer l'arbre d'accessibilité, obtenir des références d'éléments, cliquer, remplir des formulaires et exécuter du JS. Vous pouvez diviser un panneau navigateur à côté de votre terminal et laisser Claude Code interagir directement avec votre serveur de développement.
Tout est scriptable via le CLI et l'API socket — créer des espaces de travail/onglets, diviser des panneaux, envoyer des frappes clavier, ouvrir des URL dans le navigateur.
## The Zen of cmux
cmux ne prescrit pas comment les développeurs utilisent leurs outils. C'est un terminal et un navigateur avec un CLI, le reste vous appartient.
cmux est une primitive, pas une solution. Il vous donne un terminal, un navigateur, des notifications, des espaces de travail, des divisions, des onglets et un CLI pour tout contrôler. cmux ne vous impose pas une façon préconçue d'utiliser les agents de programmation. Ce que vous construisez avec ces primitives vous appartient.
Les meilleurs développeurs ont toujours construit leurs propres outils. Personne n'a encore trouvé la meilleure façon de travailler avec les agents, et les équipes qui construisent des produits fermés ne l'ont pas trouvée non plus. Les développeurs les plus proches de leurs propres bases de code trouveront la solution en premier.
Donnez à un million de développeurs des primitives composables et ils trouveront collectivement les flux de travail les plus efficaces plus rapidement que n'importe quelle équipe produit ne pourrait les concevoir de manière descendante.
## Documentation
Pour plus d'informations sur la configuration de cmux, [consultez notre documentation](https://cmux.com/docs/getting-started?utm_source=readme).
## Raccourcis clavier
### Espaces de travail
| Raccourci | Action |
|----------|--------|
| ⌘ N | Nouvel espace de travail |
| ⌘ 1–8 | Aller à l'espace de travail 1–8 |
| ⌘ 9 | Aller au dernier espace de travail |
| ⌃ ⌘ ] | Espace de travail suivant |
| ⌃ ⌘ [ | Espace de travail précédent |
| ⌘ ⇧ W | Fermer l'espace de travail |
| ⌘ ⇧ R | Renommer l'espace de travail |
| ⌥ ⌘ E | Modifier la description de l'espace de travail |
| ⌘ B | Basculer la barre latérale |
| ⌥ ⌘ B | Basculer la barre latérale droite |
| ⌘ ⇧ E | Basculer le focus de la barre latérale droite |
### Surfaces
| Raccourci | Action |
|----------|--------|
| ⌘ T | Nouvelle surface |
| ⌘ ⇧ ] | Surface suivante |
| ⌘ ⇧ [ | Surface précédente |
| ⌃ Tab | Surface suivante |
| ⌃ ⇧ Tab | Surface précédente |
| ⌃ 1–8 | Aller à la surface 1–8 |
| ⌃ 9 | Aller à la dernière surface |
| ⌘ W | Fermer la surface |
### Panneaux divisés
| Raccourci | Action |
|----------|--------|
| ⌘ D | Diviser à droite |
| ⌘ ⇧ D | Diviser vers le bas |
| ⌥ ⌘ ← → ↑ ↓ | Focaliser le panneau directionnellement |
| ⌘ ⇧ H | Faire clignoter le panneau focalisé |
### Navigateur
Les raccourcis des outils de développement du navigateur suivent les valeurs par défaut de Safari et sont personnalisables dans `Paramètres → Raccourcis clavier`.
Les raccourcis de navigation de la palette de commandes, y compris ⌃ P, sont également personnalisables et peuvent être effacés pour que la frappe atteigne le terminal actif.
| Raccourci | Action |
|----------|--------|
| ⌘ ⇧ L | Ouvrir le navigateur en division |
| ⌘ L | Focaliser la barre d'adresse |
| ⌘ [ | Reculer |
| ⌘ ] | Avancer |
| ⌘ R | Recharger la page |
| ⌥ ⌘ I | Basculer les outils de développement (par défaut Safari) |
| ⌥ ⌘ C | Afficher la console JavaScript (par défaut Safari) |
### Notifications
| Raccourci | Action |
|----------|--------|
| ⌘ I | Afficher le panneau de notifications |
| ⌘ ⇧ U | Aller à la dernière non lue |
| ⌥ ⌘ U | Basculer l'état non lu de l'élément actuel |
| ⌃ ⌘ U | Marquer l'élément actuel comme la plus ancienne non lue et passer à la suivante plus récente non lue |
### Recherche
| Raccourci | Action |
|----------|--------|
| ⌘ F | Rechercher |
| ⌘ ⇧ F | Rechercher dans le répertoire |
| ⌘ G / ⌥ ⌘ G | Résultat suivant / précédent |
| ⌥ ⌘ ⇧ F | Masquer la barre de recherche |
| ⌘ E | Utiliser la sélection pour la recherche |
### Terminal
| Raccourci | Action |
|----------|--------|
| ⌘ K | Effacer l'historique de défilement |
| ⌘ C | Copier (avec sélection) |
| ⌘ V | Coller |
| ⌘ + / ⌘ - | Augmenter / diminuer la taille de police |
| ⌘ 0 | Réinitialiser la taille de police |
### Fenêtre
| Raccourci | Action |
|----------|--------|
| ⌘ ⇧ N | Nouvelle fenêtre |
| ⌘ ⇧ O | Rouvrir la session précédente |
| ⌘ , | Paramètres |
| ⌘ ⇧ , | Recharger la configuration |
| ⌘ Q | Quitter |
## Builds Nightly
[Télécharger cmux NIGHTLY](https://github.com/manaflow-ai/cmux/releases/download/nightly/cmux-nightly-macos.dmg)
cmux NIGHTLY est une application séparée avec son propre identifiant de bundle, elle fonctionne donc en parallèle de la version stable. Construite automatiquement à partir du dernier commit `main` et mise à jour automatiquement via son propre flux Sparkle.
Signalez les bugs nightly sur [GitHub Issues](https://github.com/manaflow-ai/cmux/issues) ou dans [#nightly-bugs sur Discord](https://discord.gg/xsgFEVrWCZ).
## Restauration de session
À la fermeture, cmux enregistre la session en cours. Au relancement, cmux restaure
l'état géré par l'application :
- Disposition des fenêtres/espaces de travail/panneaux
- Répertoires de travail
- Historique de défilement du terminal (au mieux)
- URL du navigateur et historique de navigation
cmux ne crée pas de point de contrôle pour n'importe quel processus actif. tmux, vim, les shells et
les applications de terminal non prises en charge se rouvrent comme des terminaux normaux.
Les sessions d'agents prises en charge peuvent reprendre lorsque les hooks ont enregistré un ID
de session natif. Installez les hooks après avoir installé le CLI de l'agent pour que son
binaire soit dans le `PATH` :
```bash
cmux hooks setup
cmux hooks setup codex
cmux hooks setup --agent opencode
```
`cmux hooks setup` installe les agents pris en charge qu'il trouve et affiche un résumé
des agents ignorés. Les intégrations de reprise prises en charge incluent Claude Code, Codex,
Grok, OpenCode, Pi, Amp, Cursor CLI, Gemini, Rovo Dev, Copilot, CodeBuddy,
Factory et Qoder. Claude Code est géré par le wrapper Claude de cmux lorsque l'intégration
Claude est activée dans les Paramètres.
Les utilisateurs avancés et les intégrations peuvent associer une commande de reprise personnalisée à la
surface de terminal active. C'est utile pour les outils qui ont leur propre état durable, comme
les sessions tmux ou les CLI d'agents personnalisés :
```bash
cmux surface resume set --kind tmux --checkpoint work --shell "tmux attach -t work"
cmux surface resume show --json
cmux surface resume clear --checkpoint work
```
Cette association reste liée à la surface cmux. Les associations créées par le CLI public ou
le socket sont conservées pour inspection et reprise manuelle, sauf si vous approuvez un préfixe
de commande signé pour une reprise automatique. Les préfixes approuvés sont également liés au
répertoire de travail et aux valeurs exactes de l'environnement, lorsqu'elles sont présentes. Examinez ou
modifiez les approbations dans **Paramètres > Terminal > Commandes de reprise**. cmux exécute
automatiquement seulement les associations de reprise qu'il marque comme fiables, comme les associations
tmux détectées depuis des processus actifs ou les préfixes approuvés par l'utilisateur. Les clés
d'environnement sensibles, comme les jetons, mots de passe, secrets et clés API, sont supprimées avant
l'enregistrement d'une association de reprise.
Pour garder les terminaux d'agents restaurés inactifs au lieu d'exécuter automatiquement leurs commandes de reprise,
désactivez **Paramètres > Terminal > Reprendre les sessions d'agents à la réouverture** ou définissez ceci dans
`~/.config/cmux/cmux.json` :
```json
{
"terminal": {
"autoResumeAgentSessions": false
}
}
```
Cela désactive uniquement les commandes de reprise automatique des agents. cmux continue de restaurer la disposition enregistrée,
les répertoires de travail, l'historique de défilement et l'historique du navigateur.
Si vous devez réappliquer manuellement le dernier instantané enregistré, utilisez :
- `Fichier > Rouvrir la session précédente`
- `⌘ ⇧ O`
- `cmux restore-session`
En interne, cmux écrit un instantané versionné dans
`~/Library/Application Support/cmux/` et les hooks d'agents écrivent les correspondances de session
dans `~/.cmuxterm/`. À la restauration, cmux reconstruit d'abord la disposition, puis exécute la
commande de reprise native de l'agent pris en charge lorsque la reprise automatique d'agents est activée.
Lisez le guide complet sur
WeChat : scannez le QR code pour rejoindre la communauté.