CodeNomad/docs/help/de/index.md
Pascal André 4b163382bc
feat(remote-control): serve web previews to paired devices (#1131)
Remote Control blocked `/previews/*`, so a phone or browser paired through
the tunnel had no web preview at all: the entry was hidden and the agent's
dev server stayed out of reach. Previews now work there, behind a host
setting that is on by default.

A preview's sandboxed document sends neither the device cookie nor a usable
`Origin`, so the Remote Control gate admits a live `/previews/<token>/…`
capability on its token alone, as local listeners already do, while the
host's Web previews switch is on. The ingress, which refused every
WebSocket, now admits preview upgrades only: `admitRemoteUpgrade()` parses
the target exactly as the preview proxy does and the manager hands the
socket to the application's path-preview upgrade handler, never to the
shared upgrade event (so `/previews/<token>/../../sidecars/…` cannot reach
another handler). Every other upgrade still gets 404.

The switch lives in Settings → Remote Access → Remote Control. Only the
host can change it (`PUT /api/remote-control/previews`); the registry
stores only the opt-out. Turning it off refuses later preview requests,
including the Referer-based root-relative asset fallback, and closes live
preview WebSockets; remote `/api/meta` then reports `previewsUnavailable`,
which hides Open web preview on paired devices.

Exposing previews through a public tunnel makes their address a bearer
credential, so path-proxied preview responses now carry
`Content-Security-Policy: sandbox` with the iframe's own flags (one shared
constant, `previews/sandbox.ts`) and `Referrer-Policy: same-origin`, on
every content type. A preview document opened outside its iframe stays an
opaque origin instead of running with CodeNomad's origin and device cookie,
and the capability path stays out of Referer headers to other sites. Such a
standalone document then behaves like the preview iframe: its root-relative
resources rely on the runtime bridge's path rewriting, without the Referer
fallback. The per-token preview.localhost host keeps its own origin and
headers.

Help (Remote Control, mobile and client overview pages, all ten locales),
dev-docs/REMOTE_CONTROL.md, architecture.md and UI_SHELL.md describe the
behavior; the switch label and caption are translated in all locales.

Validation: a Remote Control surface test drives the real application
through the ingress: a preview page and an `Origin: null` form post work
without a device cookie and carry the sandbox and referrer headers, unknown
tokens and non-preview or dot-segment upgrades get 404, a preview WebSocket
upgrades, a paired device cannot change the switch, and turning it off
closes the live WebSocket, refuses the preview and its Referer asset
fallback, and flags the metadata.
Registry, metadata and proxy tests cover persistence of the opt-out, the
flag and the headers per entry point; browser tests cover the switch and
the conversation header with previews on and off.
2026-10-24 20:25:25 +02:00

7.9 KiB
Raw Permalink Blame History

CodeNomad-Hilfe

Diese Anleitung beschreibt die Bedienung des aktuellen CodeNomad-Desktop- oder Browser-Arbeitsbereichs mit Ihrem OpenCode-Dienst. Im Mittelpunkt stehen die Bedienelemente, Ausführungsgrenzen und Wiederherstellung von CodeNomad – keine Einführung in die OpenCode-Konfiguration und kein Versionsarchiv.

Zuerst lesen

CodeNomad verbindet Ihren Arbeitsbereich mit einem gemeinsam genutzten OpenCode-Hintergrunddienst. Sitzungen und Nachrichten gehören zu OpenCode; Tabs, Eingabeentwürfe und Layout zum CodeNomad-Client. Das Schließen eines Projekt-Tabs schließt das Projekt in CodeNomad; Sitzungen laufen in OpenCode weiter und sind nach erneutem Öffnen des Projekts wieder verfügbar. CodeNomad zu schließen beendet nicht OpenCode.

  1. Prüfen Sie die Host-Anforderungen und die OpenCode-Einrichtung.
  2. Öffnen Sie ein Projekt und wählen Sie dann Agent, Modell und Denkaufwand der Unterhaltung.
  3. Prüfen Sie vor Änderungen an Zugangsdaten, Dienstneustarts oder dem Löschen von Verlauf den betroffenen Geltungsbereich. Andere Clients können denselben nativen Dienst verwenden.

Die öffentliche Hilfe funktioniert ohne CodeNomad, dessen Backend oder Anmeldung. Hilfe → CodeNomad-Hilfe auf dem Desktop und Hilfe öffnen in der Befehlspalette öffnen sie separat in der aktuellen Oberflächensprache. Sprachänderungen übersetzen keine gespeicherten Unterhaltungen.

Einstellungen öffnet in einem lokalen Desktop-Client das native Fenster Einstellungen; Browser- und Remote-Clients verwenden eingebettete Einstellungen. Pfade wie Einstellungen → Anbieter bezeichnen auf beiden Oberflächen denselben Einstellungsbereich.

Für einen eigenständigen Browser-Arbeitsbereich auf einem vorbereiteten Host erklärt die Server-Anleitung diesen Start sowie die Anforderungen an Authentifizierung und TLS:

npx @neuralnomads/codenomad --generate-token --launch

Client auswählen

Funktion Lokaler Desktop Direkter Browser oder Remote-Server-Fenster Gekoppeltes Fernsteuerungsgerät
Projekte, Unterhaltungen, Dateien und Verlauf Ordner und native Sitzungen des Backends Ordner und Sitzungen des verbundenen Servers Autorisierte Arbeitsbereichsoberflächen des Hosts
Native Einstellungen und Desktop-Fenster Verfügbar Browser-/Remote-Einstellungen bleiben im Client Nur auf dem Host verfügbare Desktop-Steuerung nicht verfügbar
Browser-Vorschau der Sitzung Nativ in Electron und Windows-Tauri; iframe auf anderen Tauri-Plattformen iframe, soweit verfügbar iframe, solange der Host Web-Vorschauen erlaubt (Standard)
Native Desktop-/Browser-Automatisierung Zugeordnete lokale Fenster/Vorschauen Kein Ersatz für native Desktop-Automatisierung Nur auf dem Host verfügbare Automatisierungs-Endpunkte nicht verfügbar
Authentifizierung Lokale Ersteinrichtung oder Passwortsitzung Server-Passwortsitzung Zugangsdaten des gekoppelten Geräts
PWA-Installation Native App oder Browser verwenden Browserabhängig; sicherer Kontext erforderlich Browserabhängig; Kopplung weiterhin erforderlich

