Anhang — Tastenkombinationen, Dateien, Ports & Umgebung
Dieser Anhang fasst die konkreten Fakten, die über das restliche Handbuch verstreut sind, in Referenztabellen zusammen: Tastenkombinationen, Speicherorte auf der Festplatte, Netzwerkports, Umgebungsvariablen und Voreinstellungen sowie einen Spickzettel für die Gast-VM. Alles hier bezieht sich auf die ausgelieferte Version (Version 5.0.0, Bundle-ID io.bromure.agentic-coding, App-Binary bromure-ac). Die Befehle, die diese Werte lesen und schreiben, finden Sie unter CLI, API & MCP; was bei der Installation angelegt wird, unter Installation & erster Start.
Platzhalter unten: <uuid> ist die Kennung einer Maschine (eines Arbeitsbereichs), <id> die eines Clusters, einer Registry oder eines Laufs, <version> eine gepinnte Werkzeugversion, <org>--<name> ein Modell-Repository und <host-UUID> ein gespeicherter entfernter Host.
Tastenkombinationen
Kombinationen, die davon abhängen, was auf der Bühne ist, sagen das. Die üblichen macOS-Kombinationen (⌘Q, ⌘H, ⌘M, ⌘C, ⌘V, …) funktionieren wie gewohnt.
Sitzungen und Navigation
| Kombination | Aktion |
|---|---|
| ⌘N | Neue Sitzung… — der Bildschirm für neue Sitzungen. |
| ⌘K | Gehe zu… — die Befehlspalette (Sitzungen, Räume, Maschinen, Aktionen, Text in Unterhaltungen). ↑/↓ bewegen, ⏎ öffnet. |
| ⌘1 – ⌘9 | Mit einer Sitzung oder dem Bildschirm für neue Sitzungen auf der Bühne: zur 1.–9. Sitzung in der Seitenleiste springen. Im Terminal einer Maschine: zu diesem Tab wechseln. Halten Sie ⌘ gedrückt, um die Nummern in der Seitenleiste zu sehen. |
| ⌥⌘↑ / ⌥⌘↓ | Vorherige / nächste Sitzung in der Reihenfolge der Seitenleiste. |
| ⌘⏎ | Die pausierte oder beendete Sitzung auf der Bühne fortsetzen. Auf dem Bildschirm für neue Sitzungen: Starten. |
| ⌘W | Mit einer Sitzung auf der Bühne: Sitzung beenden (fragt zuerst „„‹Sitzung›“ beenden?“ und bietet dann Widerrufen an). Im Terminal einer Maschine: schließt den Tab. |
| ⌃⌘R | Nächster Raum. |
| ⌥⌘U | Linux — von einer Sitzung zu ihrem Terminal-Tab auf der Maschine und zurück (die Pille lautet dann Sitzung). |
| ⌘Z | Das letzte Beenden, Archivieren, Löschen oder Verschieben widerrufen, solange der Hinweis angezeigt wird. |
| ⌃⌘S | Seitenleiste ein- oder ausklappen. |
| ⌃⌘B | Bereich des agentischen Browsers ein- oder ausblenden. |
| ⌃⌘E | Dateibereich ein- oder ausblenden. |
| ⌘, | Einstellungen… |
In einem Chat
| Kombination | Aktion |
|---|---|
| ⏎ | Nachricht senden (auf dem Bildschirm für neue Sitzungen: Sitzung starten). |
| ⌥⏎ | Neue Zeile. |
| Esc | Den Agenten stoppen, während er arbeitet. |
/ | Die Palette der Slash-Befehle öffnen (↑/↓ bewegen, ⇥ vervollständigen, ⏎ wählen, Esc schließen). |
@ | Die Palette der Sitzungen öffnen, die Sie fragen können. |
Räume
| Kombination | Aktion |
|---|---|
| ⌃⇥ / ⌃⇧⇥ | Nächster / vorheriger Tab des Raums, wenn seine Sitzungen nicht auf eine Seite passen. |
| Esc | Eine vergrößerte Sitzung verlassen und zum ganzen Raum zurückkehren. |
Maschinen und Terminals
| Kombination | Aktion |
|---|---|
| ⇧⌘N | Neuer Arbeitsbereich… (eine neue Maschine). |
| ⌥⇧⌘N | Neuer Workspace aus meinen Konfigurationen… (derselbe Menüpunkt mit gedrückter ⌥). |
| ⇧⌘K | Mit entferntem Bromure verbinden… |
| ⌘T | Neuer Tab im Terminal der ausgewählten Maschine — oder ein neuer Browser-Tab, wenn der Browser-Bereich den Tastaturfokus hat. |
| ⌘D | Terminal zum Raster hinzufügen. |
| ⇧⌘G | Neuer Worktree (im Terminal einer Maschine). |
| ⇧⌘M | Worktree zusammenführen (im Terminal einer Maschine). |
Boards, Fenster und Review
| Kombination | Aktion |
|---|---|
| ⇧⌘A | Automatisierungs-Board. |
| ⇧⌘T | Aufgaben (das Board der Coding-Aufgaben). |
| ⌘0 | Arbeitsbereich-Verwaltung. |
| ⇧⌘I | Trace-Inspektor… |
| ⌘R | Aktualisieren (Review- und Branches-Fenster). |
| ⇧⌘⏎ | Ihre Kommentare an den Agenten senden (Review-Fenster). |
Speicherorte auf der Festplatte
Alles, was der App gehört, liegt in einem einzigen Support-Verzeichnis, dazu eine Handvoll Dateien außerhalb und einige Schlüsselbund-Einträge. Ein Pfad, der auf / endet, ist ein Verzeichnis.
Das Support-Verzeichnis
Das Support-Stammverzeichnis der App ist ~/Library/Application Support/BromureAC/. Die folgenden Pfade sind relativ dazu.
| Pfad | Enthält |
|---|---|
base.img | Das Ubuntu-Basis-Image, das jede Maschine klont (24 GB logisch, einige GB physisch). |
efivars.bin | EFI-Variablenspeicher, mit dem das Base-Image bootet. |
base.version | Versionsstempel des installierten Images, z. B. 201 oder 201.1. |
image-state.json | Herkunft des Images und die UUIDs der angewandten Postinstall-Schritte. |
img-catalog.json | Zwischengespeicherte Kopie des heruntergeladenen Image-Katalogs. |
browser-img-catalog.json | Zwischengespeicherter Katalog für das eingebettete Browser-Image. |
catalog.json | Zwischengespeicherter entfernter Katalog der Modelle auf dem Gerät. |
base.img.partial, base.img.gz.partial, efivars.partial | Transiente Installationsdateien; ihr Vorhandensein bedeutet, dass eine Installation läuft oder unterbrochen wurde. |
alpine-vmlinuz, alpine-initramfs, alpine-initramfs-shimmed | Zwischengespeicherte Alpine-Netboot-Installer-Dateien, die vom lokalen Build verwendet werden. |
browser/ | ACs eigene Kopie des Ubuntu-+-Chromium-Browser-Images, wenn die von Bromure Web fehlt. |
browser-profiles/<uuid>/image/profile.img | Verschlüsseltes persistentes Chromium-Profillaufwerk („Auf Websites angemeldet bleiben"). |
ca/cert.pem, ca/key.pem | Die Bromure Agentic Coding Root CA pro Installation (Schlüsselmodus 0600). Löschen Sie das Verzeichnis ca/, um sie zu rotieren. |
control.sock | Nur für den Eigentümer zugänglicher (0600) Unix-Steuersocket, über den die CLI und die Steuerebene HTTP sprechen. |
profile-macs.json | Deterministische MAC-Zuordnungen pro Maschine. |
dhcp-leases.sqlite | Dauerhafte DHCP-Leases für das virtuelle Netzwerk der Maschinen. |
default-ssh/id_ed25519.raw, default-ssh/id_ed25519.pub | Gemeinsames Standard-SSH-Schlüsselpaar, das in jede neue Maschine kopiert wird. |
profile-template.json, profile-template.enc | Die Vorlage Defaults der Einstellungen, die neue Maschinen übernehmen. |
models.enc | Die globalen Modelleinstellungen (Einstellungen › Modelle): Anbieter, Schlüssel, Auswahl pro Agent. Verschlüsselt. |
claude-subscription.enc, codex-subscription.enc, grok-subscription.enc, kimi-subscription.enc | Verschlüsselte, dem Host gehörende Abonnement-Anmeldungen (gemeinsam, plus Überschreibungen pro Maschine), 0600. |
sessions.json | Ihre Agentensitzungen: Titel, Agent, Maschine, Ordner, Zustand, Spitzname, Raum. |
rooms.json | Ihre Räume. |
delegations.json | Delegationen und Anfragen zwischen Sitzungen. |
transcripts/ | Die hostseitige Kopie der Unterhaltung jeder Sitzung (<session-id>.jsonl). |
tasks.json, task-transcripts/ | Das Board der Coding-Aufgaben und seine archivierten Transkripte. |
automations.json | Geplante Automatisierungen samt Laufverlauf, nächsten Auslösezeiten und Höchstständen der Ereignisabfrage. |
runs/<id>/ | Archivierte Automatisierungsläufe (record.json, transcript.jsonl). |
security-timeline/<yyyy-MM-dd>.jsonl | Die Sicherheits-Zeitleiste, eine Datei pro Tag, 90 Tage aufbewahrt. |
pii/<uuid>.key | Geheimnis pro Maschine, das die Platzhalter für personenbezogene Daten konsistent hält (0600). |
grid-layout.json | Zusammensetzung des Rasters. |
engine-master.key | Hauptgeheimnis für die Engine-Schlüssel auf dem Gerät pro VM. |
engine-spawn.json | Startkonfiguration der Engine auf dem Gerät (Modelle, Speicherbudget, Port). |
fake-salt.bin | Salt pro Installation zur Ableitung der Platzhalter-Tokens (0600). Wird es gelöscht, ändern sich alle Platzhalter auf diesem Mac. |
secrets-master.key | Ausweich-Hauptschlüssel mit 0600, nur genutzt, wenn der Data-Protection-Schlüsselbund nicht erreichbar ist. |
cloudflared/<version>/cloudflared | Gepinntes, per Prüfsumme verifiziertes cloudflared-Binary, mit einem current-Symlink daneben. |
ghostty/ | Generierte Terminal-Konfigurationen (Basis plus pro Maschine). |
Speicher pro Maschine
Jede Maschine ist ein eigenständiges Verzeichnis profiles/<uuid>/ unter dem Support-Stammverzeichnis. Wie diese genutzt werden, steht in Maschinen und Konzepte & Architektur.
Pfad (unter profiles/<uuid>/) | Enthält |
|---|---|
profile.json | Maschinendefinition einschließlich ihrer Sicherheitsrichtlinien; die API-Schlüssel für socket.dev und Depi werden hier hostseitig gespeichert und nie in die VM kopiert. Geschrieben werden nur Felder, die vom Standard abweichen. |
secrets.enc | Verschlüsselte Geheimnisse der Maschine (0600). |
disk.img | Systemlaufwerk — ein APFS-Copy-on-Write-Klon von base.img. |
home.img | Sparse-ext4-Image mit /home/ubuntu. |
home/ | Altes Home als geteilter Ordner (noch nicht aktualisierte Maschinen). |
checkpoints/, checkpoints/home/ | Checkpoints von Festplatte und Home pro Start (die Home-Checkpoints listet Home zurückdrehen… auf). |
vm.state, vm.state.json | RAM-Snapshot einer angehaltenen VM und der Fingerabdruck der Konfiguration, mit der er gespeichert wurde. |
tabs.json | Gespeichertes Terminal-Tab-Layout, nur berücksichtigt, wenn vm.state existiert. |
machine-identifier.bin | Dauerhafte VM-Identität (nötig, um eine angehaltene VM wiederherzustellen). |
compromised.flag | Markierung „beim nächsten Start löschen“, gesetzt nach einer Kompromittierung. |
meta-share/ | Schreibgeschützte Gast-Konfigurationsfreigabe pro Start (api_key.env, proxy.env, das CA-Zertifikat, Gast-Helfer, MCP-Shims und -Konfigurationen). |
outbox/ | Schreibbare Gast→Host-Ereignisfreigabe pro Start. |
agent/ (und agent/imported/), ssh/ | SSH-Schlüsselmaterial pro Maschine; importierte Schlüssel liegen unter agent/imported/, ssh/ ist das alte Verzeichnis. |
Cluster, Registries und Messaging-Connector
| Pfad (unter dem Support-Stammverzeichnis) | Enthält |
|---|---|
kube/clusters.json | Jeden Kubernetes-Cluster, jede Registry und jeden Messaging-Connector mit seinen Einstellungen und seiner Zugriffsliste. |
kube/<id>/kubeconfig.yaml | Die Admin-kubeconfig eines Clusters (was kubeconfig kopieren kopiert). |
kube/<id>/setup.log | Das Einrichtungs- und Lebenszyklusprotokoll des Clusters oder der Registry (sein Tab Protokoll). |
kube/<id>/synology.enc | Verschlüsselte Zugangsdaten des Synology-NAS, falls konfiguriert. |
kube/<id>/nodes/<uuid>/ | Das eigene Maschinenverzeichnis jedes Knotens (oder der Registry oder des Connectors): disk.img, eine Datenfestplatte data.img, wo verwendet, meta-share/ und so weiter. |
Modelle und Detektoren
| Pfad (unter dem Support-Stammverzeichnis) | Enthält |
|---|---|
models/<org>--<name>/ | Heruntergeladene Gewichte der Modelle auf dem Gerät. |
models/<org>--<name>/.incomplete | Markierung eines laufenden oder unterbrochenen Downloads. |
Models/prompt-injection/ | PromptGuard-Detektor-Assets (model.onnx, Tokenizer-Dateien, optionale bromure-injection.json-Überschreibungen). |
Models/claudemd-guard/ | ModernBERT-Regeldatei-Detektor-Assets. |
Models/pii-rampart/ | Das Rampart-Modell für den Schutz personenbezogener Daten, nur wenn es nicht in der App enthalten ist (Entwickler-Builds). |
traces/YYYY-MM-DD/<sessionID>.jsonl | Trace-Metadaten pro Sitzung, ein JSON-Datensatz pro Zeile. |
traces/YYYY-MM-DD/<sessionID>/<recordID>.req.enc, .res.enc | Erfasste Anfrage-/Antwortinhalte, verschlüsselt (0600). |
Registrierung, Fernzugriff und der Rich Client
| Pfad (unter dem Support-Stammverzeichnis) | Enthält |
|---|---|
managed/install.json | Registrierungsidentität: Installations-ID, Organisationskürzel, Benutzer, Server-URL, Gerätename, Registrierungszeitpunkt. |
managed/leaf.crt | mTLS-Blattzertifikat (PEM). |
managed/leaf.serial | Verweis auf den Keychain-Eintrag, der den privaten Schlüssel des aktuellen Leafs enthält. |
managed/ca.crt | CA-Zertifikat der Organisation (PEM). |
managed/health | Persistierter Registrierungszustand (ok / tokenRejected / revoked). |
remote/hostkey_ed25519, remote/hostkey_ed25519.pub | Host-Schlüssel des eingebetteten SSH-Servers (Verzeichnismodus 0700, Schlüssel 0600). |
remote/authorized_keys | Öffentliche Schlüssel, die durch die SSH-Eingangstür zugelassen sind (0600). |
remote/overlay-key | Optionale Overlay-Tastenkombinations-Überschreibung für das SSH-Remote-Menü. |
remote-client/id_ed25519, .pub | SSH-Client-Schlüsselpaar des Rich Clients (Kommentar bromure-ac-fatclient). |
remote-client/known_hosts | Trust-on-First-Use-Pins von Remote-Host-Schlüsseln. |
remote-client/hosts.json | Gespeicherte Remote-Server („Zuletzt verwendete Server"). |
remote-client/hosts/<host-UUID>/… | Spiegel-Persistenz pro Host (Raster-Layout, Automatisierungen), damit der Zustand eines Remotes nie den lokalen überschreibt. |
Hinweis: Der Teilbaum
remote-client/wird mitCFFIXED_USER_HOMEverschoben, wodurch zwei isolierte Instanzen zum Testen nebeneinander ausgeführt werden können.
Außerhalb des Support-Verzeichnisses
| Pfad | Enthält |
|---|---|
~/Library/Logs/BromureAC/bromure-ac.log (und .log.1) | Das App-Protokoll: eine Kopie von allem, was die App auf die Standardfehlerausgabe schreibt, mit Start-, Ende- und Fatal-Signal-Stempeln. Beim Start ab 8 MB rotiert; eine vorherige Datei wird aufbewahrt. |
~/Library/LaunchAgents/io.bromure.agentic-coding.boot.plist | LaunchAgent für den Start bei der Anmeldung, geschrieben, wenn eine Maschine „Diese VM bei der Anmeldung starten“ aktiviert. |
<app>/Contents/Library/LaunchDaemons/io.bromure.fatclient-tunnel.plist | Eingebetteter privilegierter Tunnel-Daemon, bei Bedarf registriert. |
/var/run/io.bromure.fatclient-tunnel.sock | Socket des privilegierten Tunnel-Daemons (von root angelegt, 0600, gehört dem Konsolenbenutzer). |
/tmp/bromure-ac-cm-<first-12-of-host-UUID> | SSH-ControlMaster-Socket pro Host (liegt in /tmp, weil der Support-Pfad für einen Unix-Socket zu lang ist). |
/tmp/bromure-repair.log | Debug-Log des lokalen Inferenz-Reparatur-Proxys (nur mit BROMURE_REPAIR_DEBUG). |
/usr/local/bin/bromure-cli | Optionaler CLI-Symlink auf das App-Binary, angelegt von Befehlszeilenprogramm installieren…. |
<NSTemporaryDirectory>/bromure-ac-agent-<pid>.sock | Bromures privater host-seitiger ssh-agent-Socket. |
<NSTemporaryDirectory>/sessions-mirror.json, rooms-mirror.json, delegations-mirror.json | Die Arbeitskopie eines Rich Clients von den Sitzungen, Räumen und Delegationen eines entfernten Hosts. |
$TMPDIR/bromure/session-<uuid>.img (und -aux.img) | Ephemere Copy-on-Write-Klone der Browser-VM, beim Abbau gelöscht. |
~/Library/Application Support/Bromure/ | Support-Verzeichnis von Bromure Web; AC liest sein Browser-Image von hier, wenn vorhanden. |
Keychain-Einträge und Defaults-Domain
Geheimnisse, die mit Schutz auf Betriebssystemebene erhalten bleiben müssen, liegen in der macOS-Keychain, nicht auf der Festplatte.
| Keychain-Dienst | Konto | Enthält |
|---|---|---|
io.bromure.agentic-coding.master-key | v1 | Der Hauptschlüssel des Geheimnis-Tresors (Data-Protection-Schlüsselbund). |
io.bromure.agentic-coding.ssh-key-passphrases | <profileUUID>/<filename> | Passphrasen für importierte SSH-Schlüssel. |
io.bromure.agentic-coding.managed-install | install-token, leaf-cert-key-<serial> | Registrierungs-Bearer-Token und private Leaf-Schlüssel pro Seriennummer. |
Alle UserDefaults der App liegen in der Domain io.bromure.agentic-coding (gelesen und geschrieben mit defaults read/defaults write).
Netzwerk-Ports und Subnetze
TCP- und Loopback-Ports
Bromure Agentic Coding öffnet standardmäßig keine festen eingehenden Ports. Die beiden optionalen Dienste unten sind aus, bis Sie sie aktivieren; der Rest ist nur Loopback und entweder dynamisch oder intern.
| Port | Zweck | Gebunden wo |
|---|---|---|
9223 (Standard) | HTTP-Automatisierungs-API und Backend von bromure-ac mcp. Standardmäßig aus (automation.enabled); eins höher als 9222 des Browser-Produkts, damit beide Apps nebeneinander laufen können. Stellt GET /health bereit. | 127.0.0.1 (konfigurierbar über automation.bindAddress; Bindungen außerhalb von Loopback sind nicht authentifiziert, davon wird abgeraten). |
2222 (Standard) | Optionale SSH-Fernzugriff-Eingangstür. Standardmäßig deaktiviert; auf einen beliebigen Port ≥ 1024 konfigurierbar. | Standardmäßig 0.0.0.0 (konfigurierbar über remoteAccess.bindAddress). |
28500–28599 | MCP-OAuth-Callback-Listener (http://127.0.0.1:<port>/callback). | 127.0.0.1. |
| dynamisch | Inferenz-Engine auf dem Gerät, beim ersten Start zugewiesen, um Kollisionen mit Ollama/LM Studio auf 11434 zu vermeiden. | 127.0.0.1 (nie 0.0.0.0). |
| dynamisch | Reparatur-Proxy für Tool-Aufrufe der lokalen Inferenz. | 127.0.0.1. |
| ephemer | SOCKS5-Forwarder pro Remote-Host, verwendet vom Browser-Bereich des Rich Clients. | An 0.0.0.0 gebunden, aber peer-gefiltert auf Loopback plus 192.168.127.x. |
Zwei Loopback-Endpunkte existieren im Gast, nicht auf dem Mac: 127.0.0.1:65534 (der HTTP(S)-Proxy in der VM, den jede Shell als HTTPS_PROXY exportiert) und 127.0.0.1:11434 (wo die Inferenz-Engine des Hosts über vsock erscheint).
Die Installation selbst öffnet keine TCP-Ports; der Paket-Proxy des Base-Image-Builds bindet pro Build einen ephemeren localhost-Port.
Virtuelle Netzwerk-Subnetze
| Subnetz | Zweck |
|---|---|
Ein zufälliges /24 in 172.16.0.0/12 | Das Netzwerk der Maschinen bei neuen Installationen (Gateway .1, DHCP-Pool .2–.254). Einmal pro Installation gewählt, unter Auslassung von Dockers üblichem 172.17–172.20 und jedes Bereichs, in dem der Mac liegt. Unter Einstellungen › Ressourcen › Arbeitsbereich-Subnetz ansehen, ausschalten oder neu auswürfeln. |
192.168.64.0/24 | Das Netzwerk der Maschinen bei Installationen, die das private Subnetz ausgeschaltet haben. Wird automatisch verlegt, wenn das LAN des Macs es bereits nutzt. |
192.168.65.0/24–192.168.126.0/24 | Bereich, in den Bromure-Web-Instanzen verschoben werden, damit AC und Web nicht kollidieren. |
192.168.127.0/24 | Das festgelegte Subnetz der lokalen Browser-VM des Rich Clients (Gateway .127.1). |
10.98.<unit>.0/30 | Punkt-zu-Punkt-Link-Netzwerke, verwendet vom privilegierten utun-Tunnel-Daemon. |
IPv6 wird nicht geroutet: Aktuelle Basis-Images schalten es im Gast ab, und apt läuft nur über IPv4.
vsock-Ports Host↔Gast
Host und Gast kommunizieren über virtio-Sockets (vsock), die keine IP-Adresse haben — es sind nummerierte Kanäle zwischen dem Host (CID 2) und jedem Gast. Sie sind interne Infrastruktur und hier zur Diagnose aufgeführt.
| vsock-Port | Brücke |
|---|---|
| 5800 | Shell-Exec-Agent — trägt vm exec, die Exec-Route des Steuer-Sockets und den Dateibereich. |
| 5010 | Loopback-OAuth-Callback-Relais (liefert OAuth-Weiterleitungen zurück in die In-VM-CLIs). |
| 5830 | Browser-MCP-Server. |
| 5831 | MCP-Server des Aufgaben-Boards (nur Coding-Aufgaben). |
| 5832 | Plan-Stream (Planung von Coding-Aufgaben). |
| 5833 | Automations-MCP-Server. |
| 5834 | Infrastruktur-MCP-Server. |
| 5835 | Delegations-MCP-Server. |
| 5836 | Switchboard-MCP-Server (nur die Sitzung der Schaltzentrale). |
| 8443 | HTTPS-MITM-Proxy — der Ausgang des Gasts. |
| 8444 | ssh-agent-Brücke (unterstützt SSH_AUTH_SOCK). |
| 8445 | AWS-credential_process-Helfer. |
| 8446 | Agent für das Claude-Abonnement-Token und Brücke zur Inferenz des Hosts (Gast 127.0.0.1:11434). |
| 8447 | Codex/ChatGPT-Abonnement-Token-Agent. |
| 5000 | Browser-VM-Konfigurationsagent (Host→Gast-JSON-Konfiguration bei Anforderung). |
| 5100 | Dateiübertragungsbrücke der Browser-VM. |
| 5200 | Browser-VM-Chrome-DevTools-Protocol-Brücke (Screenshots, Eval). |
| 5300 / 5400 | Browser-VM-Link-Sender / Webcam. |
| 5810 | Browser-VM-Native-Tabs-Brücke. |
| 5900 | Browser-VM-Netzwerk-Trace-Brücke. |
Umgebungsvariablen und Startargumente
Diese beeinflussen die App beim Start. Die meisten dienen dem Debugging, dem Testen oder dem Bauen aus dem Quellcode; die Spalte Zielgruppe kennzeichnet, für wen jede gedacht ist. Setzen Sie eine Umgebungsvariable vor dem Starten des Binarys oder übergeben Sie ein Startargument danach.
| Name | Effekt | Zielgruppe |
|---|---|---|
-AppleLanguages "(fr)" (Startargument) | Übliche macOS-Überschreibung der Sprache; erzwingt die Sprache der Oberfläche. | Endbenutzer |
BROMURE_DEBUG_CLAUDE | Öffnet die Steuerrouten und Debug-Endpunkte der TCP-Automatisierungs-API, lässt Geheimnisse durch die Profil-JSON-Brücken von AppleScript/MCP laufen und ist für die VM-Werkzeuge von bromure-ac mcp --debug erforderlich. | Fortgeschrittene / Debugging |
BROMURE_AC_DEBUG=1 | Zeitgestempeltes stderr-Debug für die Automatisierungs-Engine, Injection-Klassifikatoren, Regel-Scanner und Trace-Pipeline. | Debugging |
BROMURE_CLI_DEBUG | Ausführliche Diagnose der Steuersocket-Verbindung auf stderr für CLI-Befehle. | Debugging (CLI) |
BROMURE_REPAIR_DEBUG | Anfrage-/Antwort-Diagnose des lokalen Inferenz-Reparatur-Proxys, angehängt an /tmp/bromure-repair.log. | Debugging (lokale Modelle) |
BROMURE_INFER_DEBUG | Engine-Statistiken pro Anfrage (Slot, vorab gefüllte Tokens, Zeit bis zum ersten Token, tok/s) auf stderr. | Debugging (lokale Modelle) |
BROMURE_FATCLIENT_LOG | Ungepuffertes stderr-Logging des Rich Clients. | Debugging (Remote) |
BROMURE_ATTACH_DEBUG=<path> | Hängt das Rich-Client-Log zusätzlich an eine Datei an. | Debugging (Remote) |
BROMURE_NO_TRANSPARENT | Schaltet das transparente Abfangen für alle Maschinen ab (der Proxy funktioniert weiterhin für Programme, die die Proxy-Einstellungen beachten). | Debugging |
BROMURE_INJECTION_COREML=1 | Führt die Injection-Klassifikatoren über den CoreML-/Neural-Engine-Provider aus (standardmäßig CPU; CoreML braucht bei gleicher Genauigkeit ein Vielfaches an Speicher). | Fortgeschrittene |
BROMURE_NO_COREML | Deaktiviert CoreML für die Klassifikatoren zwangsweise, selbst wenn BROMURE_INJECTION_COREML gesetzt ist. | Power-User |
BROMURE_PII_BUDGET | Zeichen neuen Texts pro Anfrage, die das Modell für personenbezogene Daten liest, bevor es nur noch auf Musterregeln zurückfällt (Standard 300000). | Fortgeschrittene (personenbezogene Daten) |
BROMURE_PII_MIN_SCORE | Konfidenz, die das Modell für personenbezogene Daten braucht, bevor es einen Wert ersetzt (Standard 0.6). | Fortgeschrittene (personenbezogene Daten) |
BROMURE_PII_THREADS | CPU-Threads für das Modell für personenbezogene Daten (Standard: die Performance-Kerne, 2–8). | Fortgeschrittene (personenbezogene Daten) |
BROMURE_TRANSCRIPT_HISTORY_BYTES | Wie viel einer langen Unterhaltung ein Chat zuerst lädt (standardmäßig etwa 24 MB); kleinere Werte dienen zum Testen. | Tests |
BROMURE_GPU_CACHE_GB | Obergrenze des MLX-GPU-Puffer-Caches in GB (Standard 4). | Power-User (lokale Modelle) |
BROMURE_KVBITS, BROMURE_KVBITS_START, BROMURE_CACHE_SLOTS, BROMURE_THINKING | Feinabstimmung der Inferenz auf dem Gerät: Quantisierungsbits und Schwellenwert des KV-Caches, Sitzungs-Slots des KV-Caches und Abschalten des stillen Denkens. Siehe Modelle & Anbieter. | Fortgeschrittene (lokale Modelle) |
VISUAL / EDITOR | Editor, der von bromure-cli workspaces edit verwendet wird (fällt auf vi zurück). | Endbenutzer (CLI) |
BROMURE_MANAGED_URL | Überschreibt die bromure.io-API-Basis, die für Registrierung, Heartbeat und Zertifikatsausstellung verwendet wird. | Enterprise-Administrator |
BROMURE_FATCLIENT_OPEN | Reiner Rich-Client-Start: überspringt die Ersteinrichtung (kein lokales Basis-Image nötig). | Fortgeschritten / Tests |
BROMURE_DEBUG_WIZARD | Öffnet den Einrichtungsassistenten bei einem bestimmten Schritt (scan, pick, models, done) ohne echte Installation, oder newworkspace, um ihn über einem geöffneten Home auszuführen. | Tests / Screenshots |
BROMURE_EDITOR_CATEGORY | Öffnet den Einstellungseditor in einem bestimmten Bereich. | Tests / Screenshots |
BROMURE_IMAGE_CATALOG_BASE | Richtet Image-Downloads auf einen lokalen/Staging-Katalog; deaktiviert außerdem die Katalog-Signaturprüfung. Nur für Test- und Pipeline-Nutzung. | Test / CI |
BROMURE_INSTALL_BROWSER_IMAGE=1 | Lädt ACs Kopie des eingebetteten Browser-Images beim Start automatisch herunter. | Tests / Debugging |
CODESIGN_IDENTITY | Signatur-Identität von build.sh; nicht gesetzt fällt auf ad-hoc - zurück (kein Gatekeeper, iCloud oder vmnet). | Entwickler (Build) |
DEVELOPER_ID, APPLE_ID, TEAM_ID, APP_PASSWORD | Developer-ID-Signierung und Notarisierung durch package.sh. | Entwickler / Herausgeber |
DRY_RUN=1, KEEP_PREVIOUS=1, KEEP_STAGING=1 | Schalter der Image-Veröffentlichungs-/Probelauf-Pipeline. | Herausgeber |
Die Engine setzt außerdem interne Variablen für ihre eigenen Kindprozesse (BROMURE_ENGINE_KEY, BROMURE_ENGINE_MASTER), und die Wegwerf-VM für die Anmeldung setzt BROMURE_AC_REGISTER; sie sind nicht dafür gedacht, von Hand gesetzt zu werden.
UserDefaults-Schlüssel (defaults write)
Dauerhafte Einstellungen in der Domäne io.bromure.agentic-coding. Die meisten haben eine Entsprechung in der Oberfläche; die vm.*- und Entwickler-Schalter werden mit defaults write gesetzt, während die App nicht läuft.
| Schlüssel | Effekt | Standard |
|---|---|---|
automation.enabled | Schaltet die Loopback-Automatisierungs-HTTP-API ein. | false |
automation.port | Port der Automatisierungs-API. | 9223 |
automation.bindAddress | Bind-Adresse der Automatisierungs-API. | 127.0.0.1 |
remoteAccess.enabled | Aktiviert die SSH-Fernzugriff-Eingangstür. | false |
remoteAccess.port | SSH-Eingangstür-Port (≥ 1024). | 2222 |
remoteAccess.bindAddress | Bind-Adresse der SSH-Eingangstür. | 0.0.0.0 |
remoteAccess.passwordAuth, remoteAccess.pubkeyAuth | SSH-Authentifizierungsmethoden. | beide an |
ui.sessionsFirst | Die Sitzungsübersicht. Ausgeschaltet fällt das Hauptfenster auf das Layout aus Maschinen und Terminals zurück. | true |
ui.beautifiedTranscript | Agentensitzungen als Chats statt als rohe Terminals anzeigen. | true |
sessions.archivedExpanded | Ob der Bereich Archiviert in der Seitenleiste geöffnet ist. | false |
ui.terminalBell | Terminalglocken läuten lassen (Agenten läuten am Ende jedes Durchgangs). | false |
terminal.allowGraphics | Bilddarstellung im Terminal aus dem Gast erlauben. Siehe Erweitert. | false |
vmnet.useRandom172 | Maschinen in ein privates zufälliges Subnetz in 172.16.0.0/12 legen (Einstellungen › Ressourcen › Arbeitsbereich-Subnetz). | true bei neuen Installationen |
proxy.noMitmDomains | Zusätzliche Domains, deren HTTPS ohne Abfangen durchgereicht wird (Fernzugriff… › Nicht abfangen (Domains ohne MITM)). | leer |
p2p.udpRelay.enabled | Für entfernte Verbindungen das experimentelle UDP-Relay bevorzugen (Einstellungen › Ressourcen). | false |
vm.homeImageGB | Scheinbare Größe eines neuen ext4-Home-Images in GiB (8–1024; sparse). | 16 |
vm.mtu | MTU-Begrenzung der Netzwerkkarte des Gasts — auf VPN-Hosts senken, bei denen Downloads im Nichts verschwinden. | 1280 |
vm.networkMode, vm.bridgedInterface, vm.dnsServers | Netzwerkmodus der Browser-VM, Bridged-Schnittstelle und DNS-Überschreibung. | Modus NAT; übrige nicht gesetzt |
vm.extraChromeFlags, vm.chromeEnvExtra | Entwickler-Stellschrauben, die dem Chromium-Start der Browser-VM angehängt werden. | nicht gesetzt |
cloudflareTunnel.consented | Einmalige Zustimmung zum Bereitstellen von HTTP-Diensten über Cloudflare-Quick-Tunnels. | false |
catalog.refreshDisabled | Den Katalog der Modelle auf dem Gerät nicht herunterladen; die mitgelieferte und zwischengespeicherte Kopie verwenden. | false |
ac.sidebarWidth.v2, ac.filePaneOpen | Gespeicherte Seitenleistenbreite und Zustand des Dateibereichs. | von der App gesetzt |
Spickzettel für die Gast-VM
In einer laufenden Maschine sind Sie ubuntu, ein gewöhnlicher Benutzer (mit sudo-Rechten), dessen Home /home/ubuntu ist. Der Host richtet Mounts und Umgebung so ein, dass Paketmanager, Agenten und Git ohne jede Einrichtung im Gast funktionieren. Die Mechanik beschreibt Konzepte & Architektur.
Einhängepunkte und Pfade
| Pfad | Was es ist |
|---|---|
/home/ubuntu | Ihr Home — das ext4-home.img (oder ein geteilter Ordner bei noch nicht aktualisierten Maschinen). |
/mnt/bromure-meta | Schreibgeschützte Konfigurationsfreigabe pro Start: api_key.env, proxy.env, das CA-Zertifikat, Gast-Helfer, MCP-Shims und -Konfigurationen, Hinweise zu Hostname und MTU. |
/mnt/bromure-meta/bromure-*-mcp.py | Die stdio↔vsock-Shims der eingebauten MCP-Server (browser, task, automations, infra, delegation, switchboard). |
/mnt/bromure-outbox | Beschreibbare Ereignisfreigabe Gast→Host. |
/mnt/bromure-share-N | Gemeinsame Projektordner (bis zu 8), auch als ~/<basename> in Ihr Home symlinkt. |
~/.bromure/inbox/<id>/ | Dateien, die ein anderer Agent dieser Sitzung mit einer Delegation oder Anfrage geschickt hat. |
~/.bromure/switchboard | Der Ordner der Schaltzentrale; ihre CLAUDE.md ist das Briefing der Schaltzentrale. |
~/.bromure/rooms/<slug> | Der Ordner der Schaltzentrale eines Raums. |
~/.bromure/pastes/ | In das Terminal einer Maschine eingefügte oder gezogene Dateien (nach 7 Tagen automatisch entfernt). |
Vom Host gesetzte Umgebung
| Variable | Wert / Effekt |
|---|---|
http_proxy, https_proxy, HTTPS_PROXY | http://127.0.0.1:65534 — die In-VM-Brücke, die alle Gast-HTTPS zum Host-MITM-Proxy trägt. |
NO_PROXY | localhost,127.0.0.1,::1. |
SSH_AUTH_SOCK | /tmp/bromure-agent.sock — über vsock an den ssh-agent des Hosts gebrückt (erreichbar sind nur maschineneigene und ausdrücklich importierte Schlüssel; Ihr macOS-Anmelde-Agent wird nie offengelegt). |
| CA-Bundle-Variablen | Die neu signierende Root-CA wird über die Standard-Bundle-Variablen für node, python, go, rust, curl, deno und das AWS SDK vertraut. |
| API-Schlüssel der Agenten | ANTHROPIC_API_KEY, OPENAI_API_KEY, XAI_API_KEY, GH_TOKEN, GITLAB_TOKEN, DIGITALOCEAN_ACCESS_TOKEN, LINEAR_API_KEY, TWILIO_ACCOUNT_SID / TWILIO_AUTH_TOKEN, die AWS-Variablen und alle Datenbank- oder eigenen Variablen — allesamt Platzhalter-Werte; der Host setzt auf dem Übertragungsweg das echte Geheimnis ein. |
| Modelle auf dem Gerät und von eigenen Servern | Claude Code sieht ANTHROPIC_BASE_URL=https://bromure.llm, ein ANTHROPIC_AUTH_TOKEN pro VM, die echte Modell-ID in ANTHROPIC_MODEL und ihren Größen-Aliassen sowie CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1. |
| OpenRouter | Claude Code sieht ANTHROPIC_BASE_URL=https://openrouter.ai/api, ein Platzhalter-ANTHROPIC_AUTH_TOKEN, ein leeres ANTHROPIC_API_KEY und die gewählten Modell-IDs pro Größe. |
| Amazon Bedrock | Claude Code sieht CLAUDE_CODE_USE_BEDROCK=1, AWS_REGION und entweder ein Platzhalter-AWS_BEARER_TOKEN_BEDROCK (Bedrock-API-Schlüssel) oder AWS_PROFILE=default (AWS-Zugangsdaten). |
KIMI_CODE_OAUTH_HOST, KIMI_CODE_BASE_URL | Mit einem Kimi-Abonnement: richten Kimi Code auf den internationalen Dienst von Kimi aus. |
BROMURE_REGISTRY | Die Adresse einer Bromure-Registry, auf die diese Maschine Zugriff hat. |
Warnung: Alle Zugangsdaten, die der Gast lesen kann, sind Köder. Ein auf einen Host beschränktes Platzhalter-Token, das in einer Anfrage an einen anderen Host auftaucht, ist das Kennzeichen einer Exfiltration und löst die Kompromittierungserkennung aus — es authentifiziert nie etwas.