Installation et premier lancement

Ce chapitre vous accompagne d'un Mac vierge jusqu'à une copie opérationnelle de Bromure Agentic Coding : ce dont l'application a besoin, comment l'installer, ce que fait l'assistant d'accueil au premier lancement, comment l'image de base Linux est téléchargée, vérifiée et tenue à jour, où l'application range ses fichiers, et comment tout supprimer proprement. Ensuite, poursuivez avec le Démarrage rapide.

Configuration requise

PrérequisMinimum
MacApple Silicon (M1 ou plus récent)
macOSmacOS 14 (Sonoma) ou ultérieur
Espace disque libreAu moins 8 GB pour la configuration initiale ; prévoyez environ 6–8 GB pour l'image de base installée, plus l'espace qu'utilise chaque machine
RéseauAccès à Internet pour le téléchargement de l'image de base (une construction locale est disponible en solution de repli ; voir ci-dessous)

Il n'existe pas de version Intel et il n'y en aura pas : l'application exécute ses VM Linux sur Virtualization.framework d'Apple, qui ne prend en charge que les invités ARM64 sur Apple Silicon.

Deux protections d'espace disque sont intégrées :

  • Chaque installation d'image vérifie d'abord qu'au moins 8 GB sont libres sur le volume qui contient le dossier de support de l'application, et s'arrête avec un message clair sinon.
  • Pendant une construction d'image locale, un moniteur arrête la construction avec une erreur explicite de disque plein si l'espace libre descend sous 1 GB, plutôt que de la laisser expirer.

Le navigateur intégré facultatif qui s'ouvre à côté d'une session utilise sa propre image Ubuntu + Chromium, téléchargée séparément la première fois que vous l'installez ; voir Réglages › Navigateur.

Installer l'application

Les versions de production sont publiées sous forme d'image disque signée et notariée (BromureAgenticCoding.dmg) sur bromure.io.

  1. Téléchargez le DMG depuis la page de téléchargements de bromure.io.
  2. Ouvrez le DMG. La fenêtre affiche l'icône de l'application et une flèche pointant vers un raccourci Applications.
  3. Glissez Bromure Agentic Coding sur Applications.
  4. Éjectez le DMG et ouvrez l'application depuis /Applications.

Comme le DMG publié est notarié, Gatekeeper l'ouvre sans avertissement. Si vous avez obtenu un DMG ailleurs que sur bromure.io et que Gatekeeper se plaint, considérez cela comme un signal d'alarme, pas comme un obstacle à contourner.

Premier lancement : l'assistant d'accueil

La première fois que vous ouvrez l'application, une fenêtre de configuration intitulée Bromure Agentic Coding s'ouvre à la place de la fenêtre principale. C'est un assistant en six étapes : une colonne à gauche liste les étapes et coche celles que vous avez terminées, l'étape en cours occupe la partie droite, et ses boutons se trouvent en bas.

L'assistant s'ouvre chaque fois que l'application n'a pas encore d'image de base, ou en a une mais aucune machine (par exemple après une réinstallation, ou quand l'image a été construite en ligne de commande). Si l'image de base est déjà là, l'étape Installation est retirée de la liste. L'assistant ne s'ouvre pas quand l'application est lancée uniquement pour refléter un Mac distant (voir Accès à distance et clients) ou en tant qu'agent headless sans fenêtre.

Les étapes sont Bienvenue, Installation, Identifiants, Sélection, Modèles et Terminé.

1. Bienvenue

L'assistant d'accueil à l'étape Bienvenue : une liste d'étapes à gauche (Bienvenue, Installation, Identifiants, Sélection, Modèles, Terminé) sur une photo de paysage, le titre Bienvenue dans Bromure avec le sous-titre C'est parti., une courte explication, et un bouton Commencer en bas à droite.

La première étape s'intitule Bienvenue dans Bromure — « C'est parti. » Un court paragraphe explique que Bromure exécute vos agents de code dans des VM Linux jetables, et que l'assistant va installer l'image de base puis proposer d'importer les identifiants que vous avez déjà sur ce Mac.

Cliquez sur Commencer (ou appuyez sur Retour) pour lancer l'installation. Si une image de base est déjà présente, le bouton indique Continuer et vous amène directement à l'étape Identifiants.

2. Installation

