Installation & erster Start
Dieses Kapitel begleitet Sie von einem leeren Mac bis zu einer funktionierenden Kopie von Bromure Agentic Coding: was die App benötigt, wie Sie sie installieren, was der Einrichtungsassistent beim ersten Start tut, wie das Linux-Basis-Image heruntergeladen, geprüft und aktuell gehalten wird, wo die App ihre Dateien ablegt und wie Sie alles sauber entfernen. Wenn Sie hier fertig sind, fahren Sie mit dem Schnellstart fort.
Systemanforderungen
| Voraussetzung | Minimum |
|---|---|
| Mac | Apple Silicon (M1 oder neuer) |
| macOS | macOS 14 (Sonoma) oder neuer |
| Freier Speicherplatz | Mindestens 8 GB für die Ersteinrichtung; planen Sie etwa 6–8 GB für das installierte Basis-Image ein, plus den Platz, den jede Maschine belegt |
| Netzwerk | Internetzugang für den Download des Basis-Images (ein lokaler Build steht als Fallback zur Verfügung; siehe unten) |
Es gibt keinen Intel-Build und wird auch keinen geben: Die App führt ihre Linux-VMs auf Apples Virtualization.framework aus, das nur ARM64-Gäste auf Apple Silicon unterstützt.
Zwei Vorkehrungen zum Festplattenplatz sind integriert:
- Jede Image-Installation prüft zunächst, dass auf dem Volume mit dem Support-Ordner der App mindestens 8 GB frei sind, und bricht andernfalls mit einer klaren Meldung ab.
- Während eines lokalen Image-Builds stoppt ein Monitor den Build mit einem ausdrücklichen „Festplatte voll“-Fehler, wenn der freie Speicher unter 1 GB fällt, statt ihn in einen Timeout laufen zu lassen.
Der optionale eingebettete Browser, der sich neben einer Sitzung öffnet, nutzt ein eigenes Ubuntu-+-Chromium-Image, das beim ersten Installieren separat heruntergeladen wird; siehe Einstellungen › Browser.
Die App installieren
Release-Builds werden als signiertes, notarisiertes Disk-Image (BromureAgenticCoding.dmg) unter bromure.io veröffentlicht.
- Laden Sie die DMG von der Download-Seite von bromure.io herunter.
- Öffnen Sie die DMG. Das Fenster zeigt das App-Symbol und einen Pfeil, der auf eine Verknüpfung Programme zeigt.
- Ziehen Sie Bromure Agentic Coding auf Programme.
- Werfen Sie die DMG aus und öffnen Sie die App aus
/Applications.
Da die veröffentlichte DMG notarisiert ist, öffnet Gatekeeper sie ohne Warnungen. Wenn Sie eine DMG von einer anderen Quelle als bromure.io bezogen haben und Gatekeeper sich beschwert, betrachten Sie das als Warnsignal, nicht als etwas, das es zu umgehen gilt.
Erster Start: der Einrichtungsassistent
Wenn Sie die App zum ersten Mal öffnen, erscheint statt des Hauptfensters ein Einrichtungsfenster mit dem Titel Bromure Agentic Coding. Es ist ein Assistent mit sechs Schritten: Eine Spalte links listet die Schritte auf und hakt die erledigten ab, der aktuelle Schritt füllt die rechte Seite, und seine Schaltflächen liegen unten.
Der Assistent öffnet sich immer dann, wenn die App noch kein Basis-Image hat oder zwar ein Basis-Image, aber keine Maschine (etwa nach einer Neuinstallation oder wenn das Image über die Befehlszeile gebaut wurde). Ist das Basis-Image bereits vorhanden, fehlt der Schritt Installation in der Liste. Der Assistent öffnet sich nicht, wenn die App nur zum Spiegeln eines entfernten Macs gestartet wird (siehe Fernzugriff & Clients) oder als fensterloser Headless-Agent.
Die Schritte heißen Willkommen, Installation, Anmeldedaten, Auswahl, Modelle und Fertig.
1. Willkommen
Der erste Schritt lautet Willkommen bei Bromure — „Los geht’s.“ Ein kurzer Absatz erklärt, dass Bromure Ihre Coding-Agenten in Wegwerf-Linux-VMs ausführt und dass der Assistent das Basis-Image installiert und dann anbietet, die Zugangsdaten zu übernehmen, die Sie bereits auf diesem Mac haben.
Klicken Sie auf Loslegen (oder drücken Sie den Zeilenschalter), um die Installation zu starten. Ist bereits ein Basis-Image vorhanden, heißt die Schaltfläche Fortfahren und führt Sie direkt zum Schritt Anmeldedaten.
2. Installation
Der Schritt Installation führt die Installation des Basis-Images im Assistenten aus. Er trägt die Überschrift Basis-Image wird eingerichtet — „Das Image wird geladen und gepatcht. Das ist die einmalige Installation – bitte schließen Sie das Fenster nicht.“ Er zeigt:
- Eine Statuszeile, die die aktuelle Phase nennt. Auf dem normalen Download-Pfad sehen Sie „Fetching image catalog…“, dann Zeilen wie „Downloading … (… GB)…“, „Verifying … checksum…“ und „Expanding …“, dann „Customizing the image: …“, während die empfohlenen Pakete installiert werden (siehe Was die Ersteinrichtung tut), und schließlich „Base image ready at … (v201)“.
- Einen Fortschrittsbalken mit Prozentangabe.
- Einen eingeklappten Bereich Konsolenausgabe, der das rohe Protokoll des Installers zeigt. Der Text lässt sich markieren, und Kopieren kopiert das ganze Protokoll. Nur die letzten 100 Zeilen bleiben auf dem Bildschirm.
Schlägt etwas fehl, wird die Statuszeile zu einem roten Fehler, und eine Schaltfläche Schließen erscheint.
Wenn Sie versuchen, das Fenster während der Installation zu schließen, fragt die App Neuaufbau des Basis-Images abbrechen? — „Das Image bleibt in einem unvollständigen Zustand. Sie müssen den Neuaufbau erneut ausführen, bevor Sie neue Sitzungen starten.“ — mit Neuaufbau abbrechen und Weiterbauen.
Ist die Installation abgeschlossen, wechselt der Assistent von selbst zum Schritt Anmeldedaten.
Hinweis: Während eine Image-Installation läuft, wird der optionale SSH-Fernzugriffsserver pausiert und danach wieder gestartet (siehe Fernzugriff & Clients).
3. Anmeldedaten
Der Assistent bietet an, nach den Zugangsdaten und Konfigurationsdateien zu suchen, die Sie bereits verwenden: Vorhandene Anmeldedaten importieren? — „Bromure kann die Konfigurationsdateien auf diesem Mac lesen und deren Übernahme anbieten.“ Ein Kasten listet auf, was gelesen wird:
- git-Konfiguration, gespeicherte Passwörter, GitHub- & GitLab-CLIs
- Docker, npm, PyPI, crates.io
- AWS, Kubernetes, DigitalOcean
- API-Schlüssel und Einstellungen von Claude, ChatGPT, Grok & Kimi
- SSH-Schlüssel, .env-Dateien
Ein Hinweis darunter wiederholt die Regel, die das sicher macht: „Die echten Werte verlassen diesen Mac nie. Die VM erhält nur eine Attrappe, die der Proxy bei ausgehenden Anfragen zurücktauscht.“
- Diesen Mac durchsuchen liest diese Dateien und wechselt zum Schritt Auswahl. Importiert wird erst, wenn Sie dort bestätigen.
- Später überspringt den Scan und importiert nichts. Sie gelangen direkt zum Schritt Modelle.
4. Auswahl
Das habe ich gefunden listet jede Datei, die der Scan gefunden hat, eine pro Zeile, mit einem Kontrollkästchen, dem Pfad der Datei und einer kurzen Beschreibung ihres Inhalts (zum Beispiel eine git-Identität und die Anzahl der enthaltenen Tokens). „Wählen Sie aus, was übernommen werden soll. Jedes Geheimnis bleibt auf diesem Mac; die VM sieht immer nur eine Attrappe.“ Wurde nichts gefunden, zeigt die Liste „Keine Konfigurationsdateien gefunden.“
Neben Dateien mit Zugangsdaten kann die Liste pro Agent eine Zeile für dessen eigenen Einstellungsordner enthalten — zum Beispiel Ihre Claude-Code-Slash-Befehle, Subagenten und Memory-Dateien. Diese werden unverändert in die Maschine kopiert; sie enthalten keine Geheimnisse.
- .env-Datei hinzufügen… lässt Sie eine
.env-Datei von Hand auswählen. Ihre Variablen werden der Liste hinzugefügt. - n importieren (die Schaltfläche heißt Fortfahren, wenn nichts angehakt ist) importiert die angehakten Zeilen und geht weiter.
- Überspringen importiert nichts und geht weiter.
Was Sie importieren, wird zum Ausgangspunkt Ihrer ersten Maschine und jeder Maschine, die Sie später erstellen: git-Identität und -Konfiguration sowie Registry-, Cloud- und git-Zugangsdaten landen in den Einstellungen, mit denen jede neue Maschine beginnt. SSH-Schlüssel sind die Ausnahme — sie werden nur in die erste Maschine kopiert. Agenten-API-Schlüssel aus den Einstellungen Ihrer Agenten werden den globalen Modelleinstellungen hinzugefügt, sodass jede Maschine diesen Agenten ausführen kann.
Hinweis: Der Scan kopiert nicht die Anmeldungen, die die CLIs Ihrer Agenten auf diesem Mac halten (zum Beispiel die eigene Anmeldung von Claude Code). Diese Anmeldungen erneuern sich selbst, und würde man eine mit Bromure teilen, wäre jedes Mal eine Seite abgemeldet, wenn die andere sie erneuert. Melden Sie sich stattdessen im nächsten Schritt aus Bromure erneut an; das erzeugt eine eigene, separate Anmeldung.
5. Modelle
Dieser Schritt erscheint nur beim ersten Start. Ihre Modelle — „Melden Sie sich bei den gewünschten Anbietern an oder fügen Sie API-Schlüssel ein. Jeder Agent nutzt dann das Standardmodell seines Anbieters — wählen Sie rechts bei Bedarf ein bestimmtes, jetzt oder später unter Einstellungen → Modelle.“ Darunter liegt dasselbe Modelle-Board wie unter Einstellungen › Modelle, mit einer Spalte Anbieter links und einer Spalte Agenten rechts. Alles, was der Scan importiert hat, erscheint bereits als eingerichtet.
Für ein Abonnement (Claude, ChatGPT, Grok oder Kimi) wählen Sie die Anmeldung des Anbieters. Die Anmeldung läuft auf Ihrem Mac, in einer verborgenen temporären Maschine; ein Terminal sehen Sie nie. Eine Karte über dem Board begleitet sie:
- „Private Anmeldemaschine wird eingerichtet…“, dann Fortschrittszeilen wie „Schließen Sie die Anmeldung in Ihrem Browser ab…“.
- Öffnet die Anmeldung des Anbieters Ihren Browser nicht von selbst, zeigt die Karte eine Schaltfläche Anmeldeseite öffnen und bei Gerätecode-Anmeldungen Ihr Code: gefolgt vom einzugebenden Code.
- Bei Erfolg zeigt die Karte Angemeldet bei Anbieter — „Ihr Konto bleibt auf diesem Mac; jede Maschine kann es nutzen.“ Klicken Sie auf OK, um sie zu schließen.
- Abbrechen stoppt die Anmeldung und entfernt die temporäre Maschine.
Es läuft immer nur eine Anmeldung: Das Board und die Schaltfläche Fortfahren sind deaktiviert, bis die aktuelle Anmeldung abgeschlossen oder abgebrochen ist. Bei Anbietern mit API-Schlüsseln fügen Sie den Schlüssel stattdessen in den Eintrag des Anbieters ein. Modelle & Anbieter erklärt jeden Anbieter und jede Option dieses Boards.
Sie müssen hier nichts einrichten. Klicken Sie auf Fortfahren, um weiterzugehen; ein Agent ohne jede Einrichtung bietet beim ersten Start die Anmeldung an.
6. Fertig
Alles bereit bestätigt die Einrichtung. Haben Sie Dateien importiert, erscheint darunter eine Zusammenfassung des Übernommenen; andernfalls lautet der Schritt „Ihre erste Maschine ist bereit – starten Sie eine Sitzung und wählen Sie einen beliebigen Agenten.“
Klicken Sie auf Bromure starten. Der Assistent schließt sich, und:
- Haben Sie noch keine Maschine, erstellt die App eine namens Standard-Arbeitsbereich aus den Einstellungen, die der Assistent gerade gesammelt hat. Ihr Standardagent ist der erste, den Sie tatsächlich starten können: Claude Code, dann Codex, Grok, Kimi Code und Oh My Pi, in dieser Reihenfolge; ist keiner eingerichtet, bleibt es Claude Code, das beim Start die Anmeldung anbietet.
- Das Hauptfenster öffnet sich auf dem Bildschirm für neue Sitzungen, bereit für Ihre erste Sitzung. Der Schnellstart setzt hier an.
Von da an öffnet die App direkt das Hauptfenster.
Tipp: Der Zugangsdaten-Teil des Assistenten ist auch später verfügbar. Halten Sie die Wahltaste gedrückt, während Sie in der Seitenleiste auf das + neben Virtuelle Maschinen klicken, um eine neue Maschine mit dem Assistenten zu erstellen: Er beginnt beim Schritt Anmeldedaten, überspringt den Schritt Modelle und öffnet am Ende die Einstellungen der neuen Maschine. Der Menüpunkt Neuer Workspace aus meinen Konfigurationen… (⇧⌥⌘N) im App-Menü tut dasselbe.
Was die Ersteinrichtung macht
Der Schritt Installation erzeugt das Basis-Image: einen 24 GB großen Sparse-Datenträger mit Ubuntu 24.04 („noble“) und EFI/GRUB-Boot, von dem jede Maschine geklont wird. Es gibt zwei Wege, es zu erzeugen; der Download wird bevorzugt, der lokale Build ist der Fallback. Beide schreiben in temporäre .partial-Dateien und setzen das Ergebnis in einem Schritt an seinen Platz, sodass eine unterbrochene Installation nie ein halb geschriebenes Image an die Stelle eines funktionierenden setzt.
Der Download des vorgefertigten Images
Der bevorzugte Pfad lädt ein vorgefertigtes Image herunter, das wöchentlich unter https://dl.bromure.io veröffentlicht wird:
- Katalog. Die App ruft den signierten Image-Katalog für ihre Image-Version ab, unter
https://dl.bromure.io/images/201/img-catalog.json. Der Katalog benennt das aktuelle Image (ID, Version, SHA-256, Größen) und listet die Einrichtungsschritte auf. Er trägt eine ed25519-Signatur mit demselben Schlüssel, der App-Updates signiert; die Signatur umfasst die Identität des Images, seine Prüfsumme und jeden Einrichtungsbefehl. Unsignierte oder ungültige Kataloge werden abgelehnt, und ein Katalog, der früher signiert wurde als einer, den die App bereits akzeptiert hat, wird nie verwendet (Rollback-Schutz). - Download. Das komprimierte Image wird heruntergeladen und seine SHA-256 geprüft. Ein fehlgeschlagener Download wird bis zu 3-mal wiederholt, wobei der Katalog zwischen den Versuchen neu abgerufen wird.
- Entpacken. Das Image wird in
base.img.partialentpackt: 24 GB groß, aber nur etwa 6–8 GB echter Speicherplatz. - Image-Anpassung. Die App lädt einen kleinen Satz von Image-Werkzeugen herunter, die mit dem Image veröffentlicht werden, und startet sie in einer temporären Helfer-VM, die die Einrichtungsschritte des Katalogs im Image ausführt (siehe nächster Abschnitt). Der Fortschritt zeigt „Customizing the image: waiting for the prompt…“, „…: installing packages…“ und so weiter.
- Einsetzen. Ein frischer EFI-Variablenspeicher wird erstellt, und
base.img,efivars.bin,base.versionundimage-state.jsonwerden gemeinsam an ihren Platz gesetzt.
Einrichtungsschritte: die empfohlenen Pakete
Das veröffentlichte Image muss rechtlich weiterverteilbar sein, daher enthält es nur freie Software (Node.js, Docker, kitty, gh, glab, kubectl, doctl, awscli, azure-cli und mehr). Alles andere wird als signierte Einrichtungsschritte im Katalog deklariert und auf Ihrem Mac in Ihre Kopie des Images installiert. Die mit Version 5.0.0 ausgelieferten Schritte sind:
| Reihenfolge | Schritt | Installationsart |
|---|---|---|
| 10 | Claude Code (Anthropic) | npm, umschlossen vom Socket.dev-Lieferketten-Scanner (npx --yes @socketsecurity/cli npm install -g --silent @anthropic-ai/claude-code) |
| 20 | Codex CLI (OpenAI) | npm, Socket.dev-umschlossen |
| 30 | Grok CLI (x.ai) | Das Installationsskript des Herstellers |
| 35 | Kimi Code CLI (Moonshot AI) | npm, Socket.dev-umschlossen |
| 37 | Oh My Pi CLI (omp) + bun-Laufzeit | Das Installationsskript von bun, dann omp über npm, Socket.dev-umschlossen |
| 40 | Google Cloud SDK (gcloud) | gcloud, gsutil, bq |
Bei einer Neuinstallation laufen alle ausgelieferten Schritte ohne zusätzliche Abfrage: Das Starten der Einrichtung im Assistenten (oder das Ausführen von bromure-ac init) ist Ihre Zustimmung. Später veröffentlichte Schritte brauchen Ihre ausdrückliche Zustimmung über die Abfrage Neue empfohlene Pakete, beschrieben unter Basis-Image-Updates. Da die Katalogsignatur den Befehl jedes Schritts umfasst, kann ein manipulierter Download-Server nicht ändern, was als root in Ihrem Image läuft.
Der lokale Build als Fallback
Schlägt der Download aus einem download-seitigen Grund fehl — Sie sind offline, der Server ist nicht erreichbar, oder Prüfsumme oder Entpacken schlagen fehl —, zeigt die App Image-Download fehlgeschlagen mit dem Fehler und „Bromure kann das Image stattdessen lokal bauen (~10 Min., gleiches Ergebnis).“ sowie den Schaltflächen Lokal bauen und Abbrechen. Sie wechselt nie stillschweigend zu einem lokalen Build. (Der Befehl bromure-ac init greift dagegen automatisch auf den Fallback zurück.)
Der lokale Build erzeugt dasselbe Image auf Ihrem Mac:
- Lädt die Image-Build-Werkzeuge herunter und speichert sie im Support-Ordner zwischen.
- Erstellt einen frischen 24 GB großen Sparse-Datenträger.
- Startet eine einmalige Builder-VM (4 vCPUs, 4 GB RAM), die Ubuntu noble, die freien Werkzeuge und GRUB installiert.
- Wendet dieselben Katalog-Einrichtungsschritte an wie der Download-Pfad.
Der Fortschritt zeigt „Building the image: downloading tools…“, „Allocating 24GB sparse disk…“, „Building the image: starting…“ und so weiter. Auf diesem Pfad folgt der Fortschrittsbalken dem Protokoll des Installers und bleibt bei 97 % stehen, bis zum abschließenden Sprung auf „Base image ready“.
Der lokale Build ist darauf ausgelegt, VPNs zu überstehen: Alle Paket-Downloads laufen über einen host-seitigen Proxy, die Netzwerk-MTU der Builder-VM wird vor jedem Download gesenkt, fehlendes Netzwerk stoppt den Build früh, und ein Absturz des Gast-Kernels löst einen automatischen erneuten Versuch auf einem frischen Datenträger aus. Zwei verwandte Notausgänge:
- Erhält die Builder-VM keine Netzwerkadresse, schlägt der Build mit Netzwerkproblem beim Bau des Basis-Images fehl und bietet Reparieren und erneut versuchen (startet die macOS-Netzwerkdienste neu; fragt nach Ihrem Administratorpasswort) oder Abbrechen.
- Bei VPNs, die große Pakete verwerfen (zum Beispiel WireGuard mit MTU 1420), können Sie die MTU der Builder-VM selbst festlegen:
defaults write io.bromure.agentic-coding vm.mtu -int 1400.
Sie können den lokalen Build auch jederzeit bewusst wählen: Basis-Image neu erstellen… › Lokal neu erstellen im App-Menü oder bromure-ac init --build-local.
Während der Einrichtung verwendete Netzwerk-Endpunkte
Für Firewall- und Proxy-Administratoren: Die Installation kommuniziert mit:
| Endpunkt | Zweck |
|---|---|
https://dl.bromure.io | Der Image-Katalog (images/201/img-catalog.json), Image-Downloads und die Image-Werkzeuge |
| Paket-Spiegel und Hersteller-Websites | Ubuntu-Pakete, die npm-Registry, Socket.dev und Hersteller-Installationsskripte, abgerufen über den host-seitigen Proxy der App |
https://bromure.io/api/v1/release-agentic-coding | Update-Prüfungen der App (nicht Teil der Image-Einrichtung) |
Die Installation selbst öffnet keine lauschenden Netzwerkports; der host-seitige Paket-Proxy, der während Builds verwendet wird, lauscht nur auf einem temporären localhost-Port.
Einrichtungszeit und Festplattennutzung
| Pfad | Typische Dauer | Hinweise |
|---|---|---|
| Vorgefertigter Download | Die Downloadzeit für einige GB, plus Entpacken, plus einige Minuten für die Einrichtungsschritte | Hängt vor allem von Ihrer Verbindung ab |
| Lokaler Build | Etwa 10 Minuten | Bricht nach höchstens 45 Minuten ab |
Festplattennutzung:
- Zum Start: mindestens 8 GB frei auf dem Volume, das
~/Library/Application Support/BromureAC/enthält. - Nach der Installation: Das Basis-Image belegt etwa 6–8 GB echten Speicherplatz (24 GB groß — ungenutzte Teile eines Sparse-Datenträgers kosten nichts).
- Pro Maschine: Die Systemdisk jeder Maschine beginnt als APFS-Copy-on-Write-Klon des Basis-Images, kostet also anfangs fast nichts und wächst nur, wenn die Maschine Daten schreibt. Ihre Home-Disk wächst genauso.
Die Einrichtung erfolgt einmal pro Basis-Image-Version.
Das Befehlszeilenprogramm
Die App installiert von sich aus nichts außerhalb Ihres Benutzerkontos. Um Bromure aus dem Terminal zu steuern, wählen Sie Befehlszeilenprogramm installieren… im App-Menü (Menü Bromure Agentic Coding). Die App fragt Das Befehlszeilenwerkzeug „bromure-cli“ installieren? — „Dies legt einen Symlink unter /usr/local/bin/bromure-cli an, damit Sie Bromure vom Terminal aus steuern können (vm, exec, trace, …). Dafür wird einmalig Ihr Administratorpasswort benötigt.“ Klicken Sie auf Installieren und geben Sie Ihr Administratorpasswort ein; ein Hintergrund-Helfer wird nicht installiert.
Der Menüpunkt funktioniert nur aus dem installierten App-Bundle. Die vollständige Befehlsreferenz steht unter CLI, API & MCP.
Wo alles gespeichert wird
Alles, was die App schreibt, liegt in Ihrem Benutzerkonto; systemweit wird nichts installiert, außer der optionalen Verknüpfung bromure-cli.
| Pfad | Inhalt |
|---|---|
~/Library/Application Support/BromureAC/ | Der Support-Ordner der App |
…/BromureAC/base.img | Das Ubuntu-Basis-Image (24 GB groß, ~6–8 GB auf der Festplatte) |
…/BromureAC/efivars.bin | Der EFI-Variablenspeicher des Basis-Images |
…/BromureAC/base.version | Der Versionsstempel des installierten Images (zum Beispiel 201 oder 201.1) |
…/BromureAC/image-state.json | Woher das Image stammt und welche Einrichtungsschritte angewendet wurden |
…/BromureAC/img-catalog.json | Zwischengespeicherte Kopie des Image-Katalogs |
…/BromureAC/profiles/ | Ein Ordner pro Maschine: profile.json, die Systemdisk disk.img, die Home-Disk home.img, SSH-Schlüssel, Checkpoints und gespeicherter Zustand |
…/BromureAC/sessions.json | Ihre Sitzungen: Titel, Agenten, Ordner und Zustände |
…/BromureAC/transcripts/ | Eine lokale Kopie des Gesprächs jeder Sitzung, damit es auch bei ausgeschalteter Maschine lesbar ist |
…/BromureAC/rooms.json | Ihre Räume |
…/BromureAC/delegations.json | Arbeit, die Agenten einander übergeben haben |
…/BromureAC/models.enc | Die globalen Modelleinstellungen (verschlüsselt) |
…/BromureAC/claude-subscription.enc, codex-subscription.enc, grok-subscription.enc, kimi-subscription.enc | Abonnement-Anmeldungen (verschlüsselt) |
…/BromureAC/profile-template.enc | Geheimnisse der Standardvorlage, mit der jede neue Maschine beginnt (verschlüsselt) |
…/BromureAC/security-timeline/ | Die Sicherheits-Timeline, eine Datei pro Tag, 90 Tage aufbewahrt |
…/BromureAC/kube/ | Kubernetes-Cluster, Registries und der Messaging-Connector, mit ihren VM-Datenträgern |
…/BromureAC/pii/ | Daten des Schutzes personenbezogener Daten |
…/BromureAC/dhcp-leases.sqlite | Adresszuweisungen, damit jede Maschine in der Regel ihre IP-Adresse behält |
…/BromureAC/browser/ | Das Image des eingebetteten Browsers, falls installiert |
…/BromureAC/base.img.partial, base.img.gz.partial, efivars.partial | Temporäre Installationsdateien; sehen Sie sie, läuft gerade eine Installation oder wurde unterbrochen |
~/Library/Logs/BromureAC/bromure-ac.log | Das Protokoll der App |
~/Library/LaunchAgents/io.bromure.agentic-coding.boot.plist | Start-bei-Anmeldung-Agent, geschrieben, sobald bei einer Maschine Diese VM bei der Anmeldung starten aktiviert ist |
/usr/local/bin/bromure-cli | Die optionale Verknüpfung zum Befehlszeilenprogramm |
UserDefaults-Domäne io.bromure.agentic-coding | App-Einstellungen |
Zwei Dinge liegen bewusst anderswo:
- Der Zugangsdaten-Hauptschlüssel liegt im Data Protection Keychain von macOS, markiert als nur dieses Gerät, und verlässt den Mac daher nie. Geheimnisse auf der Festplatte sind AES-256-GCM-Chiffretext; siehe Zugangsdaten.
- Das App-Bundle enthält einen System-Daemon (
io.bromure.fatclient-tunnel), der beim Spiegeln eines entfernten Macs verwendet wird. Er wird nur bei Bedarf registriert, und die erste Registrierung zeigt einen Genehmigungsschalter unter Systemeinstellungen › Allgemein › Anmeldeobjekte; siehe Fernzugriff & Clients.
bromure-ac info gibt jederzeit Versionsstempel, Größe und Pfad des installierten Images aus.
Basis-Image-Updates
Versionsstempel
Das installierte Image hält seine Version in base.version fest. Version 5.0.0 der App verwendet das Basis-Image 201. Jeder Neubau, erneute Download oder jede Ergänzung bei gleicher Version fügt eine Punkt-Revision hinzu (201 → 201.1 → 201.2). image-state.json hält fest, woher das Image stammt und welche Einrichtungsschritte angewendet wurden.
Die App sucht Updates im Katalog ihrer eigenen Image-Version, sodass eine ältere App nie ein Image übernimmt, das für eine neuere gedacht ist. Vorgefertigte Images werden wöchentlich mit frischen Ubuntu-Paketen neu veröffentlicht, doch diese wöchentlichen Neuveröffentlichungen behalten dieselbe Versionsnummer — Sie werden also nicht jede Woche zum Aktualisieren aufgefordert.
Die Update-Abfrage
Ist das Image auf Ihrem Mac älter als die Version, die die App erwartet, oder veröffentlicht der Katalog eine neuere Version, zeigt die App beim Start Update für das Basis-Image verfügbar: „Ihr Basis-Image hat Version X, verfügbar ist Version Y. Das aktuelle Image funktioniert weiterhin — beim Aktualisieren wird das neue vorgefertigte Image geladen (ein paar GB; lokaler Neuaufbau als Ausweichlösung) und die empfohlenen Pakete werden erneut angewendet.“
- Jetzt aktualisieren startet die Neuinstallation, zuerst per Download.
- Später schließt die Abfrage bis zum nächsten Start. Das aktuelle Image funktioniert in beiden Fällen weiter.
Ein Image, das neuer ist, als die App erwartet, funktioniert trotzdem und löst die Abfrage nicht aus.
Jede Maschine aktualisieren
Ein neues Basis-Image ändert Ihre bestehenden Maschinen nicht: Jede Maschine behält die Systemdisk, von der sie geklont wurde. Wenn Sie das nächste Mal eine Maschine starten, deren Disk von einer älteren Basis stammt, fragt die App Ein neueres Basis-Image ist verfügbar. — „Dieser Arbeitsbereich läuft auf Basis v201; v201.1 liegt auf der Festplatte. Jetzt aktualisieren? Das Aktualisieren setzt die Disk des Arbeitsbereichs zurück — alles, was in der VM installiert wurde, wird gelöscht; Ihr Projektordner bleibt unberührt.“
- Ja, aktualisieren setzt die Systemdisk der Maschine auf die neue Basis zurück und startet sie dann. Die Home-Disk (und alles in
/home/ubuntu) bleibt erhalten. - Nein startet die Maschine unverändert und fragt erst wieder, wenn ein anderes Basis-Image installiert wird.
- Später erinnern startet die Maschine unverändert und fragt beim ersten Start nach einem Tag erneut.
Die Antwort wird pro Maschine gespeichert.
Neue empfohlene Pakete
Listet der Katalog Einrichtungsschritte, die auf Ihr Image noch nicht angewendet wurden, fragt die App beim Start Neue empfohlene Pakete und listet sie auf: „Neue Pakete werden zur Installation empfohlen: … Bromure installiert sie in das Basis-Image (ein paar Minuten, in der Hintergrund-VM). Bestehende Workspaces laufen weiter; die Drift-Abfrage jedes Workspace bietet ein Zurücksetzen an, um sie zu übernehmen.“
- Installieren wendet die Schritte auf einen Copy-on-Write-Klon von
base.imgan und setzt das ergänzte Image nach Abschluss ein; laufende Maschinen laufen weiter. Der Versionsstempel erhält eine Punkt-Revision (zum Beispiel201→201.1), sodass jede Maschine danach die oben beschriebene Aktualisierung anbietet. - Später fragt beim nächsten Start erneut.
Ohne diese Zustimmung läuft nichts — Einrichtungsschritte laufen als root im Basis-Image.
Von Hand neu erstellen
Um das Image jederzeit neu zu installieren, wählen Sie Basis-Image neu erstellen… im App-Menü. Die App fragt Basis-Image aktualisieren? und bietet Vorgefertigtes laden, Lokal neu erstellen und Abbrechen an. Die Datenträger bestehender Maschinen bleiben unberührt. Das alte Image bleibt in Gebrauch, bis das neue fertig ist, sodass Sie während des Neubaus weiter Maschinen starten können. Die Befehlszeilen-Entsprechungen sind bromure-ac init (zuerst Download) und bromure-ac init --build-local.
Ein Download behält eine Kopie des veröffentlichten Images mit installierten empfohlenen Paketen (stock.img, die sich ihre Datenträgerblöcke mit dem Basis-Image teilt). Solange der Katalog noch dasselbe Image nennt, startet Vorgefertigtes laden von dieser Kopie: Download und Agenten-Installation entfallen, nur seither veröffentlichte Pakete werden angewendet, und Ihr Anpassungsskript läuft. So lässt sich ein Anpassungsskript schnell erneut ausführen oder überarbeiten. Um trotzdem von vorn zu beginnen — etwa um neuere Agenten-Versionen zu bekommen —, schalten Sie Erneut herunterladen und die Agenten neu installieren ein oder führen bromure-ac init --fresh aus.
Die App aktuell halten
Die App aktualisiert sich selbst mit Sparkle. Sie prüft https://bromure.io/api/v1/release-agentic-coding einmal am Tag, und Updates werden gegen denselben öffentlichen Schlüssel geprüft, der die Image-Kataloge signiert. Um sofort zu prüfen, wählen Sie Nach Updates suchen… im App-Menü, unter Über. (Entwicklungs-Builds haben diesen Eintrag nicht.)
App-Updates und Basis-Image-Updates sind getrennt: Ein App-Update führt nur dann zu einem Image-Update, wenn die neue App-Version ein neueres Basis-Image erwartet.
Umzug auf einen neuen Mac
Es gibt keinen integrierten Migrationsassistenten. Der empfohlene Weg ist eine Neuinstallation plus eine Kopie Ihrer Maschinendaten:
- Installieren Sie auf dem neuen Mac die App und gehen Sie den Assistenten durch. Das Basis-Image erneut herunterzuladen ist schneller und sauberer, als es zu kopieren.
- Beenden Sie die App auf beiden Macs.
- Kopieren Sie
~/Library/Application Support/BromureAC/profiles/vom alten Mac an dieselbe Stelle auf dem neuen. Jeder Unterordner ist eine Maschine: ihre Einstellungen (profile.json), ihre Systemdisk (disk.img), ihre Home-Disk (home.img— Ihre geklonten Repositories, Caches und der Shell-Verlauf) und ihre SSH-Schlüssel. Um auch Ihre Sitzungsliste und Gespräche zu behalten, kopieren Sie zusätzlichsessions.json,rooms.jsonund den Ordnertranscripts/. - Öffnen Sie die App auf dem neuen Mac. Ihre Maschinen erscheinen unter Virtuelle Maschinen. Wurde eine Maschine von einem anderen Basis-Image geklont als dem jetzt installierten, bietet sie die oben beschriebene Aktualisierung an; wählen Sie Nein, um ihre aktuelle Disk zu behalten.
Drei Dinge werden absichtlich nicht übertragen:
- Zugangsdaten. Der Hauptschlüssel, der gespeicherte Geheimnisse verschlüsselt, liegt im Data Protection Keychain des Macs und ist als nur dieses Gerät markiert; verschlüsselte Geheimnisse und Anmeldungen vom alten Mac lassen sich auf dem neuen daher nicht lesen. Ihre nicht geheimen Angaben in jedem
profile.jsonbleiben erhalten; geben Sie Ihre Schlüssel im Bereich Zugangsdaten jeder Maschine erneut ein und melden Sie sich unter Einstellungen › Modelle erneut an (siehe Zugangsdaten). - Unternehmensregistrierung. Das Identitätszertifikat der Installation gehört zu genau einer Installation; registrieren Sie den neuen Mac erneut (siehe Enterprise).
- App-Einstellungen in der Defaults-Domain
io.bromure.agentic-coding, sofern Sie sie nicht selbst kopieren.
Tipp: Maschinen-Datenträger sind sparse, und die Copy-on-Write-Einsparungen gehen bei einer einfachen Netzwerkkopie verloren — eine Maschine, die auf dem alten Mac ein paar GB belegt, kann unterwegs auf ihre volle geschriebene Größe anwachsen. Verwenden Sie eine sparse-fähige Kopie (zum Beispiel
rsync -aS) und prüfen Sie zuerst den freien Speicher auf dem neuen Mac.
Vollständig deinstallieren
Um nur das Basis-Image zurückzusetzen und die App und Ihre Maschinen zu behalten, führen Sie bromure-ac reset aus (mit --yes überspringen Sie die Bestätigung). Es löscht base.img, efivars.bin, base.version, image-state.json und den gespeicherten Download (stock.img, stock-state.json), sodass der nächste Start die Einrichtung erneut ausführt. Ihre Maschinen berührt es nie.
Es gibt kein mitgeliefertes Deinstallationsprogramm. Um alles zu entfernen:
-
Beenden Sie die App (und jeden Headless-Agent: prüfen Sie mit
pgrep -fl bromure-ac). -
Ziehen Sie Bromure Agentic Coding aus
/Applicationsin den Papierkorb. -
Löschen Sie den Support-Ordner — Basis-Image, jede Maschine und ihre Datenträger, Sitzungen, Caches und die CA pro Installation:
rm -rf ~/Library/Application\ Support/BromureAC -
Löschen Sie den Start-bei-Anmeldung-Agent, falls vorhanden:
rm -f ~/Library/LaunchAgents/io.bromure.agentic-coding.boot.plist -
Löschen Sie den Protokollordner:
rm -rf ~/Library/Logs/BromureAC -
Entfernen Sie die Einträge der App unter Systemeinstellungen › Allgemein › Anmeldeobjekte & Erweiterungen (der Genehmigungsschalter des Remote-Spiegelungs-Daemons, falls Sie ihn je eingeschaltet haben).
-
Entfernen Sie das Befehlszeilenprogramm, falls Sie es installiert haben:
sudo rm -f /usr/local/bin/bromure-cli -
Löschen Sie optional die Einstellungen der App:
defaults delete io.bromure.agentic-coding
Warnung: Schritt 3 löscht die Datenträger jeder Maschine dauerhaft — geklonte Repositories, nicht committete Arbeit, Paket-Caches, Shell-Verlauf — sowie das Gespräch jeder Sitzung. Pushen oder exportieren Sie vorher alles, was Sie behalten möchten.
Der Zugangsdaten-Hauptschlüssel im Keychain bleibt zurück, sobald sein Chiffretext weg ist. Er ist harmlos, aber Sie können ihn in der Schlüsselbundverwaltung löschen, indem Sie nach io.bromure.agentic-coding.master-key suchen.