Espaces de travail

Un espace de travail est l'unité d'isolation de Bromure Agentic Coding : une VM Ubuntu avec son propre disque système, son propre dossier personnel persistant, ses propres agents de codage et identifiants, et ses propres politiques de sécurité. Tout ce que fait l'application se déroule à l'intérieur d'un espace de travail — un espace de travail temporaire peut fonctionner grand ouvert sur une clé API jetable pendant qu'un espace de travail orienté production enregistre chaque échange d'IA et demande confirmation avant chaque écriture destructrice, et les deux ne partagent jamais un seul octet.

Presque tous les réglages de l'application sont propres à chaque espace de travail. Les exceptions sont le serveur d'Automatisation commun à toute l'application, l'image de navigateur téléchargée et les modèles locaux installés — tous partagés entre les espaces de travail. Dans le code et dans le JSON exporté, un espace de travail est appelé un profil ; la CLI accepte indifféremment le nom d'un espace de travail, son id ou un préfixe d'id court. Ce chapitre couvre la fenêtre depuis laquelle vous gérez les espaces de travail, ainsi que les actions du cycle de vie — créer, modifier, dupliquer, réinitialiser, supprimer — que vous y pilotez. L'éditeur de réglages à 15 volets que porte chaque espace de travail est documenté dans la Référence des réglages ; ce qui se passe une fois qu'un espace de travail est en cours d'exécution est couvert dans Sessions ; et le modèle d'isolation lui-même est décrit dans Concepts et architecture.

Le navigateur d'espaces de travail

La fenêtre principale de l'application est le navigateur d'espaces de travail : une barre latérale gauche qui liste vos espaces de travail, la Grille de terminaux et vos automatisations planifiées, ainsi qu'un volet de détails qui affiche les indicateurs vitaux en direct et la configuration de l'espace de travail sélectionné.

Le navigateur d'espaces de travail : une barre latérale avec une section ESPACES DE TRAVAIL (Grille, Codex Sandbox, Claude Dev) et une section AUTOMATISATIONS, à côté d'un volet de détails affichant les cartes d'état et le résumé CONFIGURATION de Codex Sandbox

La barre latérale comporte trois sections, de haut en bas :

  • ESPACES DE TRAVAIL — un nœud Grille épinglé suivi d'une ligne par espace de travail.
  • AUTOMATISATIONS — vos exécutions d'agent planifiées et sans surveillance, avec un bouton + pour en ajouter une.
  • Un bouton + noir tout en bas qui crée un nouvel espace de travail.

La sélection d'une ligne d'espace de travail remplit le volet de détails. Si l'espace de travail est Arrêté ou Suspendu, le volet affiche son tableau de bord et un bouton Démarrer ou Reprendre ; une fois qu'il est en cours d'exécution, la scène affiche à la place la session en direct (ses onglets de terminal, son volet de navigateur et son tableau de bord), documentée dans Sessions.

La barre latérale est redimensionnable de 100 à 600 points (220 par défaut). Faites glisser le séparateur en dessous d'environ 100 points, ou appuyez sur ⌃⌘S, pour la réduire en une étroite barre d'icônes ; appuyez à nouveau pour la restaurer. Les espaces de travail sont listés du plus récemment utilisé en premier, en se rabattant sur la date de création pour ceux que vous n'avez jamais ouverts.

La barre latérale

Lignes d'espace de travail

