Maschinen
Eine Maschine ist die Isolationseinheit von Bromure Agentic Coding: eine Ubuntu-VM mit eigener Systemdisk, eigenem dauerhaften Home-Ordner, eigenen Anmeldedaten und eigenen Sicherheitsregeln. Jede Sitzung läuft auf einer Maschine. Eine Wegwerf-Maschine kann mit einem Einweg-API-Schlüssel völlig offen laufen, während eine produktionsnahe jeden KI-Austausch aufzeichnet und vor jedem zerstörenden Schreiben fragt — und die beiden teilen kein Byte.
Eine Maschine heißt im Einstellungseditor, in manchen Menüs (Neuer Arbeitsbereich…, Arbeitsbereich löschen) und auf der Kommandozeile Arbeitsbereich; im Code und im exportierten JSON ist sie ein Profil. Das ist alles dasselbe. Dieses Kapitel behandelt die Maschinen selbst: wo sie gelistet werden, wie sie starten und stoppen, wie Sie sie erstellen, zurückdrehen, zurücksetzen und löschen, und was Sie direkt auf einer tun können: Terminals öffnen, mehrere im Raster beobachten, Dateien durchsehen und Dateien hineinkopieren. Die Einstellungen jeder Maschine sind in der Einstellungsreferenz dokumentiert. Das Isolationsmodell steht in Konzepte und Architektur.
Maschinen sind dauerhaft. Systemdisk und Home-Ordner überleben jeden Neustart. Nur absichtliche Aktionen (Datenträger zurücksetzen, Persönlichen Ordner löschen…, Arbeitsbereich löschen) oder ein erzwungenes Löschen nach einem Alarm über Anmeldedaten-Abfluss zerstören Daten. Eine Maschine zu stoppen entscheidet nur, was ihre VM als Nächstes tut: weiterlaufen, anhalten, oder ausschalten.
Hinweis: Meist müssen Sie Maschinen überhaupt nicht verwalten. Eine Sitzung auf einer ausgeschalteten oder angehaltenen Maschine zu starten weckt sie, und die Maschine einer pausierten Sitzung startet mit Ihrer nächsten Nachricht wieder. Dieses Kapitel ist für den Fall, dass Sie unter die Haube schauen wollen.
Der Abschnitt Virtuelle Maschinen
Maschinen leben im Abschnitt Virtuelle Maschinen unten in der Seitenleiste, unter Sitzungen, Aufgaben und Automationen. Er ist standardmäßig eingeklappt; klicken Sie seinen Titel, um ihn aufzuklappen. Ist die Seitenleiste schmal, liest der Titel VMs.
Der Kopf des Abschnitts trägt:
- ein grünes Abzeichen mit der Zahl der Maschinen, die laufen oder starten;
- die Gesamtzahl der Maschinen;
- eine +-Schaltfläche (Tooltip Neuer Arbeitsbereich), die eine Maschine erstellt. Option-klicken Sie sie, um zuerst Einstellungen aus den Konfigurationsdateien auf Ihrem Mac zu importieren (siehe Eine Maschine erstellen).
Aufgeklappt listet der Abschnitt von oben nach unten:
| Eintrag | Was es ist |
|---|---|
| Raster | Eine Bühne, die lebende Terminals nebeneinander kachelt. Siehe Das Raster. |
| Eine Zeile je Maschine | Die Maschine, ihre Terminal-Tabs während sie läuft, und ein Docker-Knoten, solange mindestens ein Container darin läuft. |
| Kubernetes | Ihre Kubernetes-Cluster, je eine Zeile. Erscheint erst, wenn ein Cluster existiert. Siehe Kubernetes-Cluster und Registries. |
| Registries | Ihre privaten Container-Registries. Erscheint erst, wenn eine Registry existiert. Siehe Kubernetes-Cluster und Registries. |
| Nachrichten | Die VM des Messaging-Connectors, sobald Sie ihn eingerichtet haben. Siehe Schaltzentrale und Messaging. |
Cluster, Registries und der Connector sind ebenfalls verwaltete VMs, aber keine Maschinen: Sie führen keine Sitzungen auf ihnen aus, und sie haben eigene Dashboards.
Maschinenzeilen
Jede Maschinenzeile zeigt von links nach rechts:
- Eine getönte Kachel. Ein Server-Rack-Zeichen in der Farbe der Maschine (in den Allgemein-Einstellungen gesetzt), mit einem kleinen Laufzustand-Punkt in der Ecke.
- Den Namen. Ein rotes Warndreieck folgt ihm, wenn die Maschine vom Detektor für Anmeldedaten-Abfluss als kompromittiert markiert wurde; eine solche Maschine bootet nicht, bis sie gelöscht ist (siehe Anmeldedaten).
- Ein Zustands-Label unter dem Namen: Aus, Startet… oder Angehalten. Eine laufende Maschine zeigt kein Label.
- Schaltflächen. Während die Maschine läuft, öffnet + einen neuen Terminal-Tab (Neuer Tab (⌘T)), und die Zeile zu überfahren zeigt In eigenes Fenster ablösen und Diese VM schließen. Die ⋯-Schaltfläche öffnet auf jeder Zeile das Maschinenmenü.
Klicken Sie den Namen einer Maschine, um ihr Dashboard zu zeigen. Klicken Sie einen ihrer Tabs, um dieses Terminal auf die Bühne zu bringen.
| Zustand | Punkt | Bedeutung |
|---|---|---|
| Aus | Grau | Läuft nicht. Kein RAM und keine CPU in Gebrauch; nur ihre Disks existieren. |
| Startet… | Orange, pulsierend | Die VM bootet. |
| Läuft | Grün | Gebootet. Ihre Terminals und Agenten sind lebendig. |
| Angehalten | Gelb | RAM auf Disk gesichert. Sie macht dort weiter, wo sie war. |
Agenten-Tabs sind Sitzungen
Die Tabs einer laufenden Maschine sind die tmux-Fenster darin: die Agenten-Tabs, in denen Ihre Sitzungen laufen, plus jedes Terminal, das Sie selbst öffnen. Jeder Coding-Agent, den Sie in einem Maschinen-Terminal starten (durch Tippen von claude, codex und so weiter), und jeder Agent, den eine Coding-Aufgabe oder eine Automation startet, erscheint auch als Sitzung in der Sitzungsliste der Seitenleiste. Zwischen dem Chat eines Agenten und seinem Terminal-Tab wechseln Sie mit der Linux-Pille (⌥⌘U); siehe Die Sitzungsübersicht.
Sitzungen einer gelöschten Maschine
Löschen Sie eine Maschine, bleiben ihre Sitzungen abgeblendet in der Seitenleiste, mit dem Zustand Maschine entfernt. In der Klappe Archiviert werden sie, zusammen mit jeder Sitzung, deren Ordner verschwunden ist, zu einer Zeile zusammengefasst: „1 Sitzung, deren Maschine oder Ordner verschwunden ist“ oder „N Sitzungen, deren Maschine oder Ordner verschwunden ist“, mit einer Schaltfläche Löschen, die diese Unterhaltungen löscht.
Das Maschinen-Dashboard
Das Dashboard ist die Steuerzentrale einer Maschine. Öffnen Sie es, indem Sie:
- den Namen der Maschine im Abschnitt Virtuelle Maschinen anklicken;
- Maschinendetails im Maschinenmenü der Symbolleiste wählen, oder im Kontextmenü der Maschinen-Kapsel einer Sitzung;
- die Maschine unter Maschinen in der ⌘K-Palette wählen.
Oben stehen Kachel und Name der Maschine, eine Zustands-Pille (Läuft, Startet, Angehalten oder Aus) und ihre IP-Adresse. Rechts ist die Aktionsleiste: Neues Terminal, Anhalten, Neu starten und Herunterfahren, solange die Maschine läuft, sonst Starten / Fortsetzen.
Darunter berichten fünf Karten über Ressourcen:
| Karte | Aus oder angehalten | Läuft |
|---|---|---|
| CPU | — | Aktuelle CPU-Last, mit einer Kurve. |
| Arbeitsspeicher | Zugewiesenes RAM, z. B. 8 GB (zugewiesen) | Genutzter Speicher, von der Zuweisung. |
| vCPUs | Kernzahl (Kerne) | Dieselbe Zahl, mit der Lastdurchschnittsangabe des Gasts. |
| Festplatte | Platz, den die Systemdisk auf dem Mac braucht ((Host)) | Plattennutzung, wie das Dateisystem des Gasts sie meldet. |
| Betriebszeit | — | Zeit seit dem Boot. |
Der Arbeitsspeicher kommt aus den Ressourcen-Einstellungen der Maschine. Die Werte aktualisieren sich etwa alle 1,5 Sekunden; Nullen direkt nach dem Boot bedeuten, dass der Gast noch nichts gemeldet hat.
Während die Maschine läuft, listet eine Karte Lauschende Ports die von außerhalb der VM erreichbaren Sockets als <VM-IP>:<Port>-Endpunkte; klicken Sie einen zum Kopieren. Dienste, die wie HTTP aussehen, bekommen außerdem eine Globus-Schaltfläche, die diesen einen Dienst über einen Cloudflare-Quick-Tunnel ins Internet stellt. Beim ersten Mal erklärt ein Dialog mit dem Titel Dienste über Cloudflare Tunnel ins Internet stellen? den einmaligen Download (etwa 18 MB) und bittet Sie um Zustimmen und freigeben.
Eine Karte Konfiguration fasst die Einstellungen zusammen, die vor dem Start am wichtigsten sind: eine Zeile je Agent mit dem Ort, an dem er läuft, Guardrails, Prompt-Injection-Prüfung und Geteilte Ordner.
Das Maschinenmenü in der Symbolleiste
Ist eine Sitzung oder ein Maschinen-Tab auf der Bühne, zeigt die Symbolleiste eine Kapsel mit Farbe und Namen der Maschine. Klicken Sie sie für alles rund um diese Maschine:
| Eintrag | Was er tut |
|---|---|
| Einstellungen… | Öffnet den Einstellungseditor der Maschine. |
| Maschinendetails | Zeigt das Dashboard. |
| IP-Adresse kopieren (…) | Kopiert die IP-Adresse der Maschine. Nur während sie läuft. |
| Trace untersuchen | Öffnet den Trace-Inspektor für diese Maschine (auch ⇧⌘I). |
| In eigenes Fenster ablösen | Verschiebt die Maschine in ein eigenes Fenster (siehe Ablösen und wieder andocken). |
| Neu starten | Fährt die Maschine sauber herunter und bootet sie frisch, nach einer Bestätigung „…“ neu starten?. Halten Sie ⌥ beim Wählen — der Eintrag wird zu Neustart erzwingen — um stattdessen sofort den Strom zu nehmen. Siehe Eine Maschine neu starten. |
Läuft die Maschine der Sitzung nicht, beginnt das Menü mit „Läuft nicht — startet mit Ihrer nächsten Nachricht“ und bietet nur Einstellungen… und Maschinendetails.
Auf dem eigenen Terminal-Tab einer Maschine zeigt die Symbolleiste außerdem den Fusion-Blitz und, wenn die Maschine ein Modell auf dem Gerät nutzt, ein Engine-Abzeichen (siehe Modelle und Anbieter). Die Schaltflächen Globus (⌃⌘B) und Dateien (⌃⌘E) schalten den Browser und den Dateien-Bereich um.
Starten und stoppen
Eine Maschine starten
Eine Maschine startet, wenn:
- Sie eine Sitzung auf ihr starten, oder einer pausierten Sitzung auf ihr eine Nachricht senden;
- Sie Starten (oder Fortsetzen) auf ihrem Dashboard klicken, oder es in ihrem ⋯-Menü wählen;
- Sie Starten auf einer ihrer Platzhalterzellen im Raster klicken;
- eine Automation oder eine Coding-Aufgabe sie braucht (siehe Automationen);
- Sie sich an Ihrem Mac anmelden und Diese VM bei der Anmeldung starten in ihren Allgemein-Einstellungen an ist;
- Sie
bromure-cli vm runausführen (siehe CLI, API und MCP).
Was bootet
- Erster Start. Die App macht die Systemdisk der Maschine (
disk.img) als APFS-Copy-on-Write-Klon des gemeinsamen Ubuntu-Basis-Images. Der Klon ist sofort da und braucht keinen Platz, bis der Gast darauf schreibt. Das Home-Image wird erstellt, und die VM bootet mit dem RAM aus ihren Ressourcen-Einstellungen. - Spätere Starts. Dieselbe Systemdisk und dasselbe Home werden wiederverwendet, alles Installierte ist also noch da.
- Eine angehaltene Maschine. Der gesicherte RAM-Schnappschuss wird statt eines Boots wiederhergestellt, und die Maschine macht dort weiter, wo sie war, Tabs eingeschlossen.
Jeder erfolgreiche Boot nimmt außerdem einen Rückkehrpunkt des Home (siehe Das Home zurückdrehen).
Standardmäßig tritt jede Maschine Bromures privatem NAT-Netz bei, bekommt eine stabile Adresse, und kann die anderen Maschinen und die Browser-VM erreichen. Einen Gebrückten Modus je Maschine gibt es in den Allgemein-Einstellungen.
Der Boot-Bildschirm
Während eine Maschine bootet, legt sich eine animierte Überlagerung über ihr Terminal: der Name der Maschine über einem Scan-Fortschrittsbalken, manchmal mit einer Statuszeile. Sie erscheint nur, wenn der Boot länger als 0,4 Sekunden braucht, und blendet sich aus, sobald das erste Terminal bereit ist. Eine Maschine, die noch das alte Home in einem geteilten Ordner nutzt, wird beim nächsten Boot auf ein privates ext4-Home-Image verschoben; die Überlagerung zeigt dann bestimmten Fortschritt, zum Beispiel „HOME WIRD VERSCHOBEN — 42% VON 7,9 GB“.
Erscheint binnen 30 Sekunden kein Terminal, wird die Überlagerung zu einem Panel TAUCHGANG FEHLGESCHLAGEN („„…“ hat nach 30 Sekunden kein Terminal geliefert. Die VM hängt möglicherweise, oder ihre Systemdisk ist beschädigt.“) mit zwei Schaltflächen:
- Weiter warten startet das 30-Sekunden-Warten neu.
- Systemfestplatte zurücksetzen… klont die Systemdisk der Maschine erneut aus dem Basis-Image. Ihr Home-Ordner überlebt.
Stoppt der Boot, weil die Systemdisk ihre Dateisystemprüfung nicht bestand, zeigt die Überlagerung stattdessen ein Panel DATENTRÄGERFEHLER, mit Festplatte reparieren (spielt das Journal der Disk an ihrem Platz nach) und Systemfestplatte zurücksetzen…. Ihr Home überlebt in beiden Fällen. Siehe Fehlerbehebung, wenn Boots immer wieder fehlschlagen.
Fragen vor einem Boot
Einem Start kann eines davon vorausgehen:
| Frage | Wann | Auswahl |
|---|---|---|
| Ein neueres Basis-Image ist verfügbar. | Das Basis-Image auf Ihrem Mac ist neuer als das, aus dem die Systemdisk dieser Maschine geklont wurde. | Ja, aktualisieren setzt die Systemdisk aus der neuen Basis zurück und bootet dann (Ihr Home bleibt unberührt). Nein bootet, wie es ist, und fragt nicht erneut, bis ein anderes Basis-Image erscheint. Später erinnern bootet, wie es ist, und fragt beim ersten Boot nach einem Tag erneut. Die Antwort wird je Maschine behalten. |
| Kompromittierte Maschine | Ein früherer Lauf wurde wegen Anmeldedaten-Abfluss markiert. | Bestätigen Sie ein Löschen von Systemdisk, Home und gesichertem Zustand, bevor sie bootet. Einstellungen, Tokens und SSH-Schlüssel bleiben. Siehe Anmeldedaten. |
| Modell lädt noch | Ein Modell auf dem Gerät, das die Maschine braucht, ist noch nicht fertig geladen. | Der Start wird abgelehnt, bis es fertig ist. |
Ist niemand da, um zu antworten (eine Automation, eine Coding-Aufgabe, ein Start bei der Anmeldung), wird ein anstehendes Basis-Image-Update übersprungen und die Maschine bootet, wie sie ist; eine kompromittierte Maschine startet nicht, bis Sie sie selbst starten.
Eine Maschine stoppen
Aus dem ⋯-Menü der Maschine oder ihrem Dashboard:
- Anhalten sichert das RAM der VM auf Disk und stoppt sie. Fortsetzen macht genau dort weiter. Keine Bestätigung, da nichts verloren geht.
- Herunterfahren schaltet die VM nach einer Bestätigung aus („Schaltet die VM aus und stoppt alles, was darin läuft. Die Systemdisk bleibt; laufende Arbeit in laufenden Prozessen geht verloren.“). Der nächste Start ist ein vollständiger Boot.
- Neu starten — siehe Eine Maschine neu starten.
reboot im Gast auszuführen geht auch: die App merkt es und bootet die Maschine an ihrem Platz wieder.
Eine Maschine neu starten
Neu starten ist überall gleich, wo es angeboten wird — im ⋯-Menü der Maschinenzeile, im Maschinen-Dashboard und im Maschinenmenü der Symbolleiste — und auf einem Fat Client wie auf diesem Mac:
- „…“ neu starten? bittet um Bestätigung: „Fährt die Maschine sauber herunter und bootet sie frisch. Alles, was darin läuft, stoppt.“
- Die Maschine wird gebeten, sich auszuschalten, wie ein Druck auf ihren Einschaltknopf, damit ihre Dateisysteme geleert und ihre Dienste gestoppt werden. Hat sie sich nach 15 Sekunden nicht ausgeschaltet (60 Sekunden bei einem Kubernetes-Knoten oder einer Registry), wird ihr der Strom genommen.
- Sie bootet frisch — nie aus einem gesicherten Zustand — genau wie bei einem Start, mit den aktuellen Einstellungen (Einstellungen › Modelle eingeschlossen).
Neustart erzwingen. Halten Sie ⌥ (Option), während Sie Neu starten wählen: im Maschinenmenü der Symbolleiste liest der Eintrag Neustart erzwingen, solange ⌥ gedrückt ist. Die Bestätigung wird Neustart von „…“ erzwingen?, und der Maschine wird sofort der Strom genommen — wie ein Ziehen des Steckers — vor dem frischen Boot. Alles Ungesicherte darin geht verloren, halten Sie es also für eine Maschine bereit, die auf einen normalen Neustart nicht reagiert.
Auf der Kommandozeile macht bromure-cli vm reboot <maschine> den sauberen Neustart und --hard den erzwungenen (siehe CLI, API und MCP).
Die Sitzungen einer gestoppten oder angehaltenen Maschine gehen nicht verloren. Sie erscheinen als pausiert und machen mit Ihrer nächsten Nachricht weiter, die die Maschine wieder startet. Was passiert, wenn Sie eine Maschine stattdessen schließen, steht in Eine Maschine schließen.
Das Menü ⋯
Die Schaltfläche ⋯ auf einer Maschinenzeile passt sich dem Zustand der Maschine an:
| Eintrag | Wann | Was er tut |
|---|---|---|
| Starten | Aus | Bootet die Maschine. |
| Fortsetzen | Angehalten | Stellt den gesicherten Zustand wieder her. |
| Herunterfahren · Anhalten · Neu starten | Läuft oder startet | Siehe Eine Maschine stoppen. |
| Worktrees zum Raster hinzufügen | Läuft | Fügt jeden Worktree-Tab dieser Maschine dem Raster hinzu. |
| Bearbeiten… | Immer | Öffnet den Einstellungseditor. |
| Duplizieren | Immer | Kopiert die Maschine. |
| Home zurückdrehen… | Immer | Dreht den Home-Ordner auf einen früheren Boot zurück. |
| Datenträger zurücksetzen | Immer | Klont die Systemdisk erneut aus dem Basis-Image. |
| Arbeitsbereich löschen | Immer | Löscht die Maschine. |
Bearbeiten und umbenennen
Bearbeiten… (oder Einstellungen… im Maschinenmenü der Symbolleiste, oder Einstellungen für „…“… in ⌘K und in den Menüs einer Sitzung) öffnet den Einstellungseditor, betitelt mit dem Namen der Maschine. Ändern Sie etwas und klicken Sichern. Um eine Maschine umzubenennen, ändern Sie Name im Bereich Allgemein. Es ist immer nur ein Editor-Fenster offen. Die Bereiche sind in der Einstellungsreferenz dokumentiert.
Duplizieren
Duplizieren macht sofort eine vollständige Kopie, benannt nach dem Original mit angehängtem Kopie (zum Beispiel Web app Kopie). Es gibt keine Bestätigung. Die Kopie bekommt jede Einstellung und Anmeldung, die Systemdisk und das Home, wo möglich copy-on-write geklont, sie braucht also keinen zusätzlichen Platz, bis die beiden auseinanderlaufen. Drei Dinge werden nicht kopiert: der gesicherte RAM-Zustand (die Kopie bootet frisch), das Tab-Layout, und die Netz-MAC-Adresse (die Kopie tritt dem Netz als andere Maschine bei).
Das Home zurückdrehen
Jedes Mal, wenn eine Maschine erfolgreich bootet, behält Bromure einen Copy-on-Write-Prüfpunkt ihres Home-Images. Die Leiter behält die letzten paar Boots, dann einen pro Tag für eine Woche, dann einen pro Woche für einen Monat. Prüfpunkte kosten beim Anlegen nichts, brauchen aber echten Plattenplatz, je weiter das Home von ihnen abweicht.
Home zurückdrehen… öffnet ein Blatt, das diese Rückkehrpunkte listet.
Jeder Punkt zeigt sein Datum, wie lange es her ist, und seine Größe. Wählen Sie einen und klicken Zurückdrehen. Der nächste Start bootet von diesem Home. Das Home, wie es jetzt ist, wird zuerst als neuer Punkt behalten, sodass ein Zurückdrehen selbst aus derselben Liste widerrufen werden kann.
Die Maschine muss aus sein, weil das Home-Image ganz getauscht wird. Während sie läuft, sagt das Blatt „Die Maschine läuft — ihr Home lässt sich nicht tauschen, solange es in Gebrauch ist. Fahren Sie sie erst herunter.“ mit einer Schaltfläche Herunterfahren, und Zurückdrehen bleibt deaktiviert. Eine Maschine, die nie gebootet hat, zeigt „Noch keine Rückkehrpunkte — einer wird jedes Mal genommen, wenn diese Maschine startet.“
Dasselbe Zurückdrehen gibt es als Home wiederherstellen… im Bereich Ressourcen, neben Persönlichen Ordner löschen…, das das Home vollständig leert.
Die Systemdisk zurücksetzen
Datenträger zurücksetzen (auch Auf Basis zurücksetzen… im Bereich Ressourcen) klont die Systemdisk der Maschine erneut aus dem aktuellen Basis-Image. Die Bestätigung, Systemdisk von „…“ auf Basis zurücksetzen?, listet, was geht: alles, was Sie mit sudo apt install installiert haben, Änderungen an /etc, /var, /usr, /opt, und systemweite Konfiguration. Ihr Home-Ordner bleibt unberührt: Projekte, Dotfiles, .ssh-Schlüssel, npm-global, .cargo und Shell-Historie überleben alle. Bestätigen Sie mit Auf Basis zurücksetzen.
Ein Zurücksetzen verwirft außerdem den gesicherten RAM-Zustand und das Tab-Layout, der nächste Boot ist also ein sauberer. Es wird mit Schließen Sie „…“ zuerst. abgelehnt, solange die Maschine läuft.
Hinweis: Ein Prüfpunkt und ein Anhalten beantworten verschiedene Fragen. Anhalten behält den laufenden Zustand, damit Sie ihn fortsetzen können. Ein Prüfpunkt behält das Home, wie es bei einem als gut bekannten Boot war, damit Sie eine kaputte Umgebung zurücklaufen lassen können. Ein gesicherter Anhalte-Zustand wird verworfen, sobald die Disk, zu der er gehört, zurückgesetzt oder zurückgedreht wird.
Eine Maschine löschen
Arbeitsbereich löschen (auch Arbeitsbereiche › Löschen, das die Maschine auf der Bühne löscht — die Maschine der Sitzung, solange eine Sitzung gezeigt wird — und deaktiviert ist, wenn die Bühne keine einzelne Maschine zeigt, etwa einen Raum, ein Board oder den Neue-Sitzung-Bildschirm) fragt Arbeitsbereich „…“ löschen? — „Entfernt seine Disk, seine Einstellungen und seinen SSH-Schlüssel. Der eingebundene Host-Ordner bleibt unberührt.“ Bestätigen Sie mit Löschen.
Das löscht den gesamten Ordner der Maschine unter ~/Library/Application Support/BromureAC/profiles/: ihre Einstellungen, verschlüsselten Geheimnisse, Systemdisk, ihr Home-Image, ihre Prüfpunkte und die host-seitigen SSH-Schlüssel. Es entfernt die Maschine auch aus der Zugriffsliste jedes Kubernetes-Clusters. Host-Ordner, die Sie in die Maschine geteilt haben, liegen auf Ihrem Mac und bleiben, wie sie sind.
Warnung: Eine Maschine zu löschen lässt sich nicht widerrufen. Es gibt keinen Papierkorb. Alles, was Sie behalten wollen, sollte vor dem Löschen in einem geteilten Host-Ordner liegen oder committet und gepusht sein.
Eine Maschine erstellen
Sie können eine Maschine erstellen über:
- das + im Kopf Virtuelle Maschinen;
- Arbeitsbereiche › Neuer Arbeitsbereich… (⇧⌘N);
- Arbeitsbereiche › Neuer Arbeitsbereich aus meinen Configs… (⇧⌥⌘N), oder Option-Klick auf das +;
- Neue Maschine… am Ende der Liste des Maschinen-Chips auf dem Neue-Sitzung-Bildschirm;
- Neue Maschine… in der ⌘K-Palette.
Jedes davon öffnet den Einstellungseditor, betitelt Neuer Arbeitsbereich, ausgefüllt aus Ihren Vorgaben in Einstellungen und mit einem freien Namen wie Standard-Arbeitsbereich oder Standard-Arbeitsbereich 2. Geben Sie ihm einen Namen im Bereich Allgemein, ändern alles Weitere, was Sie brauchen, und klicken Erstellen (oder Abbrechen). Neuer Arbeitsbereich aus meinen Configs… führt zuerst den Anmeldedaten-Import aus dem Einrichtungsassistenten aus, damit die neue Maschine mit den auf Ihrem Mac gefundenen Anmeldedaten startet.
Jeder Agent ist auf jeder Maschine verfügbar, und eine Maschine nutzt die in Einstellungen › Modelle gesetzten Modelle, sofern Sie ihr in ihrem Bereich Modelle nicht eigene geben. Siehe Modelle und Anbieter.
Tipp: Die meisten Änderungen im Editor greifen, wenn Sie Erstellen oder Sichern klicken. Ein paar wirken sofort, weil sie gemeinsamen Zustand betreffen und nicht die Einstellungen der Maschine selbst: Modell-Downloads, MCP-OAuth-Anmeldungen, und SSH-Schlüssel-Importe.
Maschinen-Terminals und -Tabs
In einer Maschine ist jedes Terminal ein Fenster einer tmux-Sitzung. tmux ist die Quelle der Wahrheit: die App spiegelt die Fenster der Maschine als Tabs unter ihrer Zeile, sodass eine Maschine ohne offenes Fenster weiterlaufen, abgelöst, oder von einem anderen Mac gespiegelt werden kann (siehe Remote-Zugriff und Clients), ohne ihre Agenten zu stören.
Ist das Terminal einer Maschine auf der Bühne, wirken diese Kürzel auf ihre Tabs:
| Kürzel | Aktion |
|---|---|
| ⌘T | Neuer Tab (auch + auf der Maschinenzeile, und Arbeitsbereiche › Neuer Tab) |
| ⌘W | Den Tab schließen. Den letzten Tab zu schließen schließt die Maschine (siehe Eine Maschine schließen). |
| ⌘1 – ⌘9 | Zum Tab mit dieser Nummer gehen. Nummern erscheinen neben den ersten neun Tabs der gewählten Maschine. |
| ⌘D | Dieses Terminal dem Raster hinzufügen und das Raster zeigen (Arbeitsbereiche › Terminal zum Raster hinzufügen) |
⌘N startet weiterhin eine neue Sitzung. Ist eine Sitzung statt eines Terminals auf der Bühne, wirken ⌘1 – ⌘9 und ⌘W auf Sitzungen; siehe Die Sitzungsübersicht.
Tab-Labels zeigen das Programm im Vordergrund (claude, codex, eine Shell…). Das Symbol jedes Tabs trägt den Statuspunkt des Agenten: orange und pulsierend, während er arbeitet, grün, wenn er fertig ist, rot, wenn er Sie braucht.
Worktree-Tabs
Ein Worktree-Tab ist ein Agent, der in seinem eigenen Git-Worktree läuft: ein anderer Branch desselben Repositories, in einem eigenen Ordner ausgecheckt. Für Agenten-Unterhaltungen sind Branch-Sitzungen der übliche Weg dazu. Auf den Terminal-Tabs einer Maschine gibt es die klassischen Worktree-Befehle weiterhin.
Rechtsklicken Sie einen Tab für:
- Neuer Worktree… (⇧⌘G, Arbeitsbereiche › Neuer Worktree). Deaktiviert gezeigt als Neuer Worktree… (Nicht in einem Git-Repo), wenn der Tab nicht in einem Repository ist. Es öffnet einen Dialog, „Erstellt einen Git-Worktree, abgezweigt vom aktuellen Commit dieses Tabs, und öffnet darin einen verschachtelten Agenten.“, mit einem Aufgabennamen, dem Agenten (claude, codex, grok, kimi oder omp) und einem optionalen Anfangsprompt. Der Branch heißt
wt/<slug>nach dem Aufgabennamen. - Neue Automation…, das den Automations-Editor mit Maschine und Ordner dieses Tabs öffnet (siehe Automationen).
- Auf einem Worktree-Tab: Zusammenführen… (⇧⌘M, Arbeitsbereiche › Worktree zusammenführen), Terminal anhängen (eine einfache Shell im Ordner des Worktrees) und Worktree verwerfen (entfernt den Checkout und löscht seinen Branch, nach Rückfrage).
- Auf einem Merge-Tab mit Konflikten: Den Agenten die Konflikte lösen lassen.
Zusammenführen… lässt Sie wählen, wohin: in den Eltern-Worktree (die Voreinstellung), oder in jeden Vorfahren bis zur Wurzel des Repositories, markiert ⚠︎ überspringt Zwischenstufen, wenn eine Ebene übersprungen wird. Hat die Maschine eine GitHub-Anmeldung, pusht Pull Request erstellen den Branch und lässt den Agenten stattdessen einen Pull Request öffnen. Konflikte starten den Agenten im Merge-Tab, um sie zu lösen. Nur committete Arbeit wird gemergt; nicht committete Änderungen gehen verloren, wenn Sie den Worktree verwerfen.
Worktree-Tabs verschachteln sich unter dem Tab, von dem sie abgezweigt wurden, bis zu sechs Ebenen tief. Zeigt der Dateien-Bereich auf einem Maschinen-Tab ein Repository, bietet eine Leiste unter seinem Kopf Neuer Worktree…, und Zusammenführen und Löschen, wenn der Tab selbst ein Worktree ist.
Terminal-Aussehen
Maschinen-Terminals sind native, GPU-gerenderte Terminals. Ihre Schrift, Farben, ihr Cursor und die Fensterdeckkraft kommen aus den Darstellungs-Einstellungen der Maschine und greifen, sobald Sie sichern. Es werden nur Festbreitenschriften verwendet; alles andere fällt auf Menlo zurück. Bei einer Deckkraft unter 1,0 ist der Terminalbereich Milchglas über dem Schreibtisch (die Deckkraft ist auf 0,3–1,0 begrenzt). ⌘+, ⌘− und ⌘0 zoomen die Schrift, ebenso ein Trackpad-Kneifen und ein Zwei-Finger-Doppeltipp zum Zurücksetzen.
Diese Einstellungen gelten nur für Terminals. Die Chat-Ansicht einer Sitzung hat ihr eigenes Aussehen.
Das Raster
Das Raster kachelt bis zu 25 lebende Terminals (höchstens 5 × 5), aus jeder Mischung von Maschinen, damit Sie mehrere Agenten auf einmal beobachten können. Jede Zelle ist ihre eigene lebende Ansicht dieses tmux-Fensters, unabhängig von der eigenen Bühne der Maschine, beide können also offen sein.
- Zeigen Sie es, indem Sie den Knoten Raster oben im Abschnitt Virtuelle Maschinen anklicken, oder die Raster-Schaltfläche auf der eingeklappten Leiste. Seine Mitglied-Terminals sind unter dem Knoten gelistet; klicken Sie eines, um seine Zelle zu fokussieren.
- Fügen Sie Terminals hinzu, indem Sie eine Tab-Zeile auf den Raster-Knoten ziehen („Terminals hierher ziehen, um sie nebeneinander zu beobachten“), ⌘D auf einem Terminal drücken, oder mit Worktrees zum Raster hinzufügen im ⋯-Menü einer Maschine.
- Neue Terminals treten von selbst bei. Jedes Terminal, das nach dem Hochfahren einer Maschine geöffnet wird (ein Agenten-Tab, ein Worktree, ein einfaches Terminal), wird am Ende hinzugefügt. Ist das Raster voll, geht die älteste Zelle, um Platz zu machen. Rechtsklicken Sie den Raster-Knoten, um Neue Terminals automatisch hinzufügen ein- oder auszuschalten. Zellen von Hand umzuordnen schaltet es aus; die Anordnung ist dann Ihre.
- Zellen. Der Kopf jeder Zelle zeigt einen Statuspunkt, den Maschinennamen und das Tab-Label, mit den Schaltflächen Im Workspace öffnen und Aus dem Raster entfernen — das Terminal läuft weiter und einem Griff, um die Zelle anderswohin zu ziehen. Rechtsklick auf den Kopf für dieselben Aktionen, oder auf ein Mitglied unter dem Raster-Knoten für Aus dem Raster entfernen.
- Zoom. Doppelklicken Sie eine Zelle, oder drücken ⌘↩ auf der fokussierten Zelle, damit sie die Bühne füllt. Nochmal für zurück. Esc zoomt nicht zurück, weil Agenten Esc nutzen.
Zellen einer ausgeschalteten oder angehaltenen Maschine bleiben Platzhalter mit Aus oder Angehalten und einer Schaltfläche Starten. Zellen, deren Terminal aus einer laufenden Maschine verschwand, werden entfernt. Das Raster, samt der Automatisch-hinzufügen-Einstellung, wird über Neustarts hinweg in ~/Library/Application Support/BromureAC/grid-layout.json behalten.
Ablösen und wieder andocken
In eigenes Fenster ablösen (Maschinenmenü der Symbolleiste, oder die Ablösen-Schaltfläche auf einer Maschinenzeile) verschiebt eine laufende Maschine in ein eigenes Fenster; ihre Tabs werden ein Streifen Pillen in der Titelleiste dieses Fensters. Das abgelöste Fenster hat seine eigene Symbolleiste: die IP-Adresse (klicken zum Kopieren), eine Ordner-Schaltfläche, die die in die Maschine geteilten Host-Ordner listet, Neustart, Trace, Einstellungen, und Diese VM zurück ins Hauptfenster bewegen, um sie wieder anzudocken.
Der Dateien-Bereich
Der Dateien-Bereich ist ein Datei-Browser rechts von der Bühne. Schalten Sie ihn mit ⌃⌘E oder der Dateien-Schaltfläche der Symbolleiste um.
Er zeigt:
- den Ordner der Sitzung auf der Bühne, ob ihr Agent läuft oder nicht (in einem Raum die Sitzung der fokussierten Zelle);
- auf dem Terminal-Tab einer Maschine den aktuellen Ordner dieses Tabs (die Repository-Wurzel, wenn er in einem ist).
Wechseln Sie zwischen Sitzungen oder Tabs, wandert der Bereich mit. Gibt es nichts zu zeigen, liest er „Keine Sitzung ausgewählt“.
Durchsehen
- Der Kopf nennt den gezeigten Ordner. ↑ (Zum umschließenden Ordner) geht zum Elternordner; doppelklicken Sie einen Ordner, oder rechtsklicken ihn und wählen Diesen Ordner zeigen, um hineinzugehen.
- Dateien sind nach ihrem Git-Status gefärbt, mit Ein-Buchstaben-Abzeichen (M, A, U, D, R, !), und Ordner mit Änderungen tragen einen Punkt. Das gilt für das eigene Repository des Ordners und für darin verschachtelte Repositories, sodass ein Blick in Ihr Home immer noch die Änderungen jedes Projekts zeigt. Ordner mit Änderungen klappen sich einmal von selbst auf.
- Eine Pille zählt die geänderten Dateien. Die Filter-Schaltfläche wechselt zu Nur geänderte Dateien zeigen, und die Aktualisieren-Schaltfläche lädt neu (der Bereich aktualisiert sich außerdem alle 4 Sekunden, solange er sichtbar ist).
- Klicken Sie eine Datei, um eine Detailansicht mit den Tabs Diff und Datei zu öffnen: ein farbiges Diff mit +/−-Zahlen, oder eine Vorschau (Markdown gerendert, Quelltext hervorgehoben). Eine Ablösen-Schaltfläche öffnet das Detail in einem eigenen Fenster, das Ihrer Auswahl folgt.
Gehört die gezeigte Datei zum Agenten auf der Bühne, wachsen im Rand des Diffs Kommentarblasen: kommentieren Sie Zeilen, dann An den Agenten senden, um die Kommentare diesem Agenten in einer Nachricht zu übergeben. Das Review-Fenster tut dasselbe für eine ganze Änderung.
Dateien hinein und heraus bewegen
- Heraus. Ziehen Sie eine Datei in den Finder, oder rechtsklicken sie und wählen In „Downloads“ sichern. Pfad kopieren kopiert ihren Pfad innerhalb der Maschine.
- Hinein. Legen Sie Dateien aus dem Finder irgendwo auf den Bereich, um sie in den gezeigten Ordner zu kopieren. Ein leerer Ordner sagt „Leerer Ordner — Dateien hierher legen, um welche hinzuzufügen.“
Übertragungen laufen über den eigenen Kanal der Maschine, nicht über einen geteilten Ordner, sie funktionieren also auf jeder Maschine, auch auf fernen. Die Maschine muss laufen.
Wann er sich selbst öffnet
- Für eine Sitzung: Die App prüft die Ordner laufender Sitzungen etwa alle zehn Sekunden. Das erste Mal, dass die Sitzung auf der Bühne Änderungen hat (nicht committete Arbeit in einem Repository; in jedem anderen Ordner Dateien, die seit Beginn der Sitzung geschrieben wurden), öffnet sich der Dateien-Bereich. Schließen Sie ihn, bleibt er geschlossen, bis der Ordner wieder sauber ist (etwa nach einem Commit) und sich dann erneut ändert.
- Auf einem Maschinen-Tab: Ein Git-Repository zu betreten öffnet den Bereich, und es für einen Ordner zu verlassen, der keines ist, schließt ihn. Ihn von Hand zu schließen gewinnt, bis Sie zu einem anderen Repository wechseln.
Hinweis: Der Dateien-Bereich ändert nie Dateiinhalte. Er listet bis zu 20.000 Dateien (darüber wird der Baum abgeschnitten), zeigt Dateien bis 512 KB in der Vorschau und Diffs bis 1 MB.
Die Zwischenablage und das Einfügen von Dateien
Die Zwischenablage kommt über das Terminal selbst in Maschinen-Terminals hinein; es gibt nichts einzurichten.
- Gast → Mac. Im Gast zu kopieren (tmux-Kopiermodus, oder jedes Programm, das OSC 52 nutzt) landet auf der Zwischenablage des Macs. Eine Mausauswahl in tmux loszulassen kopiert sie.
- Mac → Gast. ⌘V fügt die Zwischenablage des Macs als Text ein (bracketed paste).
- Auswählen. Ein Mausziehen wählt Text aus; ⌘C kopiert ihn. Auswählen allein kopiert nie.
Dateien einfügen und ablegen
Hält die Zwischenablage Dateien statt Text, wird ⌘V in einem Maschinen-Terminal zu einer Dateiübertragung. Dasselbe passiert, wenn Sie Dateien auf das Terminal ziehen. Jede Datei wird in die Maschine unter /home/ubuntu/.bromure/pastes/ kopiert, und ihr Pfad in der Maschine wird an ihrer Stelle getippt, damit der Agent sie von der Disk lesen kann.
- Jede gewöhnliche Datei geht: Bilder, PDFs, Archive, alles. Eine kopierte Datei behält ihren Namen, mit einem Zeitstempel als Präfix und mit Zeichen, die eine Shell zitieren müsste, durch
_ersetzt. Ein Bitmap auf der Zwischenablage (ein Screenshot, ein „Bild kopieren“ eines Browsers) wird eine Dateiclipboard-<Zeitstempel>-<id>.png. - Bis 512 MB in einem Einfügen. Alles Größere, eine Auswahl, die einen Ordner enthält, oder eine Zwischenablage, die auch Text trägt, wird wie gewohnt als Text eingefügt, das gewöhnliche ⌘V wird also nie entführt.
- Ein Chip erscheint am Cursor mit dem Fortschritt des Uploads, bleibt kurz, wenn er fertig ist (rot bei Fehlschlag), und geht mit Ihrem nächsten Tastenanschlag weg.
- Eingefügte Dateien leben im Home-Image, ihre Pfade überstehen also einen Neustart. Dateien, die älter als 7 Tage sind, werden in der Maschine aufgeräumt.
Im Chat einer Sitzung werden abgelegte und eingefügte Dateien stattdessen zu Anhängen; siehe Der Chat.
Tipp: Links gehen von selbst in die andere Richtung. Öffnet ein Programm in der Maschine eine
http- oderhttps-URL (eine OAuth-Anmeldung,xdg-open), öffnet sie im Standardbrowser Ihres Macs.
Geteilte Ordner
Für fortlaufende Arbeit an Dateien, die auf Ihrem Mac liegen, teilen Sie den Ordner in die Maschine, statt Dateien hin und her zu kopieren. Bis zu 8 Host-Ordner können geteilt werden; jeder erscheint im Home des Gasts als ~/<Ordnername>. Siehe Ordner-Einstellungen.
Eine Maschine schließen
Sie schließen eine Maschine mit Diese VM schließen (dem × auf ihrer Zeile), der Schließen-Schaltfläche ihres abgelösten Fensters, oder ⌘W auf ihrem letzten Tab. Was passiert, legt Beim Schließen des Fensters in den Allgemein-Einstellungen der Maschine fest:
| Einstellung | Was sie tut |
|---|---|
| Im Hintergrund weiterlaufen lassen | Nur die Ansicht geht weg. Die VM läuft weiter und ihre Agenten arbeiten weiter; öffnen Sie sie jederzeit wieder aus der Seitenleiste. |
| Anhalten | Sichert das RAM der VM auf Disk und stoppt sie. Der nächste Start stellt sie mit denselben Terminals wieder her. |
| Herunterfahren | Schaltet die VM sauber aus. Systemdisk und Home bleiben; der nächste Start ist ein vollständiger Boot. |
| Nachfragen (Voreinstellung) | Fragt jedes Mal „…“ schließen?, mit Im Hintergrund weiterlaufen lassen, Anhalten, Herunterfahren und Abbrechen. |
Eine Maschine zu schließen ist nicht dasselbe wie eine Sitzung zu beenden. Um einen Agenten zu stoppen, beenden oder archivieren Sie seine Sitzung (siehe Die Sitzungsübersicht); die Maschine läuft für ihre anderen Sitzungen weiter.
Ein paar Details:
- Fortsetzen braucht dieselbe Maschine. Eine angehaltene Maschine kann nur mit derselben Konfiguration fortsetzen, ihre Identität, Netzadresse und geteilten Ordner werden also mit dem Schnappschuss gesichert. Ihre geteilten Ordner zu ändern, während sie angehalten ist, bittet Sie, den gesicherten Zustand zu verwerfen; der nächste Start ist dann ein frischer Boot. Home- und geteilte Ordner-Dateien sind davon nicht betroffen.
- Fehlgeschlagene Fortsetzungen. Lässt sich ein gesicherter Zustand nicht wiederherstellen, wenn Sie die Maschine selbst starten, bootet sie stattdessen frisch.
- Schließen zerstört nichts. Daten gehen nur mit Datenträger zurücksetzen, Persönlichen Ordner löschen…, Arbeitsbereich löschen, oder dem Löschen nach einem Alarm über Anmeldedaten-Abfluss — und selbst dann bleiben Einstellungen, Tokens und SSH-Schlüssel, und geteilte Host-Ordner werden nie berührt.
Wo eine Maschine gespeichert ist
Jede Maschine ist ein Ordner unter ~/Library/Application Support/BromureAC/profiles/<id>/:
| Pfad | Inhalt |
|---|---|
profile.json | Alle nicht geheimen Einstellungen. |
secrets.enc | Jedes Geheimnis, verschlüsselt mit einem Schlüssel in Ihrem Schlüsselbund. |
disk.img | Die eigene Kopie des Basis-OS der Maschine. |
home.img | Das dauerhafte /home/ubuntu. |
checkpoints/ | Rückkehrpunkte des Home (und der Systemdisk). |
vm.state | Das gesicherte RAM einer angehaltenen Maschine. |
agent/, ssh/ | Host-seitiges SSH-Schlüsselmaterial. Der private Schlüssel kommt nie in die VM. |
Ihre Vorgaben aus den Einstellungen liegen außerhalb von profiles/, weshalb sie nie als Maschine erscheinen. Geheimnisse werden nie in profile.json geschrieben oder in die VM kopiert: der Gast hält nur Stellvertreter, die der Host-Proxy auf dem Draht gegen die echten Werte tauscht (siehe Anmeldedaten und die Draht-Grenze).
Tipp:
disk.img,home.imgund die Prüfpunkte sind ext4-Images. Arbeitsbereiche › ext4-Datei öffnen… durchsucht sie, extrahiert daraus und repariert sie auf Ihrem Mac, ohne etwas zu booten. Siehe Erweitert.
Von der Kommandozeile
Alles in diesem Kapitel geht auch ohne das Fenster. Läuft die App, listet bromure-cli vm ls Maschinen und ihren Zustand, und workspaces create, workspaces edit, workspaces describe und workspaces rm erstellen, ändern, untersuchen und löschen sie (vm ist ein Alias für workspaces). Siehe CLI, API und MCP.