L'étape Installation exécute l'installation de l'image de base dans l'assistant. Elle s'intitule Préparation de l'image de base — « Téléchargement de l'image et application des correctifs. C'est l'installation unique — ne fermez pas la fenêtre. » Elle affiche :

  • Une ligne d'état qui nomme l'étape en cours. Sur le chemin de téléchargement habituel, vous verrez « Fetching image catalog… », puis des lignes comme « Downloading … (… GB)… », « Verifying … checksum… » et « Expanding … », puis « Customizing the image: … » pendant l'installation des paquets recommandés (voir Ce que fait la configuration initiale), et enfin « Base image ready at … (v201) ».
  • Une barre de progression avec un pourcentage.
  • Une section Sortie console repliée qui montre le journal brut de l'installateur. Le texte est sélectionnable, et Copier copie tout le journal. Seules les 100 dernières lignes restent à l'écran.

En cas d'échec, la ligne d'état devient une erreur rouge et un bouton Fermer apparaît.

Si vous essayez de fermer la fenêtre pendant l'installation, l'application demande Annuler la reconstruction de l'image de base ? — « L'image restera dans un état incomplet. Vous devrez relancer la reconstruction avant de démarrer de nouvelles sessions. » — avec Annuler la reconstruction et Continuer la construction.

Une fois l'installation terminée, l'assistant passe de lui-même à l'étape Identifiants.

Remarque : Pendant l'installation d'une image, le serveur facultatif d'accès à distance par SSH est mis en pause, puis redémarré ensuite (voir Accès à distance et clients).

3. Identifiants