Chaque ligne d'espace de travail porte, de gauche à droite :

  • Une tuile teintée — un glyphe de baie de serveurs teinté avec la couleur de l'espace de travail, avec un petit point d'état d'exécution dans son coin.
  • Le nom de l'espace de travail, en gras lorsque la ligne est sélectionnée.
  • Un libellé d'état sous le nom — Arrêté, Démarrage… ou Suspendu. Un espace de travail en cours d'exécution n'affiche aucun libellé ; à la place, ses onglets de terminal ainsi qu'un nœud Docker toujours présent apparaissent imbriqués sous la ligne (le nœud porte un badge de nombre de conteneurs en cours d'exécution qui affiche 0 lorsqu'aucun n'est actif).
  • Un triangle d'avertissement rouge après le nom lorsque l'espace de travail a été signalé comme compromis par le détecteur de fuite d'identifiants et refuse de démarrer tant qu'il n'est pas effacé (voir Concepts et architecture).

Le survol d'un espace de travail en cours d'exécution révèle trois boutons d'action rapide sur la ligne : Détacher dans sa propre fenêtre, Fermer cette VM et Nouvel onglet (⌘T). Le bouton à la fin de chaque ligne ouvre le menu contextuel de cet espace de travail — le point central de chaque action de cycle de vie et de gestion décrite dans le reste de ce chapitre.

États d'exécution

Une VM d'espace de travail se trouve toujours dans l'un de quelques états, indiqué à la fois par le point d'état de la ligne et par la pastille à côté du nom dans l'en-tête du volet de détails :

ÉtatPoint de la ligneSignification
ArrêtéGrisNon en cours d'exécution. Pas de RAM, pas de CPU ; seulement le disque sur le disque.
Démarrage… (Amorçage)Orange, clignotantLa VM est en cours de mise sous tension.
En cours d'exécutionVertAmorcée et active ; la session est en direct.
SuspenduJauneRAM enregistrée sur le disque ; reprend quasi instantanément là où elle s'était arrêtée.

Le cycle de vie derrière ces états — en quoi la suspension diffère de l'arrêt, et ce que fait une « action de fermeture » — est décrit dans Concepts et architecture.

Le volet de détails

Lorsqu'un espace de travail n'est pas en cours d'exécution, son volet de détails est un tableau de bord : une rangée de cartes d'état en haut, un résumé CONFIGURATION en dessous, et un bouton Démarrer / Reprendre dans le coin supérieur droit.

Cartes d'état

Cinq cartes rapportent le tableau des ressources de l'espace de travail. Leurs valeurs diffèrent selon que la VM est en cours d'exécution ou non :

CarteLorsque Arrêté / SuspenduLorsque En cours d'exécution
CPU (légende arrêté)Charge CPU en direct, avec un historique en sparkline.
MémoireRAM allouée, par exemple 8 GB (légende allouée)Mémoire utilisée à l'intérieur de l'invité.
vCPUNombre de cœurs, par exemple 4 (légende cœurs)Même nombre avec la moyenne de charge actuelle de l'invité.
Disque0 MB (légende de 0 MB (hôte))Disque utilisé par l'espace de travail, sur la capacité de l'hôte, lu en direct depuis l'invité.
Temps de fonctionnement (légende arrêté)Temps écoulé depuis l'amorçage, par exemple 3h 12m.

Les chiffres de mémoire allouée et de vCPU proviennent des réglages Ressources de l'espace de travail. Le tableau de bord en cours d'exécution, y compris les listages de ports en direct et l'exposition à Internet, est couvert dans Sessions.

Le résumé CONFIGURATION

La carte CONFIGURATION est un récapitulatif rapide, en lecture seule, des réglages les plus importants de l'espace de travail — afin que vous puissiez confirmer ce que fera un espace de travail avant de le démarrer :

LigneAffiche
<Nom de l'agent> (une ligne par agent activé)Où il s'exécute et comment il s'authentifie — Cloud · API token, Cloud · Subscription, On-device · <model>, et ainsi de suite.
Garde-fousOff, le mode unique lorsqu'il est uniforme, ou Custom (N domains) lorsqu'il est mixte.
Analyse d'injection de promptOn ou Off.
Dossiers partagésLes noms des dossiers montés, ou None.

Chacun de ces éléments correspond à un volet de l'éditeur de réglages : Agents, Garde-fous, Injection de prompt et Dossiers.

Remarque : Un espace de travail fraîchement décodé qui est antérieur à un réglage affiche ici la valeur par défaut historique de ce réglage — par exemple le Codex Sandbox dans la capture d'écran ci-dessus rapporte Garde-fous Off et Analyse d'injection de prompt Off, parce qu'il a été créé avant que ces valeurs par défaut n'existent. Les espaces de travail nouvellement créés héritent à la place du modèle d'usine actuel (Garde-fous réglés sur Demander avant écriture, traçage sur Détails des requêtes IA). Voir le modèle de préférences.

Démarrer et Reprendre

Le bouton dans le coin supérieur droit affiche Démarrer lorsque l'espace de travail est Arrêté et Reprendre lorsqu'il est Suspendu. Cliquer dessus amorce la VM (ou la réveille de son état RAM enregistré) et bascule la scène vers la session en direct. Les mêmes actions sont disponibles depuis le menu de la ligne.

Créer un espace de travail

Cliquez sur le bouton + noir en bas de la barre latérale (son infobulle indique Nouvel espace de travail). Cela ouvre l'éditeur de réglages dans une fenêtre intitulée Nouvel espace de travail, préremplie à partir de votre modèle de préférences avec un nom d'espace réservé — Espace de travail par défaut, auto-numéroté Espace de travail par défaut 2, 3, et ainsi de suite si le nom est déjà pris.

  1. Donnez un Nom à l'espace de travail dans le volet Général. C'est le seul champ requis pour enregistrer.
  2. Ajustez tout autre volet — agent, identifiants, garde-fous, apparence, ressources — selon vos besoins. Chaque volet est documenté dans la Référence des réglages.
  3. Cliquez sur Créer. Appuyez sur Esc (ou Annuler) pour abandonner le brouillon.

Un nouvel espace de travail est dérivé du modèle, de sorte que tout ce que vous définissez dans Bromure → Préférences… devient son point de départ. Le modèle d'usine active Claude Code comme agent principal en mode d'authentification Subscription, règle chaque garde-fou sur Demander avant écriture, et active une paire de clés SSH ed25519 (la bascule Générer une paire de clés ed25519 sous Identifiants → Clés SSH est précochée sauf si le modèle porte déjà une clé).

Astuce : La plupart des modifications de l'éditeur ne s'appliquent que lorsque vous cliquez sur Créer ou Enregistrer. Quelques actions prennent effet immédiatement, indépendamment de cela — les téléchargements de modèle local et de modèle d'injection de prompt, l'autorisation OAuth de MCP, l'enregistrement d'abonnement et l'importation de clé SSH — parce qu'elles touchent à un état partagé ou côté hôte plutôt qu'au document de l'espace de travail.

Modifier et renommer un espace de travail

Ouvrez le menu d'un espace de travail et choisissez Modifier… pour rouvrir le même éditeur, cette fois intitulé Modifier l'espace de travail et lié à l'espace de travail existant. Modifiez n'importe quelle valeur et cliquez sur Enregistrer.

Il n'y a pas de commande « renommer » distincte — un espace de travail est renommé en modifiant son champ Nom dans le volet Général. Une seule fenêtre d'éditeur existe à la fois ; ouvrir l'éditeur pour un espace de travail différent détruit la fenêtre et la reconstruit.

Couleur et tuile de l'espace de travail

Chaque espace de travail a une Couleur d'accentuation, choisie dans le volet Général parmi huit préréglages :

Bleu (par défaut)RougeVertOrange
VioletRoseSarcelleGris

La couleur teinte la tuile de la barre latérale de l'espace de travail, son surlignage de sélection et les accents de ses onglets — c'est le moyen le plus rapide de distinguer les espaces de travail d'un coup d'œil. La couleur est la seule identité visuelle propre à chaque espace de travail : il n'y a pas de sélecteur d'icône. La tuile est toujours un glyphe de baie de serveurs dans la couleur que vous avez choisie, superposé avec le point d'état d'exécution décrit sous États d'exécution.

Dupliquer un espace de travail

Choisissez Dupliquer dans le menu d'un espace de travail pour en faire une copie profonde. La copie apparaît immédiatement dans la barre latérale sous le nom de l'original suivi de copy — dupliquer Codex Sandbox produit Codex Sandbox copy — et il n'y a pas de boîte de dialogue de confirmation.

Un duplicata est un véritable clone. Il copie tous les réglages et identifiants, le disque système, le dossier personnel, ainsi que le matériel SSH et d'agent côté hôte, en utilisant le clonage par copie-sur-écriture APFS lorsque cela est possible (instantané, et ne consommant aucun espace disque supplémentaire jusqu'à ce que les deux espaces de travail divergent). Trois choses liées à l'identité de l'original ne sont délibérément pas copiées :

  • l'instantané RAM enregistré, de sorte que la copie démarre à froid à neuf plutôt que de reprendre l'état en direct de l'original ;
  • la disposition des onglets ;
  • l'adresse MAC persistante, de sorte que la copie rejoint le réseau en tant que machine distincte.

Comme sa date de création est réestampillée, la copie se trie en haut de la barre latérale en tant qu'espace de travail le plus récent.

Démarrer, suspendre et arrêter

Le menu d'une ligne d'espace de travail s'adapte à son état actuel. Lorsque la VM est arrêtée ou suspendue, il propose la seule entrée de démarrage ; lorsqu'elle est en cours d'exécution, il propose les trois façons de l'arrêter ou de la redémarrer :

ÉtatEntrées du menu
ArrêtéDémarrer
SuspenduReprendre
En cours d'exécution ou Démarrage…Arrêter · Suspendre · Redémarrer — plus Ajouter les worktrees à la Grille lorsqu'il est en cours d'exécution

Suspendre enregistre la RAM de la VM sur le disque et l'arrête, de sorte qu'une Reprise ultérieure reprend exactement là où vous vous étiez arrêté ; Arrêter effectue une mise hors tension propre, et le lancement suivant est un amorçage à froid complet. Redémarrer relance un espace de travail en cours d'exécution sur place. Les compromis entre ces options, ainsi que la valeur par défaut À la fermeture de la fenêtre propre à chaque espace de travail qui décide laquelle une fermeture de fenêtre déclenche, sont couverts dans Concepts et architecture et Réglages généraux.

Réinitialiser le disque système