Die genauen Grenzen erläutern Browser-Vorschauen und SideCars, Fernsteuerung und Mobil/PWA. Ein Remote-Fenster macht das Dateisystem Ihres Geräts nicht zum Server-Arbeitsbereich.

Zuständigkeit für den Zustand verstehen

Begriff Bedeutung in CodeNomad
Projekt-Tab / Arbeitsbereich / Instanz Eine CodeNomad-Verbindung zu einem ausdrücklich geöffneten Ordner; mehrere Tabs können den gemeinsamen Dienst nutzen.
Unterhaltung / Sitzung Nativer OpenCode-Verlauf und Ausführung, die einem Verzeichnis zugeordnet sind.
Familie Eine Unterhaltung mit ihren rekursiven Untersitzungen; relevant für Verschieben, Aktivität, Yolo und Missionssteuerung.
Worktree Ein zugehöriger Repository-Checkout, der zum Durchsuchen oder als Sitzungsort ausgewählt wurde. Ihn zu durchsuchen verschiebt keine Unterhaltung.
Location Der verzeichnisbezogene native Laufzeitkontext von OpenCode; das Schließen eines Projekt-Tabs schließt das Projekt nur in CodeNomad und entfernt keine native Location.
CodeNomad-Backend Der Server für Arbeitsbereiche, Git, Authentifizierung und Client-Verbindungen. Sein Konto und seine Umgebung bestimmen den Dateisystemzugriff des Backends.
Konfiguration CodeNomad-Einstellungen im Konfigurationsverzeichnis des Servers; globale/projektbezogene OpenCode-Einstellungen haben ihren eigenen nativen Geltungsbereich.
Fenster Eigene Tabs, Navigation, Entwürfe und wiederhergestellte Ansicht. Der native Verlauf wird gemeinsam genutzt, nicht für jedes Fenster kopiert.
Desktop-Datenprofil In den Einstellungen gewählter nativer/Client-Speicher; isoliert nicht automatisch OpenCode-Sitzungen oder jede gemeinsam genutzte Konfiguration.

Das Arbeitsbereichs-Stammverzeichnis begrenzt, welche Ordner CodeNomad öffnet; es ist keine Agenten-Sandbox. Lesen Sie die Sicherheitshinweise, bevor Sie einen Host zugänglich machen oder umfassenden Werkzeugzugriff erlauben.

Nach Aufgabe erkunden

Aufgabe Anleitung
Arbeitsbereich installieren oder bereitstellen Installation, Server-Referenz, Netzwerk und TLS
Über Checkouts und Unterhaltungen hinweg arbeiten Projekte, Unterhaltungen, Dateien
Verlauf finden oder sicher bereinigen Verlauf
Native Fragen und Berechtigungsanfragen beantworten Berechtigungen
Begrenzte oder tägliche Arbeit koordinieren Missionen
Ausführung und Integrationen konfigurieren OpenCode, Anbieter, Integrationen
Weiteres Gerät verbinden Fernsteuerung, Sicherheit, Mobil
Arbeitsbereich anpassen Einstellungen, Tastenkürzel, Sprache, Erweiterungen
Native Anwendung verwalten Desktop, Browser-Vorschauen und SideCars, Updates
Probleme untersuchen oder beitragen Fehlerbehebung, Support und Quellcode-Builds

Arbeit beobachten, ohne sie zu verändern

Das Status-Panel zeigt die Anbieternutzung und nativen Hintergrund-Shells der aktiven Sitzung. Unterhaltungsstatus und Unteraktivität kennzeichnen arbeitende, komprimierende und auf Eingaben wartende Sitzungen. Eine Hintergrund-Shell zu beobachten ist etwas anderes, als im Eingabefeld eine Shell-Anfrage zu senden oder einen separat gehosteten Terminal-SideCar zu verwenden.

  1. Öffnen Sie Status → Hintergrund-Shells für die Location der ausgewählten Unterhaltung (oder den geöffneten Arbeitsbereich, wenn keine Unterhaltung ausgewählt ist).
  2. Prüfen Sie Befehl, Shell, Verzeichnis, Status, PID und Exit-Code, soweit vorhanden; wählen Sie Ausgabe anzeigen für die verfügbare native Ausgabe.
  3. Zum Entfernen verwenden Sie während der Ausführung Stoppen und entfernen oder nach dem Ende Entfernen und bestätigen das Ziel.

Das Entfernen einer laufenden Shell beendet diesen Prozess; das Schließen ihres Ausgabefensters nicht. Aktualisieren/Wiederverbinden liest den aktuellen nativen Zustand, statt verpasste Ausgabeereignisse zu rekonstruieren.

Anzeigeschnappschüsse werden nach nativen Änderungen, Wiederverbindungen und bei sichtbarem Bedarf aktualisiert. Sie sind keine garantierten Wiederholungsprotokolle. Ist ein Ergebnis ungewiss, aktualisieren Sie vor dem Wiederholen einer Änderung den maßgeblichen Zustand; senden Sie nicht allein wegen einer verpassten Benachrichtigung oder eines verpassten Ereignisses erneut.