L'étape Identifiants : le titre Importer vos identifiants existants ?, un encadré listant ce que l'analyse lit (config git, mots de passe enregistrés, CLI GitHub et GitLab ; Docker, npm, PyPI, crates.io ; AWS, Kubernetes, DigitalOcean ; connexions et clés d'API Claude, ChatGPT, Grok et Kimi ; clés SSH, fichiers .env), une note indiquant que les vraies valeurs ne quittent jamais ce Mac, et les boutons Plus tard et Analyser ce Mac.

L'assistant propose de rechercher les identifiants et fichiers de configuration que vous utilisez déjà : Importer vos identifiants existants ? — « Bromure peut lire les fichiers de configuration déjà présents sur ce Mac et vous proposer de les importer. » Un encadré liste ce qu'il lit :

  • config git, mots de passe enregistrés, CLI GitHub et GitLab
  • Docker, npm, PyPI, crates.io
  • AWS, Kubernetes, DigitalOcean
  • clés d'API et réglages Claude, ChatGPT, Grok et Kimi
  • clés SSH, fichiers .env

Une note en dessous rappelle la règle qui rend cela sûr : « Les vraies valeurs ne quittent jamais ce Mac. La VM ne reçoit qu'un leurre, que le proxy remplace lors des requêtes sortantes. »

  • Analyser ce Mac lit ces fichiers et passe à l'étape Sélection. Rien n'est importé avant que vous ne confirmiez à cette étape.
  • Plus tard saute l'analyse et n'importe rien. Vous passez directement à l'étape Modèles.

4. Sélection

L'étape Sélection : le titre Voici ce que j'ai trouvé, une liste de résultats avec des cases à cocher où les clés d'accès AWS et la connexion à la CLI GitHub sont cochées, un bouton Ajouter un fichier .env… en bas à gauche, et les boutons Ignorer et Importer 2 en bas à droite.

Voici ce que j'ai trouvé liste chaque fichier trouvé par l'analyse, un par ligne, avec une case à cocher, le chemin du fichier et une courte description de son contenu (par exemple une identité git et le nombre de jetons qu'il contient). « Cochez ce que vous voulez importer. Chaque secret reste sur ce Mac ; la VM ne voit qu'un leurre. » Si rien n'a été trouvé, la liste indique « Aucun fichier de configuration trouvé. »

Outre les fichiers d'identifiants, la liste peut comporter une ligne par agent pour son propre dossier de réglages — par exemple vos commandes slash, sous-agents et fichiers de mémoire Claude Code. Ceux-ci sont copiés tels quels dans la machine ; ils ne contiennent aucun secret.

  • Ajouter un fichier .env… vous permet de choisir un fichier .env à la main. Ses variables sont ajoutées à la liste.
  • Importer n (le bouton indique Continuer quand rien n'est coché) importe les lignes cochées et passe à la suite.
  • Ignorer n'importe rien et passe à la suite.

Ce que vous importez devient le point de départ de votre première machine et de chaque machine que vous créerez ensuite : l'identité et la config git, ainsi que les identifiants de registre, de cloud et git, vont dans les réglages dont part chaque nouvelle machine. Les clés SSH font exception — elles ne sont copiées que dans la première machine. Les clés d'API d'agents trouvées dans les réglages de vos agents sont ajoutées aux réglages globaux des modèles, pour que chaque machine puisse exécuter cet agent.

Remarque : L'analyse ne copie pas les connexions que détiennent les CLI de vos agents sur ce Mac (par exemple la connexion propre de Claude Code). Ces connexions se renouvellent d'elles-mêmes, et en partager une avec Bromure déconnecterait un côté chaque fois que l'autre la renouvelle. Reconnectez-vous plutôt depuis Bromure à l'étape suivante ; cela crée une connexion distincte qui lui est propre.

5. Modèles

L'étape Modèles : le titre Vos modèles au-dessus du tableau des modèles, avec une colonne Fournisseurs à gauche et une colonne Agents à droite, et un bouton Continuer en bas à droite.

Cette étape n'apparaît qu'au premier lancement. Vos modèles — « Connectez-vous aux fournisseurs que vous voulez utiliser, ou collez des clés d'API. Chaque agent utilise alors le modèle par défaut de son fournisseur — choisissez-en un précis à droite si vous le souhaitez, maintenant ou plus tard dans Préférences → Modèles. » En dessous se trouve le même tableau des modèles que dans Préférences › Modèles, avec une colonne Fournisseurs à gauche et une colonne Agents à droite. Tout ce que l'analyse a importé apparaît déjà comme configuré.

Pour un abonnement (Claude, ChatGPT, Grok ou Kimi), choisissez la connexion du fournisseur. La connexion se déroule sur votre Mac, dans une machine temporaire cachée ; vous ne voyez jamais de terminal. Une carte au-dessus du tableau en suit le déroulement :

  • « Préparation d'une machine de connexion privée… », puis des lignes de progression comme « Terminez la connexion dans votre navigateur… ».
  • Quand la connexion du fournisseur n'ouvre pas votre navigateur d'elle-même, la carte affiche un bouton Ouvrir la page de connexion et, pour les connexions par code d'appareil, Votre code : suivi du code à saisir.
  • En cas de réussite, la carte indique Connecté à fournisseur — « Votre compte reste sur ce Mac ; chaque machine peut l'utiliser. » Cliquez sur OK pour la fermer.
  • Annuler arrête la connexion et supprime la machine temporaire.

Une seule connexion à la fois : le tableau et le bouton Continuer sont désactivés jusqu'à ce que la connexion en cours se termine ou soit annulée. Pour les fournisseurs qui utilisent des clés d'API, collez plutôt la clé dans l'entrée du fournisseur. Modèles et fournisseurs explique chaque fournisseur et chaque option de ce tableau.

Vous n'êtes pas obligé de configurer quoi que ce soit ici. Cliquez sur Continuer pour passer à la suite ; un agent sans rien de configuré propose de se connecter la première fois que vous le démarrez.

6. Terminé

L'étape Terminé : une coche verte, le titre Tout est prêt, et un bouton Commencer à utiliser Bromure en bas à droite.

Tout est prêt confirme la configuration. Si vous avez importé des fichiers, un résumé de ce qui a été importé apparaît en dessous ; sinon l'étape indique « Votre première machine est prête — lancez une session et choisissez n'importe quel agent. »

Cliquez sur Commencer à utiliser Bromure. L'assistant se ferme et :

  • Si vous n'avez encore aucune machine, l'application en crée une nommée Espace de travail par défaut, à partir des réglages que l'assistant vient de rassembler. Son agent par défaut est le premier que vous pouvez réellement démarrer : Claude Code, puis Codex, Grok, Kimi Code et Oh My Pi, dans cet ordre ; si aucun n'est configuré, il reste Claude Code, qui propose de se connecter au démarrage.
  • La fenêtre principale s'ouvre sur l'écran de nouvelle session, prête pour votre première session. Le Démarrage rapide prend le relais à partir d'ici.

Par la suite, l'application s'ouvre directement sur la fenêtre principale.

Astuce : La partie identifiants de l'assistant reste disponible plus tard. Maintenez Option en cliquant sur le + à côté de Machines virtuelles dans la barre latérale pour créer une nouvelle machine avec l'assistant : il démarre à l'étape Identifiants, saute l'étape Modèles et ouvre les réglages de la nouvelle machine à la fin. L'élément de menu de l'application Nouvel espace de travail depuis mes configurations… (⇧⌥⌘N) fait la même chose.

Ce que fait la configuration initiale

L'étape Installation produit l'image de base : un disque sparse de 24 GB contenant Ubuntu 24.04 (« noble ») avec démarrage EFI/GRUB, à partir duquel chaque machine est clonée. Il y a deux façons de la produire ; le téléchargement est préféré et la construction locale est la solution de repli. Les deux écrivent dans des fichiers temporaires .partial et mettent le résultat en place en une seule étape, de sorte qu'une installation interrompue ne laisse jamais une image à moitié écrite à la place d'une image fonctionnelle.

Le téléchargement de l'image préconstruite

Le chemin préféré télécharge une image préconstruite publiée chaque semaine sur https://dl.bromure.io :

  1. Catalogue. L'application récupère le catalogue d'images signé de sa version d'image, à https://dl.bromure.io/images/201/img-catalog.json. Le catalogue nomme l'image actuelle (ID, version, SHA-256, tailles) et liste les étapes de configuration. Il porte une signature ed25519 réalisée avec la même clé que celle qui signe les mises à jour de l'application ; la signature couvre l'identité de l'image, sa somme de contrôle et chaque commande de configuration. Les catalogues non signés ou invalides sont refusés, et un catalogue signé avant un catalogue déjà accepté par l'application n'est jamais utilisé (protection contre le retour en arrière).
  2. Téléchargement. L'image compressée est téléchargée et son SHA-256 vérifié. Un téléchargement échoué est réessayé jusqu'à 3 fois, en récupérant à nouveau le catalogue entre les tentatives.
  3. Expansion. L'image est décompressée dans base.img.partial : 24 GB de taille, mais seulement environ 6–8 GB d'espace disque réel.
  4. Personnalisation de l'image. L'application télécharge un petit ensemble d'outils d'image publiés avec l'image et les démarre dans une VM auxiliaire temporaire, qui exécute les étapes de configuration du catalogue dans l'image (voir la section suivante). La progression affiche « Customizing the image: waiting for the prompt… », « …: installing packages… », et ainsi de suite.
  5. Mise en place. Un nouveau magasin de variables EFI est créé, et base.img, efivars.bin, base.version et image-state.json sont mis en place ensemble.

Étapes de configuration : les paquets recommandés

L'image publiée doit être légalement redistribuable, elle ne contient donc que des logiciels libres (Node.js, Docker, kitty, gh, glab, kubectl, doctl, awscli, azure-cli, et plus encore). Tout le reste est déclaré comme étapes de configuration signées dans le catalogue et installé sur votre Mac, dans votre copie de l'image. Les étapes fournies avec la version 5.0.0 sont :

OrdreÉtapeMode d'installation
10Claude Code (Anthropic)npm, encapsulé dans le scanner de chaîne d'approvisionnement Socket.dev (npx --yes @socketsecurity/cli npm install -g --silent @anthropic-ai/claude-code)
20Codex CLI (OpenAI)npm, encapsulé par Socket.dev
30Grok CLI (x.ai)Le script d'installation de l'éditeur
35Kimi Code CLI (Moonshot AI)npm, encapsulé par Socket.dev
37Oh My Pi CLI (omp) + environnement d'exécution bunLe script d'installation de bun, puis omp via npm, encapsulé par Socket.dev
40Google Cloud SDK (gcloud)gcloud, gsutil, bq

Sur une nouvelle installation, toutes les étapes fournies s'exécutent sans invite supplémentaire : lancer la configuration depuis l'assistant (ou exécuter bromure-ac init) constitue votre consentement. Les étapes publiées plus tard nécessitent votre approbation explicite via l'invite Nouveaux paquets recommandés décrite sous Mises à jour de l'image de base. Comme la signature du catalogue couvre la commande de chaque étape, un serveur de téléchargement compromis ne peut pas changer ce qui s'exécute en tant que root dans votre image.

La solution de repli par construction locale

Si le téléchargement échoue pour une raison côté téléchargement — vous êtes hors ligne, le serveur est indisponible, ou la somme de contrôle ou l'expansion échoue — l'application affiche Échec du téléchargement de l'image, avec l'erreur et « Bromure peut construire l'image localement à la place (~10 min, même résultat). », et les boutons Construire localement et Annuler. Elle ne bascule jamais silencieusement vers une construction locale. (La commande bromure-ac init, en revanche, bascule automatiquement.)

La construction locale produit la même image sur votre Mac :

  1. Télécharge les outils de construction d'image et les met en cache dans le dossier de support.
  2. Crée un nouveau disque sparse de 24 GB.
  3. Démarre une VM de construction à usage unique (4 vCPU, 4 GB de RAM) qui installe Ubuntu noble, l'outillage libre et GRUB.
  4. Applique les mêmes étapes de configuration du catalogue que le chemin de téléchargement.

La progression affiche « Building the image: downloading tools… », « Allocating 24GB sparse disk… », « Building the image: starting… », et ainsi de suite. Sur ce chemin, la barre de progression suit le journal de l'installateur et s'arrête à 97 % jusqu'au saut final « Base image ready ».

La construction locale est conçue pour résister aux VPN : tous les téléchargements de paquets passent par un proxy côté hôte, le MTU réseau de la VM de construction est abaissé avant tout téléchargement, une absence de réseau arrête la construction tôt, et un plantage du noyau invité déclenche une nouvelle tentative automatique sur un disque neuf. Deux échappatoires associées :

  • Si la VM de construction n'obtient pas d'adresse réseau, la construction échoue avec Problème réseau pendant la construction de l'image de base, qui propose Réparer et réessayer (redémarre les services réseau de macOS ; demande votre mot de passe administrateur) ou Annuler.
  • Sur les VPN qui perdent les gros paquets (par exemple WireGuard à un MTU de 1420), vous pouvez fixer vous-même le MTU de la VM de construction : defaults write io.bromure.agentic-coding vm.mtu -int 1400.

Vous pouvez aussi choisir délibérément la construction locale à tout moment : Reconstruire l'image de base… › Reconstruire localement dans le menu de l'application, ou bromure-ac init --build-local.

Points de terminaison réseau utilisés pendant la configuration

Pour les administrateurs de pare-feu et de proxy, l'installation communique avec :

Point de terminaisonObjectif
https://dl.bromure.ioLe catalogue d'images (images/201/img-catalog.json), les téléchargements d'images et les outils d'image
Miroirs de paquets et sites des éditeursPaquets Ubuntu, registre npm, Socket.dev et scripts d'installation des éditeurs, récupérés via le proxy côté hôte de l'application
https://bromure.io/api/v1/release-agentic-codingVérification des mises à jour de l'application (ne fait pas partie de la configuration de l'image)

L'installation elle-même n'ouvre aucun port réseau en écoute ; le proxy de paquets côté hôte utilisé pendant les constructions n'écoute que sur un port localhost temporaire.

Durée de configuration et utilisation du disque

CheminDurée typiqueNotes
Téléchargement préconstruitLe temps de téléchargement de quelques GB, plus l'expansion, plus quelques minutes pour les étapes de configurationDépend surtout de votre connexion
Construction localeEnviron 10 minutesS'arrête au bout de 45 minutes au maximum

Utilisation du disque :

  • Pour démarrer : au moins 8 GB libres sur le volume hébergeant ~/Library/Application Support/BromureAC/.
  • Après l'installation : l'image de base occupe environ 6–8 GB d'espace réel (24 GB de taille — les parties inutilisées d'un disque sparse ne coûtent rien).
  • Par machine : le disque système de chaque machine démarre comme un clone APFS en copie sur écriture de l'image de base ; il ne coûte presque rien au départ et ne grandit qu'à mesure que la machine écrit des données. Son disque personnel grandit de la même façon.

La configuration a lieu une fois par version de l'image de base.

L'outil en ligne de commande

L'application n'installe rien d'elle-même en dehors de votre compte utilisateur. Pour piloter Bromure depuis le Terminal, choisissez Installer l'outil en ligne de commande… dans le menu de l'application (menu Bromure Agentic Coding). L'application demande Installer l'outil en ligne de commande « bromure-cli » ? — « Cela crée un lien symbolique dans /usr/local/bin/bromure-cli pour piloter Bromure depuis le terminal (vm, exec, trace, …). Votre mot de passe administrateur sera demandé une fois. » Cliquez sur Installer et saisissez votre mot de passe administrateur ; aucun assistant d'arrière-plan n'est installé.

L'élément de menu ne fonctionne que depuis le bundle de l'application installée. La référence complète des commandes se trouve dans CLI, API et MCP.

Où tout est stocké

Tout ce que l'application écrit réside dans votre compte utilisateur ; rien n'est installé à l'échelle du système sauf le lien facultatif bromure-cli.

CheminContenu
~/Library/Application Support/BromureAC/Le dossier de support de l'application
…/BromureAC/base.imgL'image de base Ubuntu (24 GB de taille, ~6–8 GB sur disque)
…/BromureAC/efivars.binLe magasin de variables EFI de l'image de base
…/BromureAC/base.versionL'estampille de version de l'image installée (par exemple 201 ou 201.1)
…/BromureAC/image-state.jsonLa provenance de l'image, et les étapes de configuration déjà appliquées
…/BromureAC/img-catalog.jsonCopie en cache du catalogue d'images
…/BromureAC/profiles/Un dossier par machine : profile.json, le disque système disk.img, le disque personnel home.img, les clés SSH, les points de contrôle et l'état sauvegardé
…/BromureAC/sessions.jsonVos sessions : titres, agents, dossiers et états
…/BromureAC/transcripts/Une copie locale de la conversation de chaque session, pour pouvoir la lire quand sa machine est éteinte
…/BromureAC/rooms.jsonVos salles
…/BromureAC/delegations.jsonLe travail que les agents se sont confié les uns aux autres
…/BromureAC/models.encLes réglages globaux des modèles (chiffrés)
…/BromureAC/claude-subscription.enc, codex-subscription.enc, grok-subscription.enc, kimi-subscription.encLes connexions aux abonnements (chiffrées)
…/BromureAC/profile-template.encLes secrets du modèle Défauts dont part chaque nouvelle machine (chiffrés)
…/BromureAC/security-timeline/La chronologie de sécurité, un fichier par jour, conservée 90 jours
…/BromureAC/kube/Les clusters Kubernetes, les registres et le connecteur de messagerie, avec leurs disques de VM
…/BromureAC/pii/Les données de la protection des données personnelles
…/BromureAC/dhcp-leases.sqliteLes baux d'adresses, pour que chaque machine garde en général son adresse IP
…/BromureAC/browser/L'image du navigateur intégré, s'il est installé
…/BromureAC/base.img.partial, base.img.gz.partial, efivars.partialFichiers d'installation temporaires ; si vous les voyez, une installation est en cours ou a été interrompue
~/Library/Logs/BromureAC/bromure-ac.logLe journal de l'application
~/Library/LaunchAgents/io.bromure.agentic-coding.boot.plistL'agent de démarrage à l'ouverture de session, écrit quand une machine a Démarrer cette VM à l'ouverture de session activé
/usr/local/bin/bromure-cliLe lien facultatif de l'outil en ligne de commande
Domaine UserDefaults io.bromure.agentic-codingRéglages de l'application

Deux choses résident ailleurs, à dessein :

  • La clé maîtresse des identifiants est conservée dans le trousseau de protection des données de macOS, marquée cet appareil uniquement, si bien qu'elle ne quitte jamais le Mac. Les secrets sur disque sont du texte chiffré AES-256-GCM ; voir Identifiants.
  • Le bundle de l'application contient un démon système (io.bromure.fatclient-tunnel) utilisé quand vous reflétez un Mac distant. Il n'est enregistré qu'en cas de besoin, et le premier enregistrement fait apparaître un interrupteur d'approbation sous Réglages Système › Général › Éléments de connexion ; voir Accès à distance et clients.

bromure-ac info affiche à tout moment l'estampille de version, la taille et le chemin de l'image installée.

Mises à jour de l'image de base

Estampilles de version

L'image installée enregistre sa version dans base.version. La version 5.0.0 de l'application utilise l'image de base 201. Toute reconstruction, tout nouveau téléchargement ou tout amendement à la même version ajoute une révision décimale (201 → 201.1 → 201.2). image-state.json enregistre la provenance de l'image et les étapes de configuration déjà appliquées.

L'application cherche les mises à jour dans le catalogue de sa propre version d'image, si bien qu'une application plus ancienne ne récupère jamais une image faite pour une plus récente. Les images préconstruites sont republiées chaque semaine avec des paquets Ubuntu à jour, mais ces republications hebdomadaires gardent le même numéro de version : on ne vous demande donc pas de mettre à jour chaque semaine.

L'invite de mise à jour

Quand l'image sur votre Mac est plus ancienne que la version attendue par l'application, ou que le catalogue publie une version plus récente, l'application affiche Mise à jour de l'image de base disponible au lancement : « Votre image de base est en version X alors que la version Y est disponible. L'image actuelle fonctionne toujours — la mise à jour télécharge la nouvelle image préconstruite (quelques Go ; reconstruction locale en secours) et réapplique les paquets recommandés. »

  • Mettre à jour maintenant lance la réinstallation, en commençant par le téléchargement.
  • Plus tard ferme l'invite jusqu'au prochain lancement. L'image actuelle continue de fonctionner dans les deux cas.

Une image plus récente que ce qu'attend l'application fonctionne quand même et ne déclenche pas l'invite.

Mettre à niveau chaque machine

Installer une nouvelle image de base ne change pas vos machines existantes : chaque machine garde le disque système dont elle a été clonée. La prochaine fois que vous démarrez une machine dont le disque provient d'une base plus ancienne, l'application demande Une image de base plus récente est disponible. — « Cet espace de travail utilise la base v201 ; la v201.1 est sur le disque. Le mettre à niveau maintenant ? La mise à niveau réinitialise le disque de l'espace de travail — tout ce qui a été installé dans la VM est effacé ; votre dossier de projet n'est pas touché. »

  • Oui, mettre à jour réinitialise le disque système de la machine sur la nouvelle base, puis la démarre. Le disque personnel (et tout ce qui se trouve dans /home/ubuntu) est conservé.
  • Non démarre la machine telle quelle et ne redemande pas avant l'installation d'une autre image de base.
  • Me le rappeler plus tard démarre la machine telle quelle et redemande au premier démarrage après un jour.

La réponse est mémorisée pour chaque machine.

Nouveaux paquets recommandés

Quand le catalogue liste des étapes de configuration pas encore appliquées à votre image, l'application demande Nouveaux paquets recommandés au lancement, en les listant : « De nouveaux paquets sont recommandés à l'installation : … Bromure les installe dans l'image de base (quelques minutes, dans la VM d'arrière-plan). Les espaces de travail existants continuent de tourner ; l'invite de dérive de chacun proposera une réinitialisation pour les récupérer. »

  • Installer applique les étapes à un clone en copie sur écriture de base.img et met l'image amendée en place une fois terminé ; les machines en marche continuent de tourner. L'estampille de version reçoit une révision décimale (par exemple 201 → 201.1), si bien que chaque machine propose ensuite la mise à niveau décrite ci-dessus.
  • Plus tard redemande au prochain lancement.

Rien ne s'exécute sans ce consentement — les étapes de configuration s'exécutent en tant que root dans l'image de base.

Reconstruire à la main

Pour réinstaller l'image à tout moment, choisissez Reconstruire l'image de base… dans le menu de l'application. Elle demande Mettre à jour l'image de base ? et propose Télécharger l'image préconstruite, Reconstruire localement et Annuler. Les disques des machines existantes ne sont pas touchés. L'ancienne image reste utilisée jusqu'à ce que la nouvelle soit complète, vous pouvez donc continuer à démarrer des machines pendant la reconstruction. Les équivalents en ligne de commande sont bromure-ac init (téléchargement d'abord) et bromure-ac init --build-local.

Un téléchargement conserve une copie de l'image publiée avec les paquets recommandés installés (stock.img, qui partage ses blocs disque avec l'image de base). Tant que le catalogue désigne toujours la même image, Télécharger l'image préconstruite repart de cette copie : il saute le téléchargement et l'installation des agents, applique uniquement les paquets publiés depuis et exécute votre script de personnalisation. Réessayer ou réviser un script de personnalisation est donc rapide. Pour repartir de zéro malgré tout — par exemple pour récupérer des versions plus récentes des agents — activez Retélécharger et réinstaller les agents, ou exécutez bromure-ac init --fresh.

Maintenir l'application à jour

L'application se met à jour elle-même avec Sparkle. Elle vérifie https://bromure.io/api/v1/release-agentic-coding une fois par jour, et les mises à jour sont vérifiées avec la même clé publique que celle qui signe les catalogues d'images. Pour vérifier tout de suite, choisissez Rechercher des mises à jour… dans le menu de l'application, sous À propos. (Les versions de développement n'ont pas cet élément.)

Les mises à jour de l'application et celles de l'image de base sont distinctes : mettre à jour l'application n'entraîne une mise à jour de l'image que lorsque la nouvelle version de l'application attend une image de base plus récente.

Passer à un nouveau Mac

Il n'existe pas d'assistant de migration intégré. Le chemin recommandé est une installation propre plus une copie des données de vos machines :

  1. Sur le nouveau Mac, installez l'application et suivez l'assistant. Télécharger à nouveau l'image de base est plus rapide et plus propre que de la copier.
  2. Quittez l'application sur les deux Mac.
  3. Copiez ~/Library/Application Support/BromureAC/profiles/ de l'ancien Mac au même endroit sur le nouveau. Chaque sous-dossier est une machine : ses réglages (profile.json), son disque système (disk.img), son disque personnel (home.img — vos dépôts clonés, caches et historique du shell) et ses clés SSH. Pour conserver aussi votre liste de sessions et vos conversations, copiez également sessions.json, rooms.json et le dossier transcripts/.
  4. Ouvrez l'application sur le nouveau Mac. Vos machines apparaissent sous Machines virtuelles. Si une machine a été clonée depuis une autre image de base que celle installée, elle propose la mise à niveau décrite ci-dessus ; choisissez Non pour garder son disque actuel.

Trois choses ne sont pas transférées, à dessein :

  • Identifiants. La clé maîtresse qui chiffre les secrets stockés est conservée dans le trousseau de protection des données du Mac et marquée cet appareil uniquement ; les secrets chiffrés et les connexions de l'ancien Mac ne peuvent donc pas être lus sur le nouveau. Leurs détails non secrets dans chaque profile.json survivent ; ressaisissez vos clés dans le panneau Identifiants de chaque machine et reconnectez-vous dans Préférences › Modèles (voir Identifiants).
  • Inscription entreprise. Le certificat d'identité de l'installation appartient à une seule installation ; inscrivez à nouveau le nouveau Mac (voir Entreprise).
  • Réglages de l'application dans le domaine de préférences io.bromure.agentic-coding, à moins que vous ne les copiiez vous-même.

Astuce : Les disques des machines sont sparse, et les économies de la copie sur écriture sont perdues lors d'une simple copie réseau — une machine qui occupe quelques GB sur l'ancien Mac peut atteindre toute sa taille écrite en chemin. Utilisez une copie qui gère le sparse (par exemple rsync -aS) et vérifiez d'abord l'espace libre sur le nouveau Mac.

Désinstallation complète

Pour réinitialiser uniquement l'image de base tout en conservant l'application et vos machines, exécutez bromure-ac reset (ajoutez --yes pour ignorer la confirmation). La commande supprime base.img, efivars.bin, base.version, image-state.json et le téléchargement conservé (stock.img, stock-state.json), si bien que le prochain lancement relance la configuration. Elle ne touche jamais à vos machines.