Réinitialiser le disque (dans le menu , ou Réinitialiser à la base… dans le volet Ressources) reclone le disque système de l'espace de travail à partir de l'image de base actuelle. Il abandonne tout ce que vous avez modifié dans la couche du système d'exploitation — les paquets installés avec apt, les modifications de /etc, /var, /usr, /opt et de la configuration à l'échelle du système — tout en laissant votre dossier personnel intact : les projets, les dotfiles, les clés .ssh, npm-global, .cargo et l'historique du shell survivent tous. La boîte de dialogue de confirmation est intitulée Réinitialiser le disque système de « <nom> » à la base ? et ses boutons sont Réinitialiser à la base et Annuler.

Réinitialiser le disque abandonne également l'état RAM enregistré et la disposition des onglets, de sorte que le prochain amorçage soit cohérent. L'action est refusée avec Fermez d'abord « <nom> ». si la fenêtre de session de l'espace de travail est ouverte — fermez-la avant de réinitialiser.

Remarque : Pour effacer le dossier personnel à la place — les projets, les dotfiles et la paire de clés SSH générée — utilisez Effacer le dossier personnel… dans le volet Ressources. Les points de contrôle de retour arrière du dossier personnel et le contrôle Restaurer le dossier personnel… qui revient à un instantané par amorçage sont décrits dans Sessions.

Supprimer un espace de travail

Supprimer l'espace de travail (l'entrée rouge et destructrice en bas du menu ) supprime un espace de travail de façon permanente. Une alerte de confirmation intitulée Supprimer l'espace de travail « <nom> » ? explique le rayon d'action :

Supprime son disque, ses réglages et sa clé SSH. Le dossier hôte monté n'est pas affecté.

Confirmer supprime l'intégralité du répertoire de l'espace de travail sous ~/Library/Application Support/BromureAC/profiles/ — son profile.json, son secrets.enc chiffré, le disque système, l'image du dossier personnel, tous les points de contrôle et le matériel de clé SSH côté hôte — et libère son adresse MAC réservée. Ce que la suppression ne touche pas, ce sont les dossiers hôtes que vous avez partagés dans l'espace de travail : ceux-ci résident sur votre Mac, sont montés en lecture-écriture, et sont laissés exactement tels qu'ils étaient. Leur contenu à l'intérieur de la VM disparaît avec la VM ; les originaux sur votre Mac, non.

Avertissement : La suppression n'est pas récupérable depuis l'application. Il n'y a pas de corbeille ni d'annulation — le disque, le dossier personnel et les secrets sont perdus. Tout ce que vous souhaitez conserver doit se trouver sur un dossier hôte partagé, ou être validé et poussé avant de supprimer.

La Grille

Le nœud Grille épinglé en haut de la section ESPACES DE TRAVAIL est une scène qui juxtapose plusieurs terminaux en cours d'exécution côte à côte, afin que vous puissiez surveiller plusieurs agents à la fois. Il y a deux façons de la remplir : choisissez Ajouter les worktrees à la Grille dans le menu d'un espace de travail en cours d'exécution pour déposer tous les onglets de worktree de cet espace de travail sur la Grille en une seule fois, ou faites glisser des onglets de terminal individuels sur le nœud Grille. Le menu contextuel de chaque cellule propose Retirer de la Grille. La disposition de la Grille et la façon dont elle interagit avec les worktrees sont couvertes dans Sessions.

Les automatisations en un coup d'œil

La section AUTOMATISATIONS liste vos exécutions d'agent planifiées et sans surveillance. Son bouton + (infobulle Nouvelle automatisation) ouvre l'éditeur d'automatisation. Chaque ligne affiche le nom de l'automatisation, un point coloré pour l'espace de travail auquel elle appartient, un résumé sur une ligne de son déclencheur (par exemple Jours ouvrés 9:00 ou PR · owner/repo), et un glyphe pour sa dernière exécution. Un clic droit sur une ligne propose Exécuter maintenant, Mettre en pause ou Reprendre, et Supprimer….

Une automatisation appartient à un seul espace de travail ; lorsqu'elle se déclenche, elle crée un nouveau worktree git dans le dépôt de cet espace de travail et y lance l'agent choisi avec votre prompt, de sorte que les exécutions apparaissent comme des onglets de worktree ordinaires. Les déclencheurs vont d'une planification à l'horloge murale au sondage des pull requests, des tickets et des commits GitHub, au sondage des tickets Linear, et au chaînage après une autre automatisation. La fonctionnalité complète — déclencheurs, filtres, l'écran obligatoire d'injection de prompt sur le texte d'événement, l'historique des exécutions, ainsi que la surface CLI et socket de contrôle qui la reflètent — est documentée dans Automatisation et la CLI.

Où un espace de travail est stocké

Chaque espace de travail est un répertoire sous ~/Library/Application Support/BromureAC/profiles/<uuid>/. Les éléments qui peuvent vous intéresser :

CheminContenu
profile.jsonTous les réglages non secrets.
secrets.encChaque secret, extrait à l'enregistrement et chiffré en AES-GCM avec une clé détenue dans le Keychain (chmod 600).
disk.imgLa copie en lecture-écriture du système d'exploitation de base de l'espace de travail.
home.imgLe /home/ubuntu persistant (modèle de dossier personnel ext4).
checkpoints/Instantanés de retour arrière par amorçage du disque et du dossier personnel.
vm.stateL'instantané RAM enregistré pour un espace de travail suspendu.
agent/, ssh/Matériel de clé SSH côté hôte — la clé privée n'entre jamais dans la VM.

Le modèle de préférences réside en dehors de profiles/ (sous forme de profile-template.json plus un compagnon chiffré), ce qui explique pourquoi il n'apparaît jamais comme un espace de travail dans la barre latérale. Les liaisons persistantes espace-de-travail-vers-MAC sont enregistrées séparément dans profile-macs.json. Les secrets ne sont jamais écrits dans profile.json et jamais copiés dans la VM — l'invité ne détient que des faux, que le proxy hôte échange contre les vraies valeurs sur le fil (voir Identifiants).

Astuce : disk.img, home.img et les instantanés sous checkpoints/ sont des images ext4 Linux. Vous pouvez les parcourir, en extraire des données et même les réparer directement sur votre Mac — sans amorçage de VM — avec le navigateur de fichiers ext4 décrit dans Avancé.

Équivalents en ligne de commande

Chaque action de ce chapitre a un pendant sans interface. Avec l'application (ou son agent d'arrière-plan) en cours d'exécution, bromure-cli vm ls liste les espaces de travail avec leur état en direct, et workspaces create, workspaces edit, workspaces describe et workspaces rm couvrent les flux de création/modification/inspection/suppression — vm est un alias accepté pour le groupe workspaces. Ceux-ci, l'API d'automatisation en loopback et le menu distant SSH qui reflète l'éditeur complet sont documentés dans Automatisation et la CLI.