Il n'y a pas de désinstallateur intégré. Pour tout supprimer :

  1. Quittez l'application (et tout agent headless : vérifiez avec pgrep -fl bromure-ac).

  2. Glissez Bromure Agentic Coding de /Applications vers la Corbeille.

  3. Supprimez le dossier de support — image de base, chaque machine et ses disques, sessions, caches et la CA propre à l'installation :

    rm -rf ~/Library/Application\ Support/BromureAC
    
  4. Supprimez l'agent de démarrage à l'ouverture de session, s'il est présent :

    rm -f ~/Library/LaunchAgents/io.bromure.agentic-coding.boot.plist
    
  5. Supprimez le dossier des journaux :

    rm -rf ~/Library/Logs/BromureAC
    
  6. Retirez les entrées de l'application sous Réglages Système › Général › Éléments de connexion et extensions (l'interrupteur d'approbation du démon de mise en miroir à distance, si vous l'avez déjà activé).

  7. Supprimez l'outil en ligne de commande, si vous l'avez installé :

    sudo rm -f /usr/local/bin/bromure-cli
    
  8. Facultativement, effacez les réglages de l'application :

    defaults delete io.bromure.agentic-coding
    

Avertissement : L'étape 3 supprime définitivement les disques de chaque machine — dépôts clonés, travail non commité, caches de paquets, historique du shell — ainsi que la conversation de chaque session. Poussez ou exportez d'abord tout ce que vous voulez garder.

La clé maîtresse des identifiants dans le trousseau reste en place une fois son texte chiffré disparu. Elle est inoffensive, mais vous pouvez la supprimer dans Trousseaux d'accès en recherchant io.bromure.agentic-coding.master-key.