merge main to pick up German locale for custom provider keys

Co-authored-by: Serhii Dziupin <makeittech@users.noreply.github.com>
This commit is contained in:
Cursor Agent
2026-08-03 08:53:06 +00:00
co-authored by Serhii Dziupin
233 changed files with 19087 additions and 1831 deletions
@@ -0,0 +1,39 @@
---
title: Agent-Steuerungswerkzeug
description: Lass einen Agenten OpenChamber-Sitzungen, Worktrees und geplante Aufgaben direkt aus dem Chat verwalten.
---
# Agent-Steuerungswerkzeug
Verwende das Agentenwerkzeug `openchamber`, um Arbeit in der App direkt aus dem Chat zu verwalten. Es ist standardmäßig aktiviert, wenn OpenChamber seinen eigenen lokalen OpenCode-Server ausführt; du musst kein separates Werkzeug installieren und keinen Shell-Befehl ausführen.
## Was du anfragen kannst
Sprich einfach in natürlicher Sprache mit dem Agenten. Zum Beispiel:
- "Erstelle in diesem Projekt eine neue OpenChamber-Sitzung, verwende das Modell `openai/gpt-5.6-sol` und sende ihr diese Aufforderung: überprüfe den Authentifizierungsfluss."
- "Erstelle für diese Aufgabe eine neue OpenChamber-Sitzung in einem separaten Worktree und bitte sie, Tests für den Login-Fluss hinzuzufügen."
- "Verwende OpenChamber, um meine 10 neuesten Sitzungen aufzulisten und ihren aktuellen Status anzuzeigen."
- "Erstelle eine geplante OpenChamber-Aufgabe mit dem Namen Weekday review, die diese Aufforderung werktags um 09:00 sendet: review changes since the last run."
- "Führe die geplante OpenChamber-Aufgabe mit dem Namen Weekday review jetzt aus."
- "Prüfe die OpenChamber-Sitzung mit dem Namen Authentication review und zeige mir die neueste Antwort des Assistenten."
Das Werkzeug kann Projekte und Modelleinstellungen auflisten, Sitzungen erstellen und weiterführen, eine Sitzung forken, isolierte Worktree-Sitzungen erstellen und geplante Aufgaben verwalten. Auf diese Weise gestartete Sitzungen erscheinen in OpenChamber wie jede andere Sitzung auch, sodass du sie öffnen und die Arbeit selbst fortsetzen kannst.
## Beachten
- Neue Sitzungsaufforderungen kehren standardmäßig sofort zurück. Verfolge die Sitzung in OpenChamber oder bitte den Agenten, sie später noch einmal zu prüfen.
- Ein separater Worktree wird nur erstellt, wenn du ausdrücklich danach fragst. Nicht-committete Änderungen aus deinem aktuellen Worktree werden nicht dorthin kopiert.
- Das Werkzeug kann keine Sitzungen oder Worktrees löschen, keine Projektpfade registrieren, keine beliebigen Shell-Befehle ausführen und keine beliebigen URLs aufrufen.
## Werkzeug ein- oder ausschalten
Öffne **Einstellungen → Allgemein → OpenCode CLI**, ändere **Agent control tool** und wähle dann **Save + Reload**. Die Einstellung gilt, nachdem der verwaltete OpenCode-Server neu gestartet wurde.
Das Werkzeug ist nicht verfügbar, wenn OpenChamber über `OPENCODE_HOST` oder skip-start mit einem externen OpenCode-Server verbunden ist oder innerhalb der VS-Code-Erweiterung läuft. Desktop- und Web-Installationen, die den verwalteten OpenCode-Server von OpenChamber verwenden, unterstützen es automatisch.
## Verwandt
- [Geplante Aufgaben](/scheduled-tasks/)
- [Worktree-Sitzungen](/worktrees/)
- [Sitzungsziele](/session-goals/)
@@ -0,0 +1,39 @@
---
title: Befehle & Snippets
description: Wiederverwendbare Slash-Befehle und Text-Snippets für den Chat erstellen.
---
# Befehle & Snippets
Sowohl Befehle als auch Snippets ersparen dir das wiederholte Tippen derselben Dinge. Befehle sind ganze Prompts, die du mit `/` aufrufst; Snippets sind Textbausteine, die du mit `#` in eine Nachricht einfügst.
## Befehle
Ein Befehl ist ein gespeicherter Prompt, den du mit einem Slash aufrufst, etwa `/review`. Du verwaltest ihn unter **Einstellungen → Befehle**.
1. Öffne **Einstellungen → Befehle** und erstelle einen Befehl.
2. Gib ihm einen Namen, eine Beschreibung und den Prompt-Text, den er senden soll.
3. Optional kannst du ihn an einen bestimmten Agenten oder ein Modell binden.
4. Wähle den Geltungsbereich: persönlich oder projektbezogen.
Gib im Chat als **erstes** Zeichen der Nachricht `/` ein, um Befehle anzuzeigen, und wähle dann einen aus. Dein Text kann Platzhalter verwenden:
- `$ARGUMENTS` — alles, was du nach dem Befehl eingibst
- `@filename` — fügt den Inhalt einer Datei ein
- `` !`command` `` — fügt die Ausgabe eines Shell-Befehls ein
Die eingebauten Befehle `init` und `review` können zurückgesetzt, aber nicht gelöscht werden.
## Snippets
Ein Snippet ist wiederverwendbarer Text, auf den du inline mit einer Raute verweist, zum Beispiel `#signoff`. Du verwaltest ihn unter **Einstellungen → Snippets**.
1. Öffne **Einstellungen → Snippets** und erstelle ein Snippet.
2. Gib ihm einen Namen und den Text, für den es steht. Füge Aliase hinzu, wenn du mehr als einen Auslöser möchtest.
3. Wähle den persönlichen oder projektbezogenen Geltungsbereich.
Gib im Chat `#` ein und wähle ein Snippet aus. OpenChamber ersetzt es vor dem Senden durch den vollständigen Text.
## Weiterführend
- [Skills](/skills/) — größere Anweisungssätze bei Bedarf laden
@@ -0,0 +1,68 @@
---
title: Ein Gerät verbinden
description: Kopple dein Telefon, deinen Desktop oder einen anderen Browser mit deinem OpenChamber-Server über einen einmaligen QR-Code.
---
# Ein Gerät verbinden
Kopple ein weiteres Gerät — die Mobile App, die Desktop-App oder einen Browser auf einem anderen Rechner — mit deinem OpenChamber-Server, indem du einen einmaligen QR-Code scannst. Das ist der empfohlene Weg, Geräte zu verbinden; du musst keine Ports öffnen und keine Adressen eintippen.
## Gerät koppeln
1. Öffne auf dem Rechner mit OpenChamber **Settings → Remote Instances → Connect to this server** und drücke **Add a device**.
2. Gib dem Gerät einen Namen (z. B. *Mein iPhone*), damit du es später wiedererkennst.
3. Wähle, wo du das Gerät nutzen wirst:
- **This computer only** — für Apps, die auf genau diesem Rechner laufen
- **Home network only** — verbindet sich direkt über dein WLAN; funktioniert außerhalb dieses Netzwerks nicht
- **Anywhere** — funktioniert zu Hause und unterwegs; Daten außerhalb deines Netzwerks laufen über das [Private Relay](/private-relay/), ein Ende-zu-Ende-verschlüsselter Tunnel ohne zusätzliche Einrichtung
4. Drücke **Create QR code**.
5. Scanne den Code auf dem anderen Gerät:
- **mobile app** — tippe auf dem Verbindungsbildschirm (oder in der Instanzliste) auf **Scan QR code**
- **desktop app** — kopiere stattdessen den Verbindungslink und füge ihn unter **Settings → Remote Instances → Other OpenChamber servers → Import Link** ein
Der Dialog schließt sich von selbst, sobald das Gerät verbunden ist, und das Gerät erscheint mit Live-Status in der Liste. Das wars — die Kopplung ist abgeschlossen.
## So bleibt die Kopplung sicher
- **Der QR-Code ist nur einmal verwendbar.** Er funktioniert in dem Moment nicht mehr, in dem ein Gerät ihn einlöst, und läuft von selbst ab, wenn er nie benutzt wird.
- **Jedes Gerät erhält sein eigenes Token.** Beim Scannen wird niemals dein UI-Passwort offengelegt, und das Token eines Geräts kann nicht verwendet werden, um sich als ein anderes auszugeben.
- **Du behältst die Kontrolle.** Jedes gekoppelte Gerät wird mit Name, Plattform und Verbindungsstatus angezeigt — du kannst jedes davon jederzeit widerrufen.
- **Verkehr von unterwegs ist Ende-zu-Ende verschlüsselt.** Bei **Anywhere** läuft Verkehr außerhalb deines Netzwerks über das [Private Relay](/private-relay/), das nicht lesen kann, was hindurchläuft.
## Gekoppelte Geräte verwalten
**Settings → Remote Instances → Connect to this server** listet jedes Gerät, das diesen Server erreichen kann, mit einem grünen Punkt, wenn es online ist, und zeigt an, ob es über das lokale Netzwerk oder das Relay verbunden ist.
- **Revoke** trennt ein Gerät sofort. Kopple es mit einem neuen QR-Code erneut, wenn du es dir anders überlegst.
- **Clear revoked** räumt die Liste auf.
Dasselbe physische Gerät bleibt nur in einem Eintrag, auch wenn es sich später erneut anmeldet — du sammelst keine Duplikate an.
## Über die Kommandozeile verbinden
Wenn der Server ohne UI läuft (also headless), erstelle einen Verbindungslink in einem Terminal auf diesem Rechner.
Für ein Gerät im selben Netzwerk:
```bash
openchamber connect-url --port 3000 --qr
```
Für ein Gerät, das sich von **überall** verbinden soll — das entspricht der Wahl von **Anywhere** im Dialog:
```bash
openchamber connect-url --relay --qr
```
Ein `--relay`-Link enthält beide Routen, genau wie der Dialog: Das Gerät verbindet sich direkt über dein lokales Netzwerk, wenn es den Server erreichen kann, und fällt auf das [Private Relay](/private-relay/) zurück, wenn es unterwegs ist. Das Relay startet von selbst: Eine laufende Instanz übernimmt den Link innerhalb einer Minute, eine gestoppte Instanz beim nächsten Start.
> Die direkte Route funktioniert nur, wenn der Server tatsächlich im Netzwerk lauscht. Standardmäßig lauscht OpenChamber nur auf dem Rechner selbst — starte es mit `--lan`, damit es über WLAN erreichbar ist. Der Befehl warnt dich (`[LAN_UNREACHABLE]`), wenn die direkte Route des Links von anderen Geräten nicht nutzbar ist; ein `--relay`-Link funktioniert dann trotzdem, nur immer über das Relay.
Der ausgegebene Link und QR-Code funktionieren genau wie die aus dem Einstellungsdialog — nur einmal verwendbar, mit Ablaufzeit und widerrufbar.
## Verwandt
- [Private Relay](/private-relay/) — wie "Anywhere"-Verbindungen funktionieren
- [Mobile Apps](/mobile/) — die iOS- oder Android-App installieren
- [Remote Instances](/remote-instances/) — die Desktop-App per SSH oder Link mit Servern verbinden
- [Remote access](/troubleshooting/remote-access/) — wenn sich ein Gerät nicht verbinden kann
+38
View File
@@ -0,0 +1,38 @@
---
title: Kontext
description: Sieh, wie viel des Modellgedächtnisses eine Session verwendet.
---
# Kontext
Jedes Modell kann immer nur so viel von einer Unterhaltung gleichzeitig halten — seinen Kontext. OpenChamber zeigt dir, wie voll er ist, damit du erkennst, wenn eine Session an die Grenze kommt und eine Antwort vielleicht ältere Details fallen lässt.
## Die schnelle Anzeige
Während du chattest, zeigt eine kleine Anzeige den prozentualen Kontextverbrauch. Die Farbe ändert sich, während er voller wird:
- grün — noch reichlich Platz
- gelb — wird voll (etwa drei Viertel)
- rot — fast voll
Bewege den Mauszeiger darüber (oder tippe sie auf dem Handy an), um die genauen Token-Zahlen zu sehen.
## Das vollständige Kontext-Panel
Öffne den Tab **Kontext** in der rechten Seitenleiste für ein vollständigeres Bild der aktuellen Session:
- das verwendete Modell und wann die Session gestartet wurde
- Gesamtzahl der Tokens im Verhältnis zum Limit des Modells
- Gesamtzahlen für Nachrichten und Kosten
- eine Aufschlüsselung der Token der letzten Antwort
- eine grobe Aufteilung dessen, was den Kontext belegt (deine Nachrichten, die des Agenten, Tool-Ausgaben)
Die Aufschlüsselung ist eine Schätzung, keine exakte Zahl — nutze sie, um zu erkennen, was das Fenster füllt, nicht für die Abrechnung.
## Was tun, wenn es voll ist
Starte für eine neue Aufgabe eine frische Session, statt eine Session endlos wachsen zu lassen. Ein kürzerer Kontext ist schneller und hält das Modell fokussiert.
## Verwandtes
- [Projekte](/projects/) — Sessions werden pro Projekt gruppiert
@@ -0,0 +1,22 @@
---
title: Desktop-Browser
description: Durchsuche jede Seite in der Desktop-App mit Inspektion und Konsolenaufzeichnung.
---
# Desktop-Browser
Die Desktop-App hat einen eingebauten Browser, damit du jede Seite direkt neben deinem Chat öffnen, auf Elemente zeigen und danach fragen sowie die Konsole der Seite aufzeichnen kannst. Öffne ihn über die Globus-Schaltfläche im App-Kopfbereich.
> Der Desktop-Browser ist eine Funktion **nur für den Desktop**. Im Web bietet das [Preview](/preview/)-Panel dieselben Inspektions- und Konsolentools für deinen lokalen Dev-Server.
## Inspizieren und annotieren
Aktiviere **inspect** und klicke auf ein beliebiges Element auf der Seite. OpenChamber erstellt dazu eine Notiz — was es ist, welche Stile es hat, wo es sich befindet und einen Screenshot — und hängt sie an deine Chatnachricht an. Das ist der schnellste Weg, dem Agenten zu sagen: „dieses Element, genau hier“.
## Konsolenaufzeichnung
Der Browser sammelt die Konsolenausgabe der Seite — Fehler, Warnungen und Logs — damit du sie filtern und lesen kannst, ohne die Entwicklertools zu öffnen.
## Verwandt
- [Preview & Dev Servers](/preview/) — dieselben Tools für deinen lokalen Dev-Server
@@ -0,0 +1,41 @@
---
title: Desktop-Tunnel
description: Erstelle Cloudflare- oder Ngrok-Tunnel aus der Desktop-App.
---
# Desktop-Tunnel
Die Desktop-App kann unter **Settings → OpenChamber → Tunnel** einen öffentlichen Tunnel erstellen. Für diesen Weg musst du OpenChamber nicht per CLI starten.
## Anbieter installieren
OpenChamber startet das Provider-CLI auf deinem Rechner. Installiere zuerst den Anbieter, den du verwenden möchtest:
```bash
brew install cloudflared
brew install ngrok
```
Cloudflare verwendet `cloudflared`. Ngrok benötigt ein ngrok-Konto und ein Authtoken aus dem ngrok-Dashboard:
```bash
ngrok config add-authtoken <your-ngrok-token>
```
## In der App starten
1. Öffne **Settings → OpenChamber → Tunnel**.
2. Wähle **Cloudflare** oder **Ngrok**.
3. Starte einen Quick Tunnel.
4. Scanne den erzeugten QR-Code mit deinem Telefon.
Ngrok unterstützt derzeit Quick Tunnels. Cloudflare unterstützt Quick Tunnels und verwaltete Cloudflare-Modi.
## Zugriffsschutz
Auch wenn die Anbieter-URL selbst öffentlich ist, schützt OpenChamber den Zugriff weiterhin mit seinem eigenen Verbindungs-Token. Der erzeugte Verbindungslink enthält ein Einmal-Token, hat eine TTL, und alte unbenutzte Links werden widerrufen, wenn du einen neuen erzeugst oder den Tunnel stoppst bzw. neu startest.
## Verwandt
- [Tunnels](/tunnels/) — Tunnel-Nutzung per CLI und verwaltete Cloudflare-Modi
- [PWA & Mobile](/mobile/) — OpenChamber vom Telefon aus erreichen
@@ -0,0 +1,138 @@
---
title: Umgebungsvariablen
description: Konfiguriere die OpenChamber- und OpenCode-Integration mit Umgebungsvariablen.
---
# Umgebungsvariablen
OpenChamber liest diese Umgebungsvariablen beim Start. Für Startdienste speichert `openchamber startup enable` die aktuelle Umgebung standardmäßig als Schnappschuss, also führe den Befehl nach Änderungen an den Variablen, die der Dienst verwenden soll, erneut aus.
## OpenChamber-Server
### `OPENCHAMBER_HOST`
Bind-Adresse für den OpenChamber-Webserver. Verwende `0.0.0.0`, um Zugriff von anderen Maschinen zu erlauben.
### `OPENCHAMBER_UI_PASSWORD`
Passwort für die Browser-Oberfläche. Verwende es, wenn du außerhalb von localhost bindest, Tunnels nutzt oder hinter einem Reverse Proxy läufst.
### `OPENCHAMBER_API_ONLY`
Startet OpenChamber im Headless-Modus, wenn auf `true` oder `1` gesetzt. API-Routen bleiben für Desktop- und Mobile-Clients verfügbar, aber die Browser-Oberfläche wird nicht ausgeliefert.
### `OPENCHAMBER_DATA_DIR`
Überschreibt das OpenChamber-Datenverzeichnis. Standard ist `~/.config/openchamber`.
### `OPENCHAMBER_COMPRESS_API`
Steuert die Komprimierung von API-Antworten. Verwende `true` oder `1`, um sie zu erzwingen, und `false` oder `0`, um sie zu deaktivieren.
### `OPENCHAMBER_SKIP_API_COMPRESSION`
Deaktiviert die Komprimierung von API-Antworten, wenn auf `true` oder `1` gesetzt. Das hat Vorrang vor `OPENCHAMBER_COMPRESS_API`.
### `OPENCHAMBER_VERBOSE_REQUEST_LOGS`
Aktiviert ausführliche HTTP-Request-Logs, wenn auf `true` oder `1` gesetzt.
### `OPENCHAMBER_UPDATE_API_URL`
Überschreibt den API-Endpunkt für Update-Prüfungen. Die meisten Nutzer sollten das nicht setzen.
### `OPENCHAMBER_PACKAGE_MANAGER`
Erzwingt den Paketmanager, den Update-Operationen verwenden, wenn die automatische Erkennung falsch liegt.
## OpenCode-Server
### `OPENCODE_HOST`
Verbindet OpenChamber mit einem vorhandenen OpenCode-Server. Der Wert muss ein `http`- oder `https`-Origin mit explizitem Port und ohne Pfad, Query oder Hash sein. `OPENCODE_HOST` hat Vorrang vor `OPENCODE_PORT`.
### `OPENCODE_PORT`
Legt den Port des OpenCode-Servers fest. Bei verwaltetem OpenCode fordert dies den verwalteten Port an; mit `OPENCODE_SKIP_START=true` verbindet es sich mit einem externen Server auf diesem Port.
### `OPENCODE_SKIP_START`
Verhindert, dass OpenChamber einen eigenen OpenCode-Server startet, wenn auf `true` gesetzt.
### `OPENCHAMBER_OPENCODE_HOSTNAME`
Bind-Hostname für den von OpenChamber verwalteten OpenCode-Server. Standard ist `127.0.0.1`.
### `OPENCODE_BINARY`
Pfad zur ausführbaren `opencode`-Datei, die OpenChamber ausführen soll.
### `OPENCODE_CONFIG`
Pfad zu einer bestimmten OpenCode-Konfigurationsdatei.
### `OPENCODE_CONFIG_DIR`
Pfad zu einem bestimmten OpenCode-Konfigurationsverzeichnis für Agents, Skills, Snippets und Konfigurationssuche.
### `OPENCODE_DATA_DIR`
Benutzerdefiniertes Datenverzeichnis für den verwalteten OpenCode-Server.
### `OPENCODE_WSL_DISTRO`
Wählt die WSL-Distribution für die OpenCode-Integration unter Windows aus.
### `OPENCHAMBER_OPENCODE_WSL_DISTRO`
OpenChamber-spezifischer Alias zur Auswahl der WSL-Distribution. `OPENCODE_WSL_DISTRO` hat Vorrang, wenn beide gesetzt sind.
### `OPENCODE_JWT_SECRET`
Geheimnis zum Signieren von UI-Authentifizierungstokens. Verwende für dauerhafte Diensteinrichtungen einen langen, zufälligen Wert.
## Terminal und Git
### `OPENCHAMBER_TERMINAL_SHELL`
Shell-Executable, die OpenChamber für Terminal-Sessions verwendet.
### `OPENCHAMBER_GIT_BINARY`
Git-Executable, die OpenChamber-Git-Funktionen verwenden.
### `GIT_BINARY`
Alternative Git-Executable-Überschreibung. Bevorzuge `OPENCHAMBER_GIT_BINARY` für OpenChamber-spezifische Konfiguration.
### `OPENCHAMBER_GIT_READ_CACHE_TTL_MS`
Lebensdauer in Millisekunden für zwischengespeicherte Git-gestützte Dateilesevorgänge. Setze `0`, um diesen Cache beim Debuggen zu deaktivieren.
## Voice und Tunnels
### `OPENAI_API_KEY`
API-Schlüssel, den OpenChamber-Voice-Funktionen für OpenAI-kompatible Dienste verwenden.
### `OPENCHAMBER_ALLOW_REMOTE_OPENAI_COMPAT_URLS`
Erlaubt entfernte OpenAI-kompatible Basis-URLs für Voice-Funktionen, wenn auf `true` oder `1` gesetzt.
### `NGROK_AUTHTOKEN`
ngrok-Auth-Token, den OpenChamber-Tunnel-Befehle verwenden. Du kannst ngrok auch mit `ngrok config add-authtoken <token>` konfigurieren.
## Laufzeit-Helfer
### `BUN_BINARY`
Bun-Executable, die OpenChamber beim Starten von Daemon-Prozessen verwenden soll.
### `BUN_INSTALL`
Installationswurzel von Bun. OpenChamber verwendet sie, um `bin/bun` für Daemon-Start und Updates zu finden.
### `VITE_OPENCODE_URL`
Build-Zeit-API-Basis-URL für die mit Vite gebaute Web-App. Die meisten Nutzer sollten sie für die normale CLI- oder Desktop-Nutzung nicht setzen.
@@ -0,0 +1,30 @@
---
title: Git-Identitäten
description: Committe mit dem richtigen Namen und der richtigen E-Mail für jedes Repository.
---
# Git-Identitäten
Eine Git-Identität ist der Name und die E-Mail-Adresse, mit denen deine Commits signiert werden. Wenn du zwischen privaten und Arbeits-Repos wechselst, kannst du Identitäten speichern und pro Repository die richtige anwenden, statt dich auf eine einzige globale Einstellung zu verlassen. Verwalte sie unter **Einstellungen → Git**.
## Eine Identität hinzufügen
1. Öffne **Einstellungen → Git** und wähle **New**.
2. Gib den **name** und die **email** ein, mit denen committen werden soll.
3. Wähle aus, wie sie sich beim Remote authentifiziert:
- **SSH** — verweise auf einen SSH-Schlüssel
- **token** — verwende eine gespeicherte Anmeldedaten für einen Host
4. Gib ihr optional eine Farbe und ein Symbol, damit sie leicht zu erkennen ist.
Auch deine globale System-Identität wird angezeigt, allerdings nur lesbar.
## Eine Identität auf ein Repo anwenden
Das Anwenden einer Identität schreibt sie in die **lokale** Git-Konfiguration dieses Repositories — sie betrifft nur dieses Repo, nicht deine globale Einstellung. SSH-Identitäten setzen außerdem den zu verwendenden SSH-Befehl auf deinen Schlüssel; Token-Identitäten richten die Anmeldedatenspeicherung für den Host ein.
Du kannst Identitäten importieren, die OpenChamber aus deinen vorhandenen Git-Anmeldedaten erkennt, und sie als Token-Identitäten speichern.
## Verwandt
- [Git- & GitHub-Workflows](/git/) — mit der von dir festgelegten Identität committen
- [GitHub Issues & PRs](/github/) — ein GitHub-Konto für PRs verbinden
+41
View File
@@ -0,0 +1,41 @@
---
title: Git- & GitHub-Workflows
description: Änderungen vormerken, committen und Branches verwalten, ohne OpenChamber zu verlassen.
---
# Git- & GitHub-Workflows
OpenChamber hat eine integrierte Git-Ansicht, damit du Änderungen prüfen, committen und Branches verwalten kannst, ohne in ein Terminal zu wechseln. Öffne sie über den **Git**-Tab in der rechten Seitenleiste.
## Prüfen und committen
Die Git-Ansicht teilt deine Änderungen in **staged** und **unstaged** auf:
- klicke auf das **+** einer Datei, um sie zu stage'n, oder auf ****, um sie wieder unstaged zu machen
- stage oder unstage ganze Gruppen auf einmal
- klicke auf eine Datei, um ihren Diff zu sehen
Schreibe dann eine Commit-Nachricht und committe. Du kannst OpenChamber eine **Commit-Nachricht generieren** lassen, basierend auf deinen gestagten Änderungen — dabei wird das Modell der aktuellen Sitzung verwendet, also brauchst du eine geöffnete Sitzung.
## Branches und Verlauf
Die Git-Ansicht deckt auch den üblichen Rest von Git ab:
- Branches erstellen, wechseln, umbenennen und löschen
- pushen, pullen und fetchen
- Verlauf und Diffs pro Commit durchsuchen
- Änderungen stashen und wiederherstellen
## Pull Requests
Verbinde GitHub (siehe [GitHub Issues & PRs](/github/)) und der **PR**-Tab lässt dich einen Pull Request öffnen, aktualisieren, als bereit markieren oder mergen — und seinen Titel und seine Beschreibung auf dieselbe Weise wie Commit-Nachrichten generieren.
## Konflikte übernehmen
Wenn ein Merge, Rebase oder Integrate auf einen Konflikt stößt, zeigt OpenChamber, was festhängt, und lässt dich es lösen — einschließlich der Übergabe an den Agenten.
## Verwandt
- [GitHub Issues & PRs](/github/) — GitHub verbinden und mit Issues mit der Arbeit beginnen
- [Worktree-Sitzungen](/worktrees/) — einen Branch in seinem eigenen Ordner isolieren
- [Git-Identitäten](/git-identities/) — als die richtige Person pro Repo committen
+34
View File
@@ -0,0 +1,34 @@
---
title: GitHub Issues & PRs
description: Verbinde GitHub und starte Sitzungen aus Issues und Pull Requests.
---
# GitHub Issues & PRs
Verbinde dein GitHub-Konto und OpenChamber kann Issues und Pull Requests einlesen, direkt daraus eine Sitzung starten und PRs für dich öffnen oder aktualisieren.
## GitHub verbinden
1. Öffne **Einstellungen → Git**.
2. Wähle unter GitHub **Connect**. OpenChamber zeigt einen Link und einen kurzen Code an.
3. Öffne den Link, gib den Code ein und bestätige.
Wenn die Verbindung steht, erscheint dein Konto im GitHub-Bereich. Du kannst mehr als ein Konto verbinden und zwischen ihnen wechseln oder dich jederzeit trennen.
## Arbeit aus einem Issue oder PR starten
Wenn du mit verbundenem GitHub eine [Worktree-Sitzung](/worktrees/) erstellst, kannst du **Start from GitHub issue/PR** wählen:
- wähle ein **issue** und OpenChamber benennt den Branch danach und öffnet die Sitzung mit dem Issue und seinen Kommentaren als erster Nachricht
- wähle einen **pull request** und OpenChamber checkt den Branch des PR aus; du kannst den Diff des PR einbeziehen, damit der Agent die komplette Änderung hat
So landest du direkt in einer Sitzung, in der der Kontext bereits geladen ist.
## Pull Requests öffnen und verwalten
Im **PR**-Tab der [Git-Ansicht](/git/) kannst du einen Pull Request erstellen, aktualisieren, einen Entwurf als bereit markieren oder mergen. OpenChamber kann den PR-Titel und die Beschreibung aus deinen Änderungen generieren.
## Verwandt
- [Git- & GitHub-Workflows](/git/) — committen und Branches verwalten
- [Worktree-Sitzungen](/worktrees/) — dort starten Issue- und PR-Sitzungen
+32
View File
@@ -0,0 +1,32 @@
---
title: OpenChamber-Dokumentation
description: Ein Einrichtungs- und Bedienhandbuch für OpenChamber für Web, Desktop und VS Code.
---
# OpenChamber-Dokumentation
OpenChamber ist der visuelle Arbeitsbereich rund um OpenCode (den KI-Coding-Agenten, der in deinem Terminal läuft). Er gibt dir einen Bildschirm, auf dem du diese Arbeit beobachten und steuern kannst, statt nur auf der Befehlszeile zu arbeiten.
Nutze diese Doku, um:
- die richtige App für deine Arbeitsweise zu installieren
- OpenChamber für den sicheren Remote-Einsatz zu öffnen
- das Aussehen anzupassen und häufige Probleme zu beheben
## Lies zuerst das hier
- [Install](/install/)
- [Quickstart](/quickstart/)
- [Tunnels](/tunnels/)
- [Troubleshooting](/troubleshooting/)
## Entdecken
- [Projects](/projects/) und [Worktree Sessions](/worktrees/) — deine Arbeit organisieren und isolieren
- [Providers, Models & Agents](/providers/) — OpenCode verbinden und ein Modell wählen
- [Git & GitHub Workflows](/git/) — commits erstellen, prüfen und PRs öffnen
- [Security](/security/) und [Tunnels](/tunnels/) — deine Instanz schützen und erreichen
## Wofür OpenChamber gedacht ist
OpenChamber ist für die Teile des KI-Codings gedacht, die von einer Leitstelle profitieren: verzweigende Sessions, Diffs prüfen, Terminals verwalten, den Fortschritt von Tools beobachten, Projektaktionen ausführen und das gesamte Board sichtbar halten, während der Agent arbeitet.
+33
View File
@@ -0,0 +1,33 @@
---
title: Installieren
description: Installiere OpenChamber für Desktop, Web oder VS Code.
---
# Installieren
Es gibt drei Möglichkeiten, OpenChamber auszuführen:
- Desktop-App für macOS
- Web-App, die vom CLI gehostet wird und die du wie eine Handy-App installieren kannst (eine PWA)
- VS-Code-Erweiterung
## Voraussetzung
Installiere zuerst [OpenCode](https://opencode.ai) — OpenChamber läuft darauf auf.
## Web + PWA
```bash
curl -fsSL https://raw.githubusercontent.com/openchamber/openchamber/main/scripts/install.sh | bash
openchamber --ui-password be-creative-here
```
Öffne die URL, die das CLI ausgibt (normalerweise `http://localhost:3000`). Du solltest die OpenChamber-Session-Liste sehen. Damit du sie griffbereit hast, kannst du im Adressfeld deines Browsers über die Option „Installieren“ daraus eine App machen.
## Desktop
Lade den aktuellen Desktop-Build von der GitHub-Releases-Seite oder der OpenChamber-Downloadseite herunter. Öffne ihn und melde dich in deinem gewohnten OpenCode-Workflow an.
## VS Code
Installiere sie aus dem VS Code Marketplace und melde dich in deinem gewohnten OpenCode-Workflow an. Die OpenChamber-Ansicht öffnet sich dann in der Seitenleiste.
@@ -0,0 +1,26 @@
---
title: Magische Prompts
description: Passe die eingebauten Prompts an, die hinter OpenChambers automatisierten Abläufen stehen.
---
# Magische Prompts
OpenChamber verwendet im Hintergrund eingebaute Prompts, wenn etwas automatisch geschieht — eine Commit-Nachricht schreiben, einen PR entwerfen, ein Issue prüfen, einen Konflikt lösen oder eine Sitzung zusammenfassen. Hier kannst du diese Prompts ansehen und umschreiben. Öffne die Seite unter **Einstellungen → Magische Prompts**.
Für die normale Nutzung brauchst du diese Seite nicht. Nutze sie, wenn ein Ablauf sich anders verhalten soll — etwa bei Commit-Nachrichten in einem bestimmten Stil.
## Einen Prompt bearbeiten
1. Öffne **Einstellungen → Magische Prompts**.
2. Wähle einen Prompt aus den Gruppen in der Seitenleiste — Git, GitHub, Planung und Sitzung.
3. Bearbeite den Text und speichere ihn.
Einige Prompts haben einen sichtbaren Teil (die Nachricht, die du sehen würdest) und einen Anweisungsteil (versteckte Hinweise für den Agenten). Prompts können `{{placeholders}}` enthalten, die OpenChamber einsetzt, zum Beispiel den Diff oder den Issue-Titel — lass diese unverändert.
## Zurücksetzen
Anders entschieden? Jeder Prompt hat **Auf Standard zurücksetzen**, und es gibt **Alle zurücksetzen**, wenn du überall neu anfangen möchtest.
## Weiterführend
- [Git- & GitHub-Workflows](/git/) — viele dieser Prompts treiben die Git-Abläufe an
+30
View File
@@ -0,0 +1,30 @@
---
title: MCP-Server
description: Füge MCP-Server hinzu, damit Agents zusätzliche Werkzeuge erhalten.
---
# MCP-Server
Ein MCP-Server gibt deinen Agents zusätzliche Werkzeuge — etwa um eine Datenbank zu durchsuchen, eine API aufzurufen oder einen genutzten Dienst auszulesen. Du fügst sie unter **Einstellungen → MCP** hinzu.
## Einen Server hinzufügen
1. Öffne **Einstellungen → MCP**.
2. Füge einen Server hinzu und wähle seinen Typ:
- **lokal** — OpenChamber führt einen Befehl auf deinem Rechner aus. Du gibst den auszuführenden Befehl an und, falls nötig, Umgebungsvariablen.
- **entfernt** — OpenChamber verbindet sich mit einer URL, die jemand anderes hostet. Du gibst die URL und alle nötigen Header an (zum Beispiel ein Auth-Token).
3. Speichere. Der Server ist standardmäßig eingeschaltet; du kannst ihn deaktivieren, ohne ihn zu löschen.
## Wo es gilt
Wähle den Geltungsbereich, wenn du einen Server hinzufügst:
- **persönlich** — in jedem Projekt verfügbar
- **projektbezogen** — nur im aktuellen Projekt verfügbar und zusammen mit den übrigen Projekteinstellungen gespeichert
Servernamen verwenden Kleinbuchstaben, Ziffern, Bindestriche und Unterstriche.
## Weiterführend
- [Provider, Modelle & Agents](/providers/) — verbinde zuerst ein Modell
- [Skills](/skills/) — eine weitere Möglichkeit, die Fähigkeiten von Agents zu erweitern
+43
View File
@@ -0,0 +1,43 @@
---
title: Mobile Apps & PWA
description: Installiere die OpenChamber-App auf iOS oder Android und verbinde sie mit deinem Server.
---
# Mobile Apps & PWA
OpenChamber hat native Apps für iPhone und Android, damit du Sitzungen verfolgen, auf Agenten antworten und Arbeiten von deinem Telefon aus verwalten kannst — zu Hause über WLAN oder von überall über das [Private Relay](/private-relay/).
## App installieren
- **iPhone/iPad** — tritt der [TestFlight-Beta](https://testflight.apple.com/join/5ek6GU1E) bei
- **Android** — lade das APK aus dem [latest release](https://github.com/openchamber/openchamber/releases/latest) herunter
## Mit deinem Server verbinden
1. Öffne auf dem Computer mit OpenChamber **Settings → Remote Instances → Connect to this server** und drücke **Add a device**.
2. Wähle **Anywhere** (oder **Home network only**, wenn du das Telefon nur zu Hause nutzt) und drücke **Create QR code**.
3. Tippe in der Mobile App auf **Scan QR code** und halte die Kamera darauf.
Die App verbindet sich und merkt sich den Server. Der QR-Code ist nur einmal verwendbar, und jedes Gerät erhält sein eigenes, widerrufbares Token — siehe [Connect a Device](/connect-devices/) für die sichere Kopplung.
Du kannst die App mit mehreren Servern koppeln und im Instanzenbereich zwischen ihnen wechseln; die App zeigt bei jedem an, ob er erreichbar ist und ob du über das lokale Netzwerk oder das Relay verbunden bist.
## PWA (Browser-Installation)
Du willst gar keinen App-Store? Die Web-App lässt sich direkt aus dem Browser installieren:
- **desktop browser** — nutze die Option **Install** in der Adressleiste
- **iPhone/iPad (Safari)** — Teilen → **Add to Home Screen**
- **Android (Chrome)** — Menü → **Install app** / **Add to Home Screen**
Um die PWA von außerhalb deines Netzwerks zu erreichen, brauchst du einen [Tunnel](/tunnels/) und ein starkes [UI password](/security/) — die nativen Apps übernehmen das für dich über das Relay.
## Mobile Einstellungen
Unter **Settings → OpenChamber** passen ein paar Optionen die mobile und installierte Nutzung an — der Installationsname der App, die Bildschirmausrichtung und das Verhalten der Bildschirmtastatur.
## Verwandt
- [Connect a Device](/connect-devices/) — Kopplung, einmalige QR-Codes und Geräteverwaltung
- [Private Relay](/private-relay/) — wie "Anywhere"-Zugriff funktioniert
- [Security](/security/) — die UI schützen, bevor du sie freigibst
@@ -0,0 +1,34 @@
---
title: Multi-run
description: Führe dieselbe Aufforderung gleichzeitig über mehrere Modelle oder Sitzungen aus.
---
# Multi-run
Multi-run startet mehrere Sitzungen aus einem einzigen Formular — praktisch, um dieselbe Aufgabe mit verschiedenen Modellen zu testen und die Ergebnisse zu vergleichen. Öffne es über die Schaltfläche oben in der Sitzungs-Seitenleiste.
## Einen Multi-run starten
1. Öffne den Multi-run-Startbildschirm.
2. Wähle das Projekt und benenne die Run-Gruppe.
3. Schreibe die Aufforderung und wähle die Modelle aus, mit denen sie ausgeführt werden soll (bis zu fünf pro Gruppe).
4. Entscheide, ob du **Runs isolieren** möchtest.
5. Starte.
Jedes Modell erhält seine eigene Sitzung, und alle beginnen mit deiner Aufforderung.
## Isolierte Runs
Aktiviere **Runs isolieren**, damit jeder Run seinen eigenen [Worktree](/worktrees/) und Branch bekommt und sie sich nie dieselben Dateien teilen. Dafür brauchst du ein Git-Repo — für Ordner, die keines sind, wird es automatisch deaktiviert. Wähle den Branch, von dem die Runs starten.
Ohne Isolation ist jeder Run einfach eine normale Sitzung im Projektordner.
## Ergebnisse vergleichen
Jeder Run ist eine normale Sitzung, die du öffnen, lesen und behalten oder verwerfen kannst. Wenn du Runs gestartet hast, um Ansätze zu vergleichen, prüfe sie nebeneinander und nimm den besten mit.
Wenn ein einzelner Run nicht startet, werden die anderen trotzdem ausgeführt — du siehst dann nur weniger Sitzungen, als du angefordert hast.
## Verwandt
- [Worktree-Sitzungen](/worktrees/) — wie Isolation unter der Haube funktioniert
@@ -0,0 +1,37 @@
---
title: Projektnotizen, Todos & Pläne
description: Halte Notizen, eine Todo-Liste und gespeicherte Pläne für jedes Projekt fest.
---
# Projektnotizen, Todos & Pläne
Jedes Projekt hat seinen eigenen Arbeitsbereich für Notizen, eine Todo-Liste und gespeicherte Pläne. Sie gehören zum Projekt und nicht zu einer einzelnen Session, also bleiben sie erhalten, wenn du zwischen Sessions wechselst. Du findest sie im Tab **Kontext** der rechten Seitenleiste (auf Mobilgeräten ein eigener Tab).
## Notizen
Ein freies Notizfeld für alles, woran du dich zum Projekt erinnern möchtest. Es speichert automatisch, während du tippst.
## Todos
Eine einfache Checkliste. Füge Einträge hinzu, hake sie ab, ordne sie per Drag-and-drop um und lösche die erledigten.
Jedes Todo hat ein Menü **Senden**, damit du es an den Agenten übergeben kannst:
- an die aktuelle Session senden
- mit ihm eine neue Session starten
- mit ihm eine neue [Worktree-Session](/worktrees/) starten (nur wenn das Projekt ein Git-Repo ist)
## Pläne
Ein Ort, um längere Pläne als gespeicherte Dateien aufzubewahren. Du kannst:
- einen Plan aus einer Markdown- oder Textdatei importieren
- einen Plan öffnen, um ihn im Seitenpanel zu lesen
- Pläne löschen, die du nicht mehr brauchst
Du solltest danach wieder im Kontext-Tab landen — mit gespeicherter Notiz, abgehakter Todo oder gelistetem Plan; so erkennst du, dass es geklappt hat.
## Verwandtes
- [Worktree-Sessions](/worktrees/) — eine Todo in einem eigenen Branch ausführen
- [Projekte](/projects/) — diese gehören zum aktiven Projekt
@@ -0,0 +1,34 @@
---
title: Benachrichtigungen
description: Lass dich benachrichtigen, wenn eine Sitzung deine Aufmerksamkeit braucht oder fertig ist.
---
# Benachrichtigungen
Benachrichtigungen sagen dir, wenn etwas deine Aufmerksamkeit braucht, damit du nicht ständig auf den Bildschirm schauen musst — eine Sitzung ist fertig, hat einen Fehler, stellt eine Frage oder braucht eine Berechtigung für etwas. Du richtest sie unter **Einstellungen → OpenChamber → Benachrichtigungen** ein.
## Aktivieren
1. Öffne **Einstellungen → OpenChamber → Benachrichtigungen**.
2. Erlaube Benachrichtigungen, wenn dein Browser oder System dich danach fragt.
3. Wähle aus, worüber du informiert werden möchtest:
- eine Sitzung **endet**
- eine Sitzung **hat einen Fehler**
- eine Sitzung **stellt eine Frage**
- eine Sitzung braucht **eine Berechtigung**
- **Unteraufgaben** sind abgeschlossen
## Wie sie bei dir ankommen
- auf dem **Desktop** bekommst du native Systembenachrichtigungen
- in einem **Browser oder einer installierten App** bekommst du Web-Push-Benachrichtigungen, damit sie auch ankommen, wenn der Tab im Hintergrund ist
Sitzungen, die auf automatisches Annehmen gesetzt sind, belästigen dich nicht mit Berechtigungsbenachrichtigungen.
## Die Formulierungen anpassen
Jede Art von Benachrichtigung hat einen Titel und eine Nachrichtenvorlage, die du bearbeiten kannst, mit Feldern wie Agentenname und Modell. Außerdem gibt es eine Begrenzung, wie viel der letzten Nachricht eingefügt wird, damit Benachrichtigungen kurz bleiben.
## Weiterführend
- [Sprachmodus](/voice/) — lass dir Antworten stattdessen vorlesen
@@ -0,0 +1,97 @@
---
title: OpenCode-Server
description: Verbinde OpenChamber mit einem lokalen oder entfernten OpenCode-Server.
---
# OpenCode-Server
OpenChamber läuft auf einem OpenCode-Server auf. Standardmäßig startet es einen für dich, sodass du nichts tun musst. Diese Seite brauchst du nur, wenn du OpenChamber auf einen Server zeigen lassen willst, den du bereits betreibst, oder den Server verwalten willst, den es startet.
## Wie OpenChamber einen Server findet
Wenn OpenChamber startet, sucht es in dieser Reihenfolge nach einem Server:
1. einen Server wiederverwenden, den es bereits gestartet hat
2. zu einem externen verbinden, wenn du es so angegeben hast (siehe unten)
3. einen Server am Standard-Port automatisch erkennen (`4096`)
4. andernfalls den eigenen starten und verwalten
Wenn nichts konfiguriert ist, geschieht Schritt 4 automatisch und du bist startklar.
## Mit einem Server verbinden, den du bereits betreibst
Setze diese Variablen, bevor du OpenChamber startest:
```bash
OPENCODE_HOST=http://localhost:4096 OPENCODE_SKIP_START=true openchamber
```
- `OPENCODE_HOST` — die vollständige Adresse deines OpenCode-Servers einschließlich des Ports (ein Wert wie `http://localhost:4096`). Sie darf am Ende keinen Pfad haben.
- `OPENCODE_SKIP_START=true` — weist OpenChamber an, keinen eigenen Server zu starten.
Wenn du nur den Port ändern musst, setze `OPENCODE_PORT` statt `OPENCODE_HOST`.
Wenn `OPENCODE_HOST` keinen Port hat oder einen Pfad enthält, ignoriert OpenChamber ihn und fällt darauf zurück, den eigenen Server zu starten. Achte beim Start auf eine `[config]`-Warnung in den Logs, wenn eine erwartete Verbindung nicht zustande kam.
## Den Server über das CLI verwalten
```bash
openchamber status
openchamber logs
openchamber restart
openchamber stop
```
`openchamber` allein startet den Server im Hintergrund. Füge `--foreground` hinzu, damit er an dein Terminal gebunden bleibt.
## OpenChamber beim Anmelden starten
Verwende `startup enable`, um einen nativen Benutzerdienst zu installieren. OpenChamber nutzt `launchd` auf macOS, `systemd --user` auf Linux und den Taskplaner auf Windows.
```bash
openchamber startup enable
openchamber startup status
openchamber startup disable
```
Um die UI zu schützen, setze das Passwort beim Aktivieren des Dienstes:
```bash
OPENCHAMBER_UI_PASSWORD='secret' openchamber startup enable
```
Für einen headless Server, der sich beim Anmelden startet und für Desktop- oder Mobile-Clients gedacht ist, füge `--api-only` und einen erreichbaren Host hinzu:
```bash
openchamber startup enable --port 3000 --api-only --host 0.0.0.0 --ui-password secret
```
`startup enable` speichert deine aktuelle Umgebung als Schnappschuss im Dienst, damit er sich eher so verhält, als würdest du `openchamber` aus derselben Shell starten. So bleiben Provider-Tokens, `PATH`, SSH-Agent-Einstellungen und andere CLI-Auth-/Konfigurationsvariablen verfügbar. Verwende `--no-env-snapshot`, wenn du eine minimale Dienstenumgebung willst.
Der Startup-Dienst merkt sich `--port`, `--host`, `--ui-password` und `--api-only`. CLI-Neustarts und Update-Neustarts verwenden diese gespeicherten Einstellungen wieder.
Um einen Verbindungslink für eine andere OpenChamber-App zu erstellen, verwende:
```bash
openchamber connect-url --port 3000 --server http://your-host:3000 --qr
```
Führe `openchamber connect-url --help` aus, um alle Link-Optionen zu sehen, einschließlich `--name`, `--lan`, `--server`, `--api-only`, `--ui-password` und `--qr`.
Du kannst Tunnel für diesen laufenden Dienst weiterhin unabhängig verwalten:
```bash
openchamber tunnel start --port 3000
openchamber tunnel stop --port 3000
```
Das Stoppen des Tunnels startet weder den Dienst noch die App neu.
## „OpenCode wird neu gestartet“
Während der Server startet oder neu startet, zeigt OpenChamber den Status „OpenCode wird neu gestartet“ an und pausiert Anfragen, bis er bereit ist. Das ist direkt nach dem Start oder einem Neustart normal. Wenn er nie verschwindet, siehe [OpenCode-Verbindung](/troubleshooting/opencode-connection/).
## Verwandtes
- [Providers, Models & Agents](/providers/) — festlegen, womit der Server spricht
- [OpenCode-Verbindung](/troubleshooting/opencode-connection/) — falls keine Verbindung möglich ist
+32
View File
@@ -0,0 +1,32 @@
---
title: Vorschau & Entwicklungsserver
description: Öffne einen laufenden Entwicklungsserver direkt in OpenChamber.
---
# Vorschau & Entwicklungsserver
Wenn du einen Entwicklungsserver startest, kann OpenChamber ihn direkt in der App öffnen statt in einem separaten Browser-Tab — so kannst du deine Seite neben dem Chat sehen, ihre Konsole aufzeichnen und Elemente anstupsen, um Fragen dazu zu stellen.
## Eine Vorschau öffnen
OpenChamber überwacht die Terminalausgabe auf eine lokale Adresse (die `Local:`-Zeile, die Werkzeuge wie Vite, Next.js oder Astro ausgeben). Sobald es eine findet:
- erscheint im Terminal eine Schaltfläche **Open preview**
- öffnet eine [Projektaktion](/project-actions/) mit aktiviertem Auto-Open die Vorschau für dich
- kann auch ein lokaler Link in einer Chatnachricht sie öffnen
Die Seite lädt im Seitenbereich. Nur lokale Adressen (auf deinem eigenen Rechner) können als Vorschau geöffnet werden.
## Konsole und Inspektion
Im Vorschau-Bereich kannst du:
- die **Konsole** der Seite beobachten — Fehler, Warnungen und Protokolle, so gefiltert, wie du möchtest
- **inspect** einschalten, auf ein beliebiges Element klicken und eine Notiz dazu senden — Selektor, Stile, Position und ein Screenshot — direkt in den Chat
Das ist der schnellste Weg, dem Agenten "diese Schaltfläche hier" zu sagen, ohne sie beschreiben zu müssen.
## Verwandt
- [Projektaktionen](/project-actions/) — einen Server automatisch öffnen, wenn du ihn startest
- [Desktop-Browser](/desktop-browser/) — dieselben Werkzeuge für jede Seite, auf dem Desktop
@@ -0,0 +1,44 @@
---
title: Privates Relay
description: Erreiche deinen OpenChamber-Server von überall über ein Ende-zu-Ende-verschlüsseltes Relay — ohne Ports, ohne Tunnel, ohne Einrichtung.
---
# Privates Relay
Das OpenChamber Private Relay ermöglicht es deinen gekoppelten Geräten, deinen Server von überall aus zu erreichen — im Mobilfunknetz, im Café, in einer anderen Stadt — ohne Ports zu öffnen, einen Tunnel einzurichten oder deinen Rechner direkt mit dem Internet zu verbinden. Die Einrichtung ist selbstständig: Ein Gerät mit **Anywhere** unter [Connect a Device](/connect-devices/) zu koppeln reicht aus.
## So funktioniert es
Dein Server baut eine ausgehende Verbindung zur Relay-Infrastruktur von OpenChamber auf und hält sie offen. Wenn eines deiner Geräte außerhalb deines Netzwerks ist, verbindet es sich ebenfalls mit dem Relay, und das Relay leitet die verschlüsselten Daten zwischen beiden weiter. Auf deinem Rechner lauscht nichts auf eingehende Verbindungen aus dem Internet.
Wenn eine direkte Verbindung verfügbar ist — du bist wieder zu Hause im selben WLAN — bevorzugen deine Geräte sie und umgehen das Relay vollständig.
## Was das Relay sehen kann und was nicht
Das Relay ist ein blinder Kurier, kein Vermittler:
- **Ende-zu-Ende verschlüsselt.** Dein Gerät und dein Server handeln Verschlüsselungsschlüssel direkt miteinander aus. Das Relay leitet nur versiegelte Daten weiter, für die es keine Schlüssel hat — es kann weder deinen Code noch deine Prompts oder Passwörter lesen.
- **Nur deine Geräte können sich verbinden.** Ein Gerät muss ein Token besitzen, das über [one-time pairing](/connect-devices/) von *deinem* Server ausgestellt wurde. Niemand kann deinen Server über das Relay entdecken oder ohne ein von dir erstelltes Token darauf zugreifen — und du kannst jedes Token jederzeit widerrufen.
- **Pairing-Links sind nur einmal verwendbar.** Ein QR-Code zum Koppeln funktioniert genau einmal und läuft ab, wenn er nicht verwendet wird; ein geleakter alter Link ist also wertlos.
- **Nichts wird geteilt, bevor du es erlaubst.** Das Relay bleibt aus, bis du es aktivierst oder ein Gerät darüber koppelst, und du kannst es jederzeit deaktivieren — Geräte, die darüber verbunden sind, werden sofort getrennt.
## Wann es läuft
Das Relay verwaltet seinen Lebenszyklus selbst — es gibt keinen Schalter, den du dir merken musst:
- **Es startet bei Bedarf.** Das Erstellen einer **Anywhere**-Kopplung schaltet das Relay ein, und es kommt nach einem Neustart zurück, solange noch ein gekoppeltes Gerät davon abhängt.
- **Es stoppt von selbst.** Sobald kein Gerät und keine ausstehende Kopplung das Relay mehr nutzt — zum Beispiel nachdem du das letzte Relay-gekoppelte Gerät widerrufen hast — fährt es automatisch herunter.
**Settings → Remote Instances → OpenChamber Relay** zeigt den Live-Status (Connected, Reconnecting, …) und wie viele Geräte gerade darüber verbunden sind. Dort kannst du auch **Disable** drücken, um den Relay-Zugriff sofort zu beenden; Geräte im lokalen Netzwerk sind davon nicht betroffen.
## Relay oder ein Tunnel?
- Nutze das **Relay**, um von deinen eigenen gekoppelten Geräten aus deinen eigenen Server zu erreichen. Es kommt ohne Einrichtung aus, und nichts ist öffentlich exponiert.
- Nutze einen [Tunnel](/tunnels/), wenn du eine einfache **öffentliche URL** brauchst — zum Beispiel um OpenChamber in einem normalen Browser auf einem Rechner zu öffnen, den du nicht koppeln kannst, oder um Zugriff hinter einem [UI password](/security/) zu teilen.
## Verwandt
- [Connect a Device](/connect-devices/) — ein Gerät mit einem einmaligen QR-Code koppeln
- [Mobile Apps](/mobile/) — die iOS- oder Android-App installieren
- [Security](/security/) — Passwörter, Passkeys und Grundlagen der Freigabe
- [Remote access](/troubleshooting/remote-access/) — wenn eine Verbindung nicht zustande kommt
@@ -0,0 +1,28 @@
---
title: Projektaktionen
description: Speichere Befehle, die du oft ausführst, und starte sie mit einem Klick.
---
# Projektaktionen
Eine Projektaktion ist ein Shell-Befehl, den du einmal speicherst und dann mit einem Klick ausführst — dein Entwicklungsserver, ein Build, ein Testlauf. Jedes Projekt hat seine eigene Liste. Richte sie unter **Einstellungen → Projekte → Projektaktionen** ein.
## Eine Aktion hinzufügen
1. Öffne **Einstellungen → Projekte** und suche den Bereich **Projektaktionen**.
2. Füge eine Aktion hinzu, gib ihr einen Namen, wähle ein Symbol und gib den auszuführenden Befehl ein.
3. Speichern.
Du kannst eine Aktion auf bestimmte Betriebssysteme beschränken, wenn ein Befehl nur auf einem davon sinnvoll ist.
## Eine Aktion ausführen
Aktionen liegen in einem Menü im App-Header. Klicke auf eine und OpenChamber führt sie in einem Terminal in deinem Projektordner aus und wechselt dich in die Terminalansicht, damit du die Ausgabe verfolgen kannst. Stoppe sie über dasselbe Menü.
## Einen Entwicklungsserver automatisch öffnen
Aktiviere **auto-open URL** für eine Aktion, die einen Server startet. OpenChamber überwacht die Ausgabe auf eine lokale Adresse und bietet an, sie zu öffnen — siehe [Vorschau & Entwicklungsserver](/preview/). Auf dem Desktop kannst du sie außerdem über einen SSH-Port-Forward leiten.
## Verwandt
- [Vorschau & Entwicklungsserver](/preview/) — einen laufenden Entwicklungsserver in OpenChamber öffnen
@@ -0,0 +1,20 @@
---
title: Projektsymbole
description: Geben Sie jedem Projekt ein wiedererkennbares Symbol.
---
# Projektsymbole
Ein Projektsymbol macht es leicht, Ihre Projekte auf einen Blick zu unterscheiden. OpenChamber versucht, eines für Sie zu finden, und Sie können jederzeit Ihr eigenes setzen. Verwalten Sie es unter **Einstellungen → Projekte**.
## Automatische Erkennung
Wenn Sie ein Projekt hinzufügen, sucht OpenChamber darin nach einer `favicon`-Datei und verwendet sie als Symbol des Projekts. Wenn Ihr Repo bereits ein Favicon ausliefert, erscheint das Symbol meist einfach — Sie müssen nichts tun.
## Eigenes festlegen
Öffnen Sie **Einstellungen → Projekte** und laden Sie ein Bild hoch (PNG, JPEG oder SVG, bis zu 5 MB). Ein benutzerdefiniertes Bild hat Vorrang vor dem automatisch erkannten. Sie können stattdessen auch eine Farbe wählen oder das Bild entfernen, um zur Erkennung zurückzukehren.
## Verwandt
- [Projekte](/projects/) — Ihre Projekte benennen, einfärben und organisieren
@@ -0,0 +1,34 @@
---
title: Projekte
description: Organisiere deine Arbeit in Projekten und wechsle zwischen ihnen.
---
# Projekte
Ein Projekt ist ein Ordner auf deinem Computer, den OpenChamber im Blick behält — normalerweise eine Codebasis. Wenn du das Projekt wechselst, wechselt der Ordner, in dem der Agent arbeitet, zusammen mit den Sessions und Einstellungen dieses Projekts.
## Ein Projekt hinzufügen
Du kannst ein Projekt an ein paar Stellen hinzufügen:
- der Eintrag **Projekt hinzufügen** in der Befehlspalette
- die Schaltfläche **+** oben in der Session-Seitenleiste
- der Ordnerbrowser, wenn du ein Verzeichnis auswählst
Zeige auf einen Ordner, und OpenChamber merkt ihn sich. Der Name kommt vom Ordner; du kannst ihn später ändern.
## Projekte wechseln
Wähle ein Projekt in der Seitenleiste aus, um es aktiv zu machen. Alles — Sessions, Git, Notizen — folgt dem Projekt, das du geöffnet hast.
## Ein Projekt wiedererkennbar machen
Öffne **Einstellungen → Projekte**, um einem Projekt einen eigenen Namen, eine Farbe oder ein Symbol zu geben. OpenChamber versucht, automatisch ein Symbol zu finden — siehe [Projekt-Symbole](/project-icons/).
> In VS Code verwendet OpenChamber immer den Ordner, den du geöffnet hast, als einziges Projekt. Es gibt dort also nichts hinzuzufügen oder umzuschalten. Die Seite mit den Projekteinstellungen ist dort ausgeblendet.
## Verwandtes
- [Projektnotizen, Todos & Pläne](/notes-todos-plans/) — Arbeitsnotizen pro Projekt behalten
- [Projektaktionen](/project-actions/) — Befehle speichern, die du oft ausführst
- [Kontext](/context/) — sehen, wie viel des Modellgedächtnisses eine Session verbraucht
@@ -0,0 +1,49 @@
---
title: Provider, Modelle & Agents
description: Verbinde KI-Provider, wähle Modelle aus und richte Agents ein.
---
# Provider, Modelle & Agents
Bevor OpenChamber etwas tun kann, braucht es mindestens einen verbundenen KI-Provider. Diese Seite erklärt, wie du einen Provider verbindest, ein Modell auswählst und Agents anpasst.
## Einen Provider verbinden
1. Öffne **Einstellungen → Provider**.
2. Öffne das Menü **Provider hinzufügen** und wähle einen Provider aus, der noch nicht verbunden ist.
3. Melde dich auf eine von zwei Arten an, je nach Provider:
- **API-Schlüssel** — füge deinen Schlüssel ein und speichere.
- **Anmeldung (Gerätefluss)** — OpenChamber zeigt einen Link und einen kurzen Code an. Öffne den Link, gib den Code ein und bestätige. OpenChamber schließt die Verbindung dann selbstständig ab.
Wenn ein Provider als verbunden angezeigt wird, sind seine Modelle im Chat verfügbar.
Zum Trennen öffnest du den Provider und entfernst seine Anmeldung.
## Ein Modell auswählen
Du wählst das Modell dort aus, wo du arbeitest:
- im Chat verwendest du den Modellwähler in der Nachrichtenleiste, um Provider und Modell für diese Sitzung festzulegen
- pro Agent legst du unten ein Standardmodell fest
## Agents einrichten
Ein Agent ist eine benannte Konfiguration — ein Modell, eine Persönlichkeit und das, was er tun darf.
1. Öffne **Einstellungen → Agents**.
2. Wähle einen Agenten aus oder erstelle einen neuen.
3. Bearbeite beliebige dieser Felder:
- **Beschreibung** — wofür der Agent gedacht ist
- **Modell** — sein Standardmodell
- **Temperatur** — wie kreativ seine Antworten sind
- **Prompt** — dauerhafte Anweisungen, denen er immer folgt
- **Tool-Regeln** — welche Werkzeuge er verwenden darf
## Wo deine Anmeldungen gespeichert werden
Provider-Anmeldungen werden von OpenCode gespeichert, nicht von OpenChamber, daher sind sie mit der OpenCode-CLI geteilt. Wenn du denselben Provider an mehr als einem Ort einrichtest, gewinnt die spezifischste Einstellung: Eine projektbezogene Einstellung überschreibt deine persönliche.
## Weiterführend
- [MCP-Server](/mcp/) — füge Agents zusätzliche Werkzeuge hinzu
- [Nutzung & Kontingente](/usage/) — verfolge, wie viel du verbraucht hast
@@ -0,0 +1,26 @@
---
title: Schnellstart
description: Starte OpenChamber schnell und wähle die richtige App für die Aufgabe.
---
# Schnellstart
## Schnellster Weg
1. Installiere [OpenCode](https://opencode.ai).
2. Installiere das OpenChamber-CLI (siehe [Installieren](/install/) für den Einzeilenbefehl).
3. Führe `openchamber --ui-password be-creative-here` aus.
4. Öffne die URL, die das CLI ausgibt (normalerweise `http://localhost:3000`).
5. Um es auf deinem Handy zu nutzen, starte einen [Tunnel](/tunnels/) und scanne den QR-Code.
Du solltest die OpenChamber-Session-Liste in deinem Browser sehen. Wenn sie geladen wird, bist du startklar.
Verwende ein starkes UI-Passwort, besonders wenn du die Instanz ins Internet öffnen willst.
Wenn die Seite nicht lädt, sieh unter [Troubleshooting](/troubleshooting/) nach.
## Welche App soll ich verwenden?
- verwende **Desktop** für die tägliche Arbeit auf macOS
- verwende **Web** für den Remote-Zugriff und zum Prüfen vom Handy aus
- verwende **VS Code** für Sessions direkt neben deinem Code
@@ -0,0 +1,48 @@
---
title: Remote-Instanzen
description: Verbinde die Desktop-App per SSH mit OpenChamber auf einem anderen Rechner.
---
# Remote-Instanzen
Die Desktop-App kann per SSH mit OpenChamber auf einem anderen Rechner verbunden werden — einem Arbeitsserver, einer Cloud-Box, einem Homelab — und dessen UI so auf deinen Bildschirm bringen, als wäre sie lokal. Richte das unter **Settings → Remote Instances** ein.
> Remote-Instanzen sind eine Funktion **nur für den Desktop**. Im Web oder in VS Code verbindest du dich stattdessen über die Umgebungsvariablen in [OpenCode Server](/opencode-server/) mit einem Remote-Server.
## Remote-Instanz hinzufügen
1. Öffne **Settings → Remote Instances** und füge eine hinzu.
2. Gib den SSH-Befehl an, den du normalerweise für den Zugriff auf den Rechner verwendest, plus einen Spitznamen.
3. Wähle, wie OpenChamber dort läuft:
- **managed** — OpenChamber installiert und startet sich auf dem entfernten Rechner selbst
- **external** — verbinde dich mit einer Instanz, die bereits läuft
4. Verbinde dich.
OpenChamber geht die Schritte durch — Verbindung prüfen, Remote einrichten, Server starten und den Port weiterleiten — und zeigt bei jedem Schritt, wo es gerade ist. Wenn **ready** erreicht ist, wird die entfernte UI lokal geladen.
## Anmeldedaten
Du entscheidest, ob SSH- und UI-Passwörter gespeichert werden oder ob du sie jedes Mal eingibst. Wenn die Verbindung abbricht, meldet OpenChamber, welcher Schritt fehlgeschlagen ist, damit du ihn beheben kannst — siehe [Remote access](/troubleshooting/remote-access/).
## Verbindungslinks
Wenn auf einem entfernten Rechner bereits OpenChamber läuft, ist ein Kopplungslink der einfachste Weg, die Desktop-App zu verbinden. Öffne auf der UI des entfernten Servers **Settings → Remote Instances → Connect to this server → Add a device**, erstelle einen Link und importiere ihn auf deinem Desktop unter **Settings → Remote Instances → Other OpenChamber servers → Import Link**. Den vollständigen Ablauf findest du unter [Connect a Device](/connect-devices/).
Ein mit **Anywhere** erstellter Link enthält sowohl eine direkte Adresse als auch eine Route über das [Private Relay](/private-relay/): Die Desktop-App verbindet sich direkt, wenn sie den Server erreichen kann (gleiches Netzwerk), und fällt auf das Ende-zu-Ende-verschlüsselte Relay zurück, wenn du unterwegs bist. Der Status neben jedem gespeicherten Server zeigt, welche Route gerade verwendet wird.
Du kannst einen Link auch in einem Terminal auf dem entfernten Rechner erstellen:
```bash
openchamber connect-url --port 3000 --server http://your-host:3000 --qr
```
`connect-url` startet den Server zuerst, wenn auf diesem Port nichts läuft. Füge `--api-only` für einen headless Server hinzu, `--lan`, um beim Starten an das LAN zu binden, `--ui-password`, um den Browserzugriff zu schützen, und `--name`, um die gespeicherte Verbindung zu benennen. Füge `--relay` für einen Link hinzu, der auch außerhalb des lokalen Netzwerks funktioniert: Das Gerät bevorzugt die direkte Verbindung, wenn sie erreichbar ist, und fällt auf das [Private Relay](/private-relay/) zurück — die Instanz startet das Relay selbstständig.
Der erzeugte Link enthält ein Einmal-Geheimnis zum Koppeln. Nach dem Import besitzt das Gerät sein eigenes Client-Token — getrennt vom UI password des Browsers —, das Server-Neustarts überdauert, bis du es auf dem ausstellenden Server widerrufst.
## Verwandt
- [Connect a Device](/connect-devices/) — Kopplungslinks, QR-Codes und Geräteverwaltung
- [Private Relay](/private-relay/) — wie "Anywhere"-Verbindungen funktionieren
- [OpenCode Server](/opencode-server/) — eine Verbindung zu einem entfernten Server in Web oder VS Code herstellen
- [Remote access](/troubleshooting/remote-access/) — wenn eine Verbindung nicht zustande kommt
@@ -0,0 +1,347 @@
---
title: Reverse Proxy
description: Konfigurieren Sie OpenChamber korrekt hinter Nginx, Nginx Proxy Manager oder einem anderen Reverse Proxy.
---
# Reverse Proxy
Nutzen Sie diese Seite, wenn OpenChamber hinter Nginx, Nginx Proxy Manager, Caddy, Cloudflare oder einem anderen Reverse Proxy läuft.
## Bevor Sie es proxyen
1. Bestätigen Sie zuerst, dass OpenChamber direkt funktioniert.
2. Öffnen Sie `http://<server-ip>:3000` oder Ihren benutzerdefinierten Port aus demselben Netzwerk.
3. Fügen Sie den Reverse Proxy erst hinzu, wenn die Direktverbindung funktioniert.
## Was der Proxy unterstützen muss
- WebSockets für den Live-Nachrichtenverkehr:
- `/api/event/ws`
- `/api/global/event/ws`
- `/api/terminal/ws`
- SSE ohne Buffering:
- `/api/event`
- `/api/global/event`
- `/api/notifications/stream`
- `/api/openchamber/events`
- `/api/terminal/:sessionId/stream`
- Große Request-Bodies für Anhänge und Dateioperationen
- Lange Read-Timeouts für Live-Streams und Terminal-Sitzungen
## Wichtige Regeln
- Aktivieren Sie das Proxying für WebSockets.
- Deaktivieren Sie Buffering auf SSE-Routen.
- Deaktivieren Sie gzip auf dem Proxy, wenn OpenChamber Antworten bereits komprimiert.
- Halten Sie Komprimierung nur in einer Ebene aktiv.
- Leiten Sie normale Proxy-Header wie `Host`, `X-Forwarded-For` und `X-Forwarded-Proto` weiter.
- Erhöhen Sie die Body-Größenlimits, wenn Nutzer Dateien hochladen.
## Kurze Checkliste
- OpenChamber direkt im LAN erreichbar
- WebSockets im Proxy aktiviert
- SSE-Routen ohne Buffering
- `gzip off` auf dem Proxy-Host oder Komprimierung anderweitig deaktiviert
- `client_max_body_size` groß genug für Anhänge
- `proxy_read_timeout` lang genug für Streams
## Beispiel: Nginx
<details>
<summary>Beispielkonfiguration anzeigen</summary>
```nginx
client_max_body_size 50M;
client_body_buffer_size 50M;
proxy_request_buffering off;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
gzip off;
location = /api/terminal/ws {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
location = /api/global/event/ws {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
location = /api/event/ws {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
location ~ ^/api/(event|global/event|notifications/stream|openchamber/events)$ {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Accept "text/event-stream";
proxy_set_header Cache-Control "no-cache";
proxy_buffering off;
proxy_cache off;
gzip off;
add_header X-Accel-Buffering "no" always;
add_header Cache-Control "no-cache, no-transform" always;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
location ~ ^/api/terminal/.+/stream$ {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Accept "text/event-stream";
proxy_set_header Cache-Control "no-cache";
proxy_buffering off;
proxy_cache off;
gzip off;
add_header X-Accel-Buffering "no" always;
add_header Cache-Control "no-cache, no-transform" always;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
location /api {
proxy_pass http://127.0.0.1:3000;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
}
location / {
proxy_pass http://127.0.0.1:3000;
}
```
</details>
## Beispiel: Nginx Proxy Manager
<details>
<summary>Beispiel für den Tab „Advanced“ anzeigen</summary>
```nginx
client_max_body_size 50M;
client_body_buffer_size 50M;
proxy_request_buffering off;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
gzip off;
location = /api/terminal/ws {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 30s;
}
location = /api/global/event/ws {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 30s;
}
location = /api/event/ws {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_buffering off;
proxy_cache off;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 30s;
}
location = /api/event {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Accept "text/event-stream";
proxy_set_header Cache-Control "no-cache";
proxy_buffering off;
proxy_cache off;
gzip off;
add_header X-Accel-Buffering "no" always;
add_header Cache-Control "no-cache, no-transform" always;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 30s;
}
location = /api/global/event {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Accept "text/event-stream";
proxy_set_header Cache-Control "no-cache";
proxy_buffering off;
proxy_cache off;
gzip off;
add_header X-Accel-Buffering "no" always;
add_header Cache-Control "no-cache, no-transform" always;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 30s;
}
location = /api/notifications/stream {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Accept "text/event-stream";
proxy_set_header Cache-Control "no-cache";
proxy_buffering off;
proxy_cache off;
gzip off;
add_header X-Accel-Buffering "no" always;
add_header Cache-Control "no-cache, no-transform" always;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 30s;
}
location = /api/openchamber/events {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Accept "text/event-stream";
proxy_set_header Cache-Control "no-cache";
proxy_buffering off;
proxy_cache off;
gzip off;
add_header X-Accel-Buffering "no" always;
add_header Cache-Control "no-cache, no-transform" always;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 30s;
}
location ~ ^/api/terminal/.+/stream$ {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Accept "text/event-stream";
proxy_set_header Cache-Control "no-cache";
proxy_buffering off;
proxy_cache off;
gzip off;
add_header X-Accel-Buffering "no" always;
add_header Cache-Control "no-cache, no-transform" always;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 30s;
}
location /api {
proxy_pass http://127.0.0.1:3000;
proxy_read_timeout 3600s;
proxy_send_timeout 3600s;
proxy_connect_timeout 30s;
}
location / {
proxy_pass http://127.0.0.1:3000;
}
```
</details>
Aktivieren Sie für diesen Host außerdem `Websockets Support` in Nginx Proxy Manager.
## Häufige Fehlersymptome
### Seite lädt, aber das Senden von Nachrichten schlägt fehl
- WebSockets sind im Proxy nicht aktiviert
- `/api/event/ws` oder `/api/global/event/ws` wird nicht korrekt weitergeleitet
### Benachrichtigungen oder Live-Status werden nicht aktualisiert
- eine der SSE-Routen wird gepuffert oder gecacht
- `X-Accel-Buffering "no"` fehlt
### Datei-Uploads schlagen fehl
- `client_max_body_size` ist zu klein
### Alles funktioniert lokal, bricht aber nur hinter dem Proxy
- der Proxy komprimiert und puffert Live-Verkehr
- dem Proxy fehlt WebSocket-Unterstützung
## Beispiel: Caddy
<details>
<summary>Beispielkonfiguration anzeigen</summary>
```caddy
reverse_proxy 127.0.0.1:3000 {
# WebSocket-Unterstützung ist in Caddy automatisch vorhanden
# SSE-Antworten sofort flushen
flush_interval -1
# Host- und Proxy-Header weiterreichen
header_up Host {host}
header_up X-Real-IP {remote_host}
header_up X-Forwarded-For {remote_host}
header_up X-Forwarded-Proto {scheme}
# Timeouts für langlebige Streams erhöhen
transport http {
read_timeout 3600s
write_timeout 3600s
}
}
```
</details>
Caddy behandelt WebSocket-Upgrades automatisch — keine zusätzliche Konfiguration nötig. Die Direktive `flush_interval -1` sorgt dafür, dass SSE-Teilstücke ohne Buffering sofort weitergeleitet werden.
## Warnung zu CDN und doppelter Komprimierung
Wenn Sie ein CDN (wie Cloudflare) vor Ihren Reverse Proxy setzen, achten Sie auf doppelte Komprimierung:
- OpenChamber komprimiert HTTP-Antworten mit gzip (Schwelle 1 KB).
- Cloudflare und andere CDNs komprimieren Antworten standardmäßig ebenfalls.
- Das kann zu doppelt komprimierten Antworten oder falschen `Content-Encoding`-Headern führen.
Um das zu vermeiden, deaktivieren Sie die Komprimierung auf **einer** Ebene:
- **Cloudflare:** Rules → Compression → deaktivieren (oder den Modus „Passthrough“ verwenden).
- **Nginx:** `gzip off` (oben in den Beispielen bereits gezeigt).
- **Caddy:** Caddy komprimiert standardmäßig nicht erneut, wenn der Upstream bereits komprimierte Inhalte sendet.
SSE-Streaming-Routen sind von OpenChamber von der Komprimierung ausgeschlossen, das CDN kann sie aber trotzdem puffern. Prüfen Sie in der CDN-Dokumentation, wie sich Buffering auf SSE-Pfaden deaktivieren lässt.
## Verwandt
- [Tunnels](/tunnels/)
- [Fehlerbehebung](/troubleshooting/)
@@ -0,0 +1,35 @@
---
title: Geplante Aufgaben
description: Führe einen Prompt automatisch nach Zeitplan aus.
---
# Geplante Aufgaben
Eine geplante Aufgabe führt für dich nach Zeitplan einen Prompt aus — zum Beispiel täglich „die Änderungen von gestern zusammenfassen“ oder wöchentlich eine Bereinigung. Wenn sie läuft, startet OpenChamber eine neue Session und sendet den Prompt selbst. Öffne den Scheduler über die Schaltfläche oben in der Session-Seitenleiste.
## Eine Aufgabe erstellen
1. Öffne den Dialog für geplante Aufgaben in der Session-Seitenleiste.
2. Füge eine Aufgabe hinzu und gib ihr einen Namen.
3. Wähle, wann sie läuft:
- **daily** — zu einer oder mehreren Zeiten pro Tag
- **weekly** — an ausgewählten Wochentagen und Uhrzeiten
- **once** — ein einzelnes Datum und eine einzelne Uhrzeit
4. Lege fest, was sie tut: den zu sendenden Prompt sowie Provider, Modell und Agent, die verwendet werden sollen. Der Prompt kann ein Slash-Befehl sein, zum Beispiel `/review`.
5. Speichern und sicherstellen, dass die Aufgabe aktiviert ist.
Du kannst jede Aufgabe sofort mit **run now** ausführen, um zu prüfen, ob sie das tut, was du erwartest.
Aktiviere **Run as goal**, damit der Lauf seinen Prompt bis zum Abschluss verfolgt, statt nach einer Antwort zu stoppen — siehe [Session Goals](/session-goals/).
## Woran du Erfolg erkennst
Nach einem Lauf zeigt die Aufgabe, wann sie zuletzt gelaufen ist, ob sie erfolgreich war und einen Link zur Session, die sie erstellt hat. Wenn ein Lauf fehlschlägt, wird dort auch der Fehler angezeigt.
## Wichtig zu wissen
Aufgaben werden nur ausgelöst, während der OpenChamber-Server läuft. Wenn du ihn schließt, sind geplante Läufe pausiert, bis er wieder online ist.
## Verwandtes
- [Commands & Snippets](/commands-snippets/) — einen Slash-Befehl als Prompt wiederverwenden
@@ -0,0 +1,44 @@
---
title: Sicherheit
description: Schützen Sie die UI mit einem Passwort und Passkeys, bevor Sie sie freigeben.
---
# Sicherheit
OpenChamber gewährt Zugriff auf Ihren Rechner und Ihren Code. Sperren Sie es also ab, bevor jemand außer Ihnen darauf zugreifen kann. Diese Seite behandelt das UI-Passwort, Passkeys und was Sie wissen sollten, bevor Sie OpenChamber in ein Netzwerk exponieren.
## UI-Passwort setzen
Starten Sie OpenChamber mit einem Passwort, und die Browser-UI fragt danach:
```bash
openchamber --ui-password be-creative-here
```
Sie können es auch über die Umgebungsvariable `OPENCHAMBER_UI_PASSWORD` setzen, statt es in die Befehlszeile zu schreiben. Nach der Anmeldung merkt sich OpenChamber das Gerät für eine Weile, damit Sie nicht jedes Mal gefragt werden.
Setzen Sie immer ein Passwort, wenn die Instanz für andere erreichbar ist — besonders über einen [Tunnel](/tunnels/) oder das öffentliche Internet.
## Passkeys
Sobald ein Passwort gesetzt ist, können Sie Passkeys (Face ID, Touch ID, ein Sicherheitsschlüssel) für eine schnellere Anmeldung hinzufügen. Fügen Sie sie unter **Einstellungen → OpenChamber → Passkeys** hinzu.
Passkeys sind an das aktuelle Passwort gebunden. Wenn Sie das Passwort ändern oder entfernen, werden gespeicherte Passkeys gelöscht und Sie fügen sie erneut hinzu.
## Geräte-Tokens
Geräte, die über [Ein Gerät verbinden](/connect-devices/) gekoppelt werden, authentifizieren sich mit eigenen gerätespezifischen Tokens, nicht mit dem UI-Passwort. Pairing-Links sind nur einmal nutzbar und laufen ab, wenn sie nicht verwendet werden; jedes gekoppelte Gerät wird unter **Einstellungen → Remote-Instanzen → Mit diesem Server verbinden** aufgeführt, wo Sie es jederzeit widerrufen können. Verbindungen von außerhalb laufen über das [Private Relay](/private-relay/), das Ende-zu-Ende verschlüsselt ist und Ihren Traffic nicht lesen kann.
## Bevor Sie es freigeben
- Standardmäßig lauscht OpenChamber nur auf Ihrem eigenen Rechner (`127.0.0.1`). Es braucht eine bewusste Änderung, um breiter zu lauschen, und Sie sollten vorher ein Passwort setzen.
- Für Ihre eigenen Geräte bevorzugen Sie [Pairing](/connect-devices/) mit dem [Private Relay](/private-relay/) — dabei wird überhaupt nichts öffentlich freigegeben.
- Wenn Sie eine öffentliche URL brauchen, verwenden Sie lieber einen [Tunnel](/tunnels/) oder ein privates Netzwerk (z. B. VPN), statt einen Port ins Internet zu öffnen.
- Wenn Sie OpenChamber hinter Ihrem eigenen HTTPS-Server betreiben, sehen Sie sich [Reverse Proxy](/reverse-proxy/) an.
## Verwandt
- [Ein Gerät verbinden](/connect-devices/) — einmaliges Pairing und gerätespezifische Tokens
- [Private Relay](/private-relay/) — Ende-zu-Ende-verschlüsselter Zugriff von überall
- [Tunnel](/tunnels/) — eine öffentliche URL freigeben, wenn Sie eine brauchen
- [Reverse Proxy](/reverse-proxy/) — OpenChamber hinter Ihrem eigenen Server betreiben
@@ -0,0 +1,73 @@
---
title: Sitzungsziele
description: Verwandelt eine Aufforderung in ein Ziel, auf das der Agent automatisch hinarbeitet.
---
# Sitzungsziele
Ein Ziel macht aus einer Aufforderung eine Ziellinie. Statt den Agenten nach jeder Antwort mit "continue" anzustupsen, legst du das Ziel einmal fest — und OpenChamber hält die Sitzung automatisch darauf ausgerichtet und prüft nach jedem Zug mit einem unabhängigen Prüfer den Fortschritt. Es läuft weiter, auch wenn du nicht da bist.
## Ein Ziel starten
1. Drücke in der Composer-Ansicht die Zielschaltfläche. Sie leuchtet auf — der Zielmodus ist aktiviert.
2. Gib deine Aufforderung ein und sende sie ab. Diese Nachricht wird zum Ziel des Vorhabens.
Das funktioniert in einer bestehenden Sitzung ebenso wie in einem neuen Sitzungsentwurf: Zielmodus aktivieren, die erste Nachricht schreiben, senden — die neue Sitzung startet mit dem bereits aktiven Ziel.
### Weitere Wege, ein Ziel zu starten
- **Aus einer Antwort des Agenten**: Im Dialog "Start new session from this answer" aktiviere **Run as goal** — die Antwort wird als Aufgabe übergeben, die die neue Sitzung bis zum Abschluss ausführt (kombiniere das mit **Create worktree** für einen isolierten Lauf).
- **Aus einem Plan**: Wenn du einen gespeicherten Plan in einer neuen Sitzung oder einem Worktree umsetzt, aktiviere im Dialog **Run as goal**. Das Ziel übernimmt den Planinhalt als seine Aufgabe, sodass der Prüfer den Fortschritt am tatsächlichen Plan misst.
- **Nach Zeitplan**: Aktiviere bei einer [geplanten Aufgabe](/scheduled-tasks/) **Run as goal**, damit wiederkehrende Läufe ihre Aufforderung bis zum Abschluss verfolgen.
## Eine eigenständige Zielbeschreibung schreiben
Der Fortschrittsprüfer sieht nur deine Zielbeschreibung und die neueste Antwort des Agenten — nicht den Chatverlauf. Formuliere die Zielnachricht also so, dass auch jemand ohne Gesprächskontext versteht, wie der fertige Zustand aussieht.
- Gut: "Füge Tests für das Exportmodul hinzu und sorge dafür, dass die gesamte Test-Suite besteht."
- Nicht so gut: "Beheb das" oder "Mach mit der Idee weiter."
Für kleine nachgelagerte Rückfragen mit Kontext brauchst du kein Ziel — sende einfach eine normale Nachricht.
## So funktioniert es
Nachdem der Agent anhält und die Sitzung für einen Moment ruhig bleibt, macht OpenChamber Folgendes:
1. Es bittet ein kleines, günstiges Modell, den letzten Zug gegen das Ziel zu prüfen: weitermachen, fertig oder festgefahren?
2. Wenn das Urteil "weitermachen" lautet, sendet es eine Fortsetzungsaufforderung und der Agent nimmt die Arbeit wieder auf.
3. Wenn das Ziel nachweislich erreicht ist, ist es abgeschlossen und du bekommst eine Benachrichtigung.
4. Wenn der Agent wirklich feststeckt (deine Eingabe braucht), wird das Ziel erst dann als blockiert gestoppt — aber nur nachdem der Prüfer das dreimal in Folge gesagt hat, damit ein einzelner Ausrutscher das Ziel nie beendet.
Es gibt auch harte Sicherheitsstopps: ein optionales Token-Budget, eine Obergrenze für automatische Fortsetzungen und ein Stopp bei Fehlern in einem Zug. Wenn der Kontext der Sitzung mitten in der Arbeit komprimiert wird, geht das Ziel einfach weiter — in das Kontextfenster zu laufen ist ein Beweis dafür, dass die Arbeit noch nicht fertig war.
### Stoppen und fortsetzen
- Die **Stopp-Schaltfläche** bricht den laufenden Zug ab und pausiert das Ziel — dein ausdrückliches "stop" gewinnt immer gegen die Schleife.
- **Pause** in der Zielleiste macht aus der anderen Richtung dasselbe: Es pausiert das Ziel und stoppt den laufenden Zug.
- Während der Pause kannst du normal chatten — die Schleife bleibt dir aus dem Weg.
- **Resume** aktiviert die Schleife neu: Bei einer ruhenden Sitzung geht der Fortsetzungsanstupser sofort raus; wenn der Agent gerade arbeitet, hängt sich die Schleife beim nächsten Halt stillschweigend wieder an.
## Beobachten und verwalten
- Die Leiste über dem Composer zeigt die neueste Fortschrittsnotiz, den Status und die Token-Nutzung des Ziels sowie eine Inline-Schaltfläche zum Pausieren/Fortsetzen. Wenn der Agent angehalten hat und das Ziel aktiv ist, zeigt die Leiste ein drehendes **Evaluating…** — das ist das ruhige Zeitfenster und der laufende Audit.
- Die Zielschaltfläche bleibt während der Laufzeit blau beleuchtet, wird bei Abschluss grün und bei Blockierung oder erreichtem Budget rot. Drücke sie, um den Zieldialog zu öffnen: Bearbeite das Ziel oder das Budget oder entferne das Ziel. Ein abgeschlossenes Ziel ist schreibgeschützt — entferne es und aktiviere dann ein neues.
- In der Sitzungs-Seitenleiste erscheint neben dem Sitzungsdatum ein kleines Zielsymbol, dessen Farbe den Zustand des Ziels widerspiegelt.
## Benachrichtigungen
Während ein Ziel aktiv ist, werden die "Agent ist bereit"-Benachrichtigungen pro Zug unterdrückt — sie würden nur die eigenen Fortsetzungen der Zielschleife wiederholen. Wenn das Ziel zur Ruhe kommt (abgeschlossen, blockiert oder Budget erreicht), bekommst du stattdessen eine letzte Benachrichtigung, auf dem Desktop und als mobile Push-Nachricht. Sie folgt derselben Einstellung "bei Abschluss benachrichtigen"; Berechtigungsanfragen, Fragen und Fehlermeldungen funktionieren währenddessen wie gewohnt weiter.
## Token-Budget
In **Einstellungen → Chat → Goal** kannst du ein Standard-Token-Budget für neue Ziele festlegen. Wenn ein Ziel sein Budget erreicht, stoppt es als "budget reached" statt weiter zu verbrauchen — du kannst das Budget erhöhen und im Zieldialog fortsetzen.
## Beachten
- Die Zielschleife läuft im OpenChamber-Server, nicht in deinem Browser-Tab. Schließe den Tab, sperre das Telefon — der Agent arbeitet weiter, und du bekommst eine Benachrichtigung, wenn das Ziel zur Ruhe kommt. Der Server (Desktop-App oder `openchamber`-Prozess) muss weiterlaufen.
- Ziele verwenden den eigenen Provider und das Modell deiner Sitzung, einschließlich der Prüferaufrufe — nichts verlässt die Provider, die du bereits nutzt.
- Pro Sitzung immer nur ein Ziel gleichzeitig.
## Verwandt
- [Geplante Aufgaben](/scheduled-tasks/) — eine Aufforderung nach Zeitplan ausführen; dort "Run as goal" aktivieren, damit ein geplanter Lauf seine Aufforderung bis zum Abschluss verfolgt
- [Benachrichtigungen](/notifications/) — wie du von einem fertigen Ziel erfährst
@@ -0,0 +1,27 @@
---
title: Skills-Katalog
description: Fertige Skills durchsuchen und installieren.
---
# Skills-Katalog
Im Skills-Katalog kannst du Skills installieren, die andere veröffentlicht haben, statt selbst welche zu schreiben. Du öffnest ihn unter **Einstellungen → Skills → Katalog**.
Zum Schreiben eigener Skills siehe [Skills](/skills/).
## Einen Skill installieren
1. Öffne den Katalog.
2. Durchsuche die eingebauten Quellen — das Anthropic-Skills-Repo und die ClawdHub-Community-Registry — oder nutze die Suche.
3. Wähle einen Skill aus und installiere ihn.
4. Entscheide, wo er installiert werden soll: für alles, was du tust, oder nur für das aktuelle Projekt.
Wenn bereits ein Skill mit demselben Namen existiert, fragt OpenChamber, was geschehen soll — überspringen, überschreiben oder für jeden Skill einzeln entscheiden.
## Eigene Quelle hinzufügen
Du kannst jedes Git-Repository als Quelle hinzufügen — entweder mit seinem `owner/repo`-Namen oder mit einer vollständigen Git-URL. Private Repositories brauchen Zugriff auf deinem Rechner (einen SSH-Schlüssel oder gespeicherte Anmeldedaten); wenn sich eine Quelle nicht authentifizieren kann, weist der Katalog darauf hin, statt still zu scheitern.
## Weiterführend
- [Skills](/skills/) — installierte Skills erstellen und verwalten
+30
View File
@@ -0,0 +1,30 @@
---
title: Skills
description: Erstelle wiederverwendbare Anweisungen, die Agents bei Bedarf laden.
---
# Skills
Ein Skill ist ein wiederverwendbarer Satz von Anweisungen, den ein Agent bei Bedarf laden kann — zum Beispiel „wie wir Commit-Nachrichten schreiben“ oder „unsere API-Konventionen“. Du verwaltest sie unter **Einstellungen → Skills**.
Wenn du fertige Skills installieren statt eigene schreiben möchtest, siehe [Skills-Katalog](/skills-catalog/).
## Einen Skill erstellen
1. Öffne **Einstellungen → Skills**.
2. Erstelle einen Skill und gib ihm einen Namen und eine kurze Beschreibung. Die Beschreibung ist die Grundlage dafür, wann der Agent den Skill anwendet. Sei daher konkret.
3. Schreibe die Anweisungen. Füge unterstützende Dateien hinzu, falls der Skill sie braucht.
4. Wähle den Speicherort:
- **persönlich** — in jedem Projekt verfügbar
- **projektbezogen** — nur im aktuellen Projekt verfügbar
## Einen Skill im Chat verwenden
Gib mitten in einer Nachricht `/` ein, um die Skill-Auswahl zu öffnen, und wähle dann einen Skill aus. Der Agent lädt für die Antwort die Anweisungen dieses Skills.
Ein `/` ganz am Anfang der Nachricht öffnet stattdessen [Befehle](/commands-snippets/).
## Weiterführend
- [Skills-Katalog](/skills-catalog/) — installiere Skills, die andere veröffentlicht haben
- [Befehle & Snippets](/commands-snippets/) — weitere Möglichkeiten, Text im Chat wiederzuverwenden
@@ -0,0 +1,48 @@
---
title: SSH-Hosts & Proxying
description: Importiere gespeicherte SSH-Hosts und füge in der Desktop-App zusätzliche SSH-Portweiterleitungen hinzu.
---
# SSH-Hosts & Proxying
Verwende in der Desktop-App **Settings → Remote Instances**, um gespeicherte SSH-Hosts zu importieren, dich mit einem entfernten Rechner zu verbinden und über dieselbe SSH-Verbindung zusätzliche Ports bereitzustellen.
> SSH-Hosts und SSH-Proxying sind Funktionen **nur für den Desktop**. Sie verwenden den SSH-Client auf deinem Rechner.
## SSH-Host importieren
OpenChamber kann Hosts aus deiner lokalen SSH-Konfiguration lesen, also aus demselben Ort, den auch Befehle wie `ssh work-server` verwenden.
1. Öffne **Settings → Remote Instances**.
2. Wähle einen Host unter **Saved SSH hosts**.
3. Wenn es sich um ein Muster handelt, gib das tatsächliche Ziel ein, zum Beispiel `deploy@app.example.com`.
4. Speichern und verbinden.
OpenChamber erstellt mit diesem SSH-Befehl eine Remote-Instanz. Wenn sie **ready** erreicht, öffnet sich die entfernte OpenChamber-UI in der Desktop-App.
## Zusätzliche Portweiterleitungen hinzufügen
Jede Remote-Instanz hat den Bereich **Port Forwards**. Verwende ihn, wenn etwas auf einer Seite der SSH-Verbindung einen Port auf der anderen Seite erreichen muss.
OpenChamber unterstützt drei Weiterleitungstypen:
- **Local (-L)** — öffne einen Port auf deinem Rechner, der mit etwas auf dem entfernten Rechner verbunden ist.
- **Remote (-R)** — öffne einen Port auf dem entfernten Rechner, der zurück zu deinem Rechner verbindet.
- **Dynamic (-D)** — öffne einen lokalen SOCKS-Proxy über die SSH-Verbindung.
Für die meisten App-Vorschauen und Dashboards, die auf dem entfernten Rechner laufen, verwende **Local (-L)**.
## Den SOCKS-Proxy verwenden
Wähle **Dynamic (-D)**, wenn andere Tools auf deinem Rechner über den entfernten Rechner browsen sollen. OpenChamber öffnet dafür einen lokalen SOCKS-Proxy-Port für diese SSH-Verbindung.
Sobald die Verbindung bereit ist, kopiere oder verwende die lokale Proxy-Adresse aus der Weiterleitungszeile. Konfiguriere deinen Browser oder dein Tool so, dass es sie als SOCKS5-Proxy verwendet.
## Privat halten
Verwende `127.0.0.1` oder `localhost` für den lokalen Bind-Host, es sei denn, du möchtest ausdrücklich, dass andere Geräte in deinem Netzwerk den weitergeleiteten Port erreichen.
## Verwandt
- [Remote Instances](/remote-instances/) — die Desktop-App mit OpenChamber auf einem anderen Rechner verbinden
- [Remote access](/troubleshooting/remote-access/) — wenn SSH oder Remote-Zugriff keine Verbindung herstellen
+30
View File
@@ -0,0 +1,30 @@
---
title: Themes
description: Passe OpenChamber mit eingebauten und benutzerdefinierten Themes an.
---
# Themes
OpenChamber unterstützt eingebaute Themes und benutzerdefinierte Theme-JSON-Dateien.
## Ein benutzerdefiniertes Theme hinzufügen
1. Erstelle das Themes-Verzeichnis:
```bash
mkdir -p ~/.config/openchamber/themes
```
2. Füge deine JSON-Datei in dieses Verzeichnis ein (zum Beispiel `my-theme.json`).
3. Öffne OpenChamber und gehe dann zu **Einstellungen -> Theme -> Themes neu laden**.
4. Wähle dein Theme im Dropdown aus. Es wird sofort angewendet.
## Speicherort der Themes
- macOS/Linux: `~/.config/openchamber/themes/`
## Vollständige Referenz des JSON-Formats
Verwende die vollständige Formatbeschreibung in den Haupt-Repository-Dokumenten:
- [`docs/CUSTOM_THEMES.md`](https://github.com/openchamber/openchamber/blob/main/docs/CUSTOM_THEMES.md)
@@ -0,0 +1,40 @@
---
title: Fehlerbehebung
description: Häufige Einrichtungs- und Laufzeitprobleme mit schnellen Lösungen.
---
# Fehlerbehebung
Hakt es irgendwo? Suchen Sie unten das Symptom und probieren Sie die Lösung.
## OpenChamber-Befehl beendet sich oder startet nicht
- bestätigen Sie Node.js `>=22`
- führen Sie `openchamber --version` aus
- installieren Sie die neueste CLI bei Bedarf neu
## Web-UI ist nicht erreichbar
- prüfen Sie die Server-Logs mit `openchamber logs`
- verifizieren Sie den aktiven Port (standardmäßig `3000`)
- öffnen Sie `http://localhost:3000` zuerst direkt, bevor Sie Tunnel-Links testen
## Remote-/Tunnel-Link funktioniert nicht
- führen Sie `openchamber tunnel status --all` aus
- starten Sie den Tunnel von derselben Instanz / demselben Port neu
- erzeugen Sie den Connect-Link neu, wenn das vorherige Token bereits verwendet wurde
Die vollständige Einrichtung steht unter [Tunnel](/tunnels/) und [Reverse Proxy](/reverse-proxy/), falls Sie einen nutzen.
## VS-Code-Erweiterung verbindet sich nicht
- bestätigen Sie, dass der OpenChamber-Server läuft
- prüfen Sie, ob die Erweiterung aktualisiert ist
- laden Sie das VS-Code-Fenster neu und versuchen Sie die Verbindung erneut
## Verwandt
- [Schnellstart](/quickstart/)
- [Tunnel](/tunnels/)
- [Reverse Proxy](/reverse-proxy/)
@@ -0,0 +1,34 @@
---
title: OpenCode-Verbindung
description: Beheben Sie, dass OpenChamber keine Verbindung zu seinem OpenCode-Server herstellt.
---
# OpenCode-Verbindung
Wenn OpenChamber lädt, aber nie über „OpenCode is restarting“ hinauskommt, oder der Chat nicht antwortet, ist der Server, mit dem es spricht, nicht erreichbar. Gehen Sie diese Punkte durch.
## Es hängt bei „OpenCode is restarting“
- geben Sie ihm direkt nach dem Start einen Moment — dieser Zustand ist normal, während der Server hochfährt
- prüfen Sie mit `openchamber status`, ob der Server noch läuft
- starten Sie ihn mit `openchamber restart` neu
- sehen Sie sich mit `openchamber logs` die Startdetails an
## Sie verbinden sich mit Ihrem eigenen Server
Wenn Sie OpenChamber so konfiguriert haben, dass es einen vorhandenen Server nutzt, prüfen Sie die Einrichtung aus [OpenCode Server](/opencode-server/) noch einmal:
- `OPENCODE_HOST` muss den Port enthalten, aber keinen Pfad — zum Beispiel `http://localhost:4096`
- setzen Sie `OPENCODE_SKIP_START=true`, damit OpenChamber nicht auch noch seinen eigenen Server startet
- wenn die Adresse ungültig ist, ignoriert OpenChamber sie und startet stattdessen seinen eigenen Server — achten Sie in den Logs auf eine `[config]`-Warnung
## Es schlägt immer noch fehl
- bestätigen Sie, dass Node.js Version `20` oder neuer ist
- installieren Sie die neueste CLI neu
- öffnen Sie `http://localhost:3000` direkt, bevor Sie einen Tunnel- oder Remote-Link testen
## Verwandt
- [OpenCode Server](/opencode-server/) — wie OpenChamber den Server findet und verwaltet
- [Fehlerbehebung](/troubleshooting/) — weitere häufige Probleme
@@ -0,0 +1,47 @@
---
title: Remote-Zugriff
description: Beheben Sie Tunnel, Remote-Instanzen und den Zugriff auf OpenChamber von einem anderen Gerät aus.
---
# Remote-Zugriff
Wenn Sie OpenChamber von Ihrem Telefon oder einem anderen Rechner aus nicht erreichen, hängt die Lösung davon ab, wie Sie sich verbinden.
## Prüfen Sie zuerst die Grundlagen
- öffnen Sie zuerst `http://localhost:3000` auf demselben Computer — wenn das fehlschlägt, ist es kein Remote-Problem; sehen Sie unter [OpenCode-Verbindung](/troubleshooting/opencode-connection/) nach
- bestätigen Sie mit `openchamber status`, dass der Server läuft
## Gekoppeltes Gerät verbindet sich nicht
- der QR-Code / Pairing-Link ist **nur einmal nutzbar** — wenn er bereits gescannt wurde (oder abgelaufen ist), erstellen Sie über **Gerät hinzufügen** einen neuen
- wenn das Gerät mit **Nur Heimnetzwerk** gekoppelt wurde, kann es sich von außerhalb dieses Netzwerks nicht verbinden — koppeln Sie es erneut mit **Überall**
- prüfen Sie bei **Überall**-Pairing auf dem Server **Einstellungen → Remote-Instanzen → OpenChamber Relay**: Dort sollte **Verbunden** stehen; wenn nicht, deaktivieren und reaktivieren Sie es
- wenn ein Gerät **widerrufen** wurde, ist sein Token endgültig weg — koppeln Sie es mit einem neuen QR-Code erneut
Wie diese Verbindungen funktionieren, steht unter [Ein Gerät verbinden](/connect-devices/) und [Private Relay](/private-relay/).
## Tunnel-Link funktioniert nicht
- führen Sie `openchamber tunnel status --all` aus
- starten Sie den Tunnel von derselben Instanz und demselben Port neu
- erzeugen Sie den Connect-Link neu, wenn der vorherige bereits verwendet wurde
Die vollständige Einrichtung steht unter [Tunnel](/tunnels/).
## Remote-Instanz verbindet sich nicht (Desktop)
Wenn eine [Remote-Instanz](/remote-instances/) hängen bleibt, nennt OpenChamber den fehlgeschlagenen Schritt:
- **auth** — Ihr SSH- oder UI-Passwort wurde abgelehnt; geben Sie es erneut ein
- **install / start** — OpenChamber konnte den Server auf dem entfernten Rechner nicht einrichten oder starten; prüfen Sie die Anforderungen dieses Rechners
- **forwarding** — die Verbindung steht, aber der Port erreicht Sie nicht; versuchen Sie einen anderen lokalen Port
## Hinter Ihrem eigenen Server
Wenn Sie OpenChamber hinter einen Reverse Proxy setzen und es seltsam lädt oder keine Verbindung herstellt, sehen Sie sich [Reverse Proxy](/reverse-proxy/) an.
## Verwandt
- [Ein Gerät verbinden](/connect-devices/) · [Private Relay](/private-relay/) · [Tunnel](/tunnels/) · [Remote-Instanzen](/remote-instances/) · [Reverse Proxy](/reverse-proxy/)
- [Sicherheit](/security/) — schützen Sie die UI, bevor Sie sie freigeben
@@ -0,0 +1,35 @@
---
title: Worktrees & Git
description: Häufige Probleme mit Worktrees und Git beheben.
---
# Worktrees & Git
Probleme, die bei [Worktree-Sitzungen](/worktrees/) und der [Git-Ansicht](/git/) auftreten, und wie Sie sie beheben.
## Ein Worktree braucht Aufmerksamkeit
OpenChamber markiert einen Worktree, wenn etwas nicht stimmt:
- **Ordner fehlt** — der Ordner des Worktrees wurde gelöscht oder außerhalb von OpenChamber verschoben; entfernen Sie die Sitzung und erstellen Sie einen frischen Worktree
- **abgetrennter oder noch nicht angelegter Branch** — der Worktree liegt nicht auf einem normalen Branch; checken Sie ihn auf einen aus
- **Merge, Rebase oder Cherry-Pick läuft noch** — eine Operation wurde halb fertig gelassen; beenden oder abbrechen Sie sie in der Git-Ansicht
## Worktree lässt sich nicht erstellen
- **Branch existiert bereits** — wählen Sie einen anderen Branchnamen oder verwenden Sie die Option für einen bestehenden Branch
- **Name bereits vergeben** — wählen Sie einen anderen Worktree-Namen
## Commit- oder PR-Erstellung schlägt fehl
Das Erzeugen einer Commit-Nachricht oder einer PR-Beschreibung läuft in Ihrer aktiven Sitzung, daher brauchen Sie eine geöffnete Sitzung mit ausgewähltem Arbeitsmodell. Öffnen oder wählen Sie eine Sitzung und versuchen Sie es erneut.
## SSH- oder Windows-Pfadprobleme
- stellen Sie sicher, dass der SSH-Schlüssel, den das Repo verwendet, derselbe ist, den Sie in Ihrer [Git-Identität](/git-identities/) gesetzt haben
- unter Windows verwendet Git Unix-ähnliche Pfade (wie `/c/Users/...`) — OpenChamber handhabt das, aber benutzerdefinierte SSH-Schlüsselpfade sollten dieselbe Form haben
## Verwandt
- [Worktree-Sitzungen](/worktrees/) — wie Worktrees erstellt und entfernt werden
- [Git-Identitäten](/git-identities/) — für jedes Repo den richtigen Schlüssel und die richtige Identität setzen
+120
View File
@@ -0,0 +1,120 @@
---
title: Tunnel
description: Stelle OpenChamber sicher für Remote- und Mobilzugriff bereit.
---
# Tunnel
Ein Tunnel ist ein öffentlicher Link zu deinem OpenChamber, damit du ihn von einem normalen Browser in einem anderen Netzwerk aus erreichen kannst. Nutze `openchamber tunnel`, um einen für eine laufende Instanz zu erstellen.
> Wenn du **deine eigenen Geräte** verbindest (die Mobile App, einen anderen Desktop), brauchst du normalerweise keinen Tunnel — [kopple sie](/connect-devices/) stattdessen und lass das Ende-zu-Ende-verschlüsselte [Private Relay](/private-relay/) den Zugriff von unterwegs ohne zusätzliche Einrichtung übernehmen.
## Voraussetzungen
OpenChamber startet das CLI des Tunnel-Anbieters auf deinem Rechner. Installiere zuerst den Anbieter, den du verwenden möchtest:
```bash
brew install cloudflared
brew install ngrok
```
Cloudflare Quick Tunnels können mit `cloudflared` laufen. Ngrok benötigt ein ngrok-Konto und ein Authtoken aus dem ngrok-Dashboard:
```bash
ngrok config add-authtoken <your-ngrok-token>
```
## Schnellstart
1. Starte OpenChamber:
```bash
openchamber
```
Wenn du diesen Schritt überspringst, kann `openchamber tunnel start` automatisch einen CLI-Server starten. Beim automatischen Start kannst du Serveroptionen wie `--port`, `--host`, `--lan`, `--ui-password` und `--api-only` mitgeben.
2. Starte einen Cloudflare-Tunnel:
```bash
openchamber tunnel start --provider cloudflare --mode quick
```
Oder starte einen Ngrok-Tunnel:
```bash
openchamber tunnel start --provider ngrok --mode quick
```
3. Status prüfen:
```bash
openchamber tunnel status
```
Sobald der Tunnel aktiv ist, zeigt `status` eine öffentliche URL. Öffne sie oder scanne den QR-Code, um OpenChamber von überall aus zu erreichen.
Standardmäßig druckt OpenChamber in interaktiven TTY-Sitzungen einen QR-Code. Mit `--qr` erzwingst du die QR-Ausgabe, mit `--no-qr` deaktivierst du sie.
## Anbieter
- `cloudflare`: Quick-, Managed-Remote- und Managed-Local-Modi
- `ngrok`: Quick-Modus
## Verwaltete Modi
### Managed Remote
Verwende ein von Cloudflare verwaltetes Token und einen Hostnamen:
```bash
openchamber tunnel start --provider cloudflare --mode managed-remote --token-file ~/.secrets/cf-token --hostname app.example.com
```
### Managed Local
Verwende eine lokale `cloudflared`-Konfiguration:
```bash
openchamber tunnel start --provider cloudflare --mode managed-local --config ~/.cloudflared/config.yml
```
## Profile (managed-remote)
Ein wiederverwendbares Profil speichern:
```bash
openchamber tunnel profile add --provider cloudflare --mode managed-remote --name prod-main --hostname app.example.com --token-file ~/.secrets/cf-token
```
Mit dem gespeicherten Profil starten:
```bash
openchamber tunnel start --profile prod-main
```
## Nützliche Befehle
```bash
openchamber tunnel providers
openchamber tunnel ready --provider cloudflare
openchamber tunnel ready --provider ngrok
openchamber tunnel doctor --provider cloudflare
openchamber tunnel doctor --provider ngrok
openchamber tunnel stop --port 3000
```
## Hinweise zum Verhalten
- ein aktiver Tunnel pro OpenChamber-Instanz (Port)
- wenn auf derselben Instanz ein neuer Modus oder Anbieter startet, ersetzt er den vorherigen Tunnel
- das Erstellen eines neuen Verbindungslinks widerruft den vorherigen unbenutzten Link
- das automatische Starten des Tunnels bewahrt Server-Flags wie `--ui-password` und `--api-only` in den Instanzeinstellungen auf, die von Neustart-/Update-Flows verwendet werden
## Verwandt
- [Connect a Device](/connect-devices/) — eigene Geräte ohne öffentliche URL koppeln
- [Security](/security/) — die UI schützen, bevor du sie freigibst
- [Desktop Tunnels](/desktop-tunnels/) — Tunnel-Einrichtung in der Desktop-App ohne CLI-Start
- [PWA & Mobile](/mobile/) — OpenChamber vom Telefon aus erreichen
- [Troubleshooting](/troubleshooting/) — wenn der Tunnel-Link nicht funktioniert
+31
View File
@@ -0,0 +1,31 @@
---
title: Updates
description: Halten Sie OpenChamber auf Desktop, Web und VS Code auf dem neuesten Stand.
---
# Updates
Wie Sie OpenChamber aktualisieren, hängt davon ab, wie Sie es installiert haben. In jedem Fall können Sie Ihre aktuelle Version unter **Einstellungen → OpenChamber → Über** prüfen.
## Desktop-App
Die Desktop-App prüft GitHub-Releases auf Updates. Wenn eines verfügbar ist, informiert OpenChamber Sie, lädt es auf Wunsch herunter und installiert es beim nächsten Neustart. Sie behalten immer die Kontrolle — nichts wird ohne Ihr Zutun installiert.
## Web / CLI
Wenn Sie die CLI installiert haben, aktualisieren Sie sie im Bereich **Über** mit den Schaltflächen zum Prüfen und Aktualisieren oder im Terminal:
```bash
openchamber update
```
OpenChamber erkennt, wie es installiert wurde (npm, pnpm, yarn oder bun), und führt das passende Update für Sie aus.
## Der OpenCode-Server
OpenChamber und OpenCode werden getrennt aktualisiert. Wenn eine neue OpenCode-Version verfügbar ist, bietet OpenChamber an, sie zu aktualisieren, und startet den Server danach neu. Wie dieser Server verwaltet wird, steht unter [OpenCode Server](/opencode-server/).
## Verwandt
- [Installieren](/install/) — wie die jeweilige App überhaupt installiert wird
- [OpenCode Server](/opencode-server/) — den zugrunde liegenden Server aktualisieren
+28
View File
@@ -0,0 +1,28 @@
---
title: Nutzung & Kontingente
description: Verfolge, wie viel deines Provider-Tarifs du bereits genutzt hast.
---
# Nutzung & Kontingente
Die Seite Nutzung zeigt, wie viel du von den Tarifen der einzelnen Provider bereits verbraucht hast, damit du sehen kannst, wie nah du an einem Limit bist. Du öffnest sie unter **Einstellungen → Nutzung**.
## Was du siehst
Für jeden verbundenen Provider zeigt OpenChamber:
- wie viel des aktuellen Zeitfensters du bereits genutzt hast, als Balken
- eine Aufschlüsselung nach Modell
- einen Tempoindikator, damit du siehst, ob du rechtzeitig am Limit ankommen wirst
Du kannst auswählen, welche Provider angezeigt werden, und dieselbe Zusammenfassung ist auch über ein Dropdown in der App-Kopfzeile verfügbar.
## Unterstützte Provider
Die Nutzung funktioniert für die Provider, die ein Kontingent veröffentlichen, darunter Claude, Codex, GitHub Copilot, Google, OpenRouter, Kimi, NanoGPT, z.ai, Zhipu, MiniMax, Ollama Cloud und Wafer.
Ein Anbieter zeigt Nutzung erst dann an, wenn du dich auf der [Seite „Anbieter“](/providers/) dort angemeldet hast. Einige Anbieter brauchen noch einen zusätzlichen Schritt — Ollama Cloud liest zum Beispiel eine Sitzungsdatei, die du separat einrichtest. Wenn ein Anbieter keine Daten anzeigt, fehlt meist diese zusätzliche Anmeldeinformation.
## Weiterführend
- [Provider, Modelle & Agents](/providers/) — zuerst anmelden, damit Nutzung angezeigt wird
+36
View File
@@ -0,0 +1,36 @@
---
title: Sprachmodus
description: Sprich mit OpenChamber und lass dir Antworten vorlesen.
---
# Sprachmodus
Mit dem Sprachmodus kannst du Nachrichten diktieren und dir Antworten vorlesen lassen. Schalte ihn unter **Einstellungen → OpenChamber → Sprache** ein.
## Antworten vorlesen lassen (Text-zu-Sprache)
Wähle aus, wie Antworten gesprochen werden:
- **Browser** — die integrierten Stimmen deines Browsers, keine Einrichtung nötig
- **OpenAI** — die Stimmen von OpenAI; füge deinen API-Schlüssel ein und wähle eine Stimme
- **OpenAI-kompatibel** — jeder Dienst, der das OpenAI-Format unterstützt; gib seine URL und, falls nötig, einen API-Schlüssel an
- **macOS say** — der eingebaute `say`-Befehl, auf Macs mit dieser Funktion
Sobald es aktiviert ist, erscheint bei Nachrichten eine Abspieltaste, mit der du sie vorlesen lassen kannst.
## Nachrichten diktieren (Sprache-zu-Text)
Wähle aus, wie deine Sprache transkribiert wird:
- **Browser** — die integrierte Spracherkennung deines Browsers, keine Einrichtung nötig
- **Server** — ein OpenAI-kompatibler Transkriptionsdienst; gib seine URL und, falls nötig, einen API-Schlüssel an
- **Gerätebasiert** — ein Sprachmodell, das in deinem Browser läuft und beim ersten Verwenden heruntergeladen wird
## Hinweis für Telefone
Beim Vorlesen auf einem Telefon sind die Optionen OpenAI oder OpenAI-kompatibel am zuverlässigsten — mobile Browser begrenzen die integrierten Stimmen.
## Weiterführend
- [Benachrichtigungen](/notifications/) — lasse dich statt durch Zuhören per Ping informieren
- [Provider, Modelle & Agents](/providers/) — dort liegt möglicherweise bereits dein OpenAI-Schlüssel
@@ -0,0 +1,71 @@
---
title: Änderungen durchgehen
description: Lesen Sie einen Diff in der Reihenfolge, in der er Sinn ergibt, nicht alphabetisch.
---
# Änderungen durchgehen
Ein Diff ist nach Dateipfad sortiert, und das ist fast nie die Reihenfolge, in der die Änderung Sinn ergibt. Das Walkthrough ordnet ihn neu: Zusammengehörige Änderungen werden in **Stops** gruppiert, jeder Stop erklärt, was der Code jetzt anders macht, und die Stops sind so angeordnet, dass jeder auf dem vorherigen aufbaut.
Es erklärt und ordnet. Es bewertet Ihren Code nicht und fällt kein Urteil — dafür ist [Review](/git/) da.
Öffnen Sie es über das **Walkthrough**-Symbol in der rechten Leiste oder über die Schaltfläche **AI walkthrough** in den Bereichen Changes und Pull Request. Beides öffnet nur das Panel; generiert wird erst, wenn Sie **Generate walkthrough** drücken.
## Was es prüfen kann
| Bereich | Was enthalten ist |
| --- | --- |
| Alle uncommitteten | Alles, was noch nicht committet ist: gestagte, ungestagte und neue Dateien |
| Gestaged | Nur das, was jetzt in einen Commit gehen würde |
| Ungestaged | Arbeitsbaum und neue Dateien |
| Dieser Branch | Jeder Commit auf diesem Branch, der nicht auf seinem Basis-Stand ist |
| Pull Request | Die Änderung so, wie sie auf GitHub existiert |
**Dieser Branch** bedeutet nicht „nicht gepushte Commits“ — es ist alles, was der Branch gegenüber seiner Basis hinzufügt, egal ob gepusht oder nicht. Nach einem Commit, aber vor dem Push, unterscheiden sich also Branch und Pull Request absichtlich: Der eine zeigt, was Sie getan haben, der andere, was Reviewer gerade sehen.
Jeder Bereich wird separat gespeichert, sodass der Wechsel zwischen ihnen nichts verliert.
## Das Modell wählen
Walkthroughs nutzen standardmäßig Ihr kleines Modell. Wählen Sie unter **Einstellungen → Sitzungen → Modell für Änderungen durchgehen** ein anderes aus oder für eine einzelne Prüfung im Kopfbereich des Panels — nützlich, wenn eine Änderung riskant genug ist, ein stärkeres Modell zu brauchen.
Die Auswahl zeigt nur Modelle an, die strukturierten Output zurückgeben können, weil sich das Walkthrough ohne ihn nicht zusammensetzen lässt. Wenn ein Modell für den Diff zu klein ist, wird die Generierung mit einer Erklärung abgelehnt, statt die Eingabe stillschweigend zu kürzen: Ein Walkthrough über einen halben Diff wirkt sicher und ist falsch.
Wenn Sie ein Panel erneut öffnen, sehen Sie das Modell, das den aktuellen Inhalt erzeugt hat, sodass **Regenerate** mit demselben Modell wiederholt, sofern Sie es nicht ändern.
## Die Sprache wählen
Walkthroughs werden standardmäßig in Ihrer UI-Sprache geschrieben. Der Sprachwähler im Panelkopf startet dort, und Sie können für eine einzelne Prüfung jede andere Sprache wählen, in die OpenChamber übersetzt ist — eine geführte Erklärung ist nur in einer Sprache nützlich, die Sie bequem lesen.
Übersetzt wird nur der Fließtext. Bezeichner, Dateipfade und API-Namen bleiben genau so, wie sie im Code erscheinen, damit das, was ein Stop nennt, weiterhin suchbar bleibt.
Wenn in der von Ihnen gewählten Sprache noch nichts erzeugt wurde, zeigt das Panel weiterhin das vorhandene Walkthrough an und sagt das auch, statt leer zu werden. Drücken Sie **Generate walkthrough**, um eines in der neuen Sprache zu erhalten.
## Kosten und Caching
Nichts wird von selbst generiert. Die Generierung startet nur, wenn Sie sie anfordern, und auch das erneute Generieren ist manuell.
Ergebnisse werden gegen den exakten Inhalt des Diffs gecacht. Wenn Sie den Arbeitsbaum auf einen früheren Stand zurücksetzen, erscheint das frühere Walkthrough kostenlos wieder, ohne Modellaufruf. Sprache und Modell sind ebenfalls Teil dieses Schlüssels, also wird jede Kombination separat gespeichert: Hat ein Diff einmal Walkthroughs in zwei Sprachen, ist das Umschalten zwischen ihnen sofort und kostenlos.
Die Generierung läuft auf dem OpenChamber-Server, nicht in Ihrem Browser-Tab. Laden Sie die Seite neu oder schließen Sie das Panel, und sie läuft weiter; wenn Sie zurückkommen, wartet das Ergebnis. Nur **Cancel** beendet sie.
## Ehrlich mit Aktualität umgehen
Jeder Stop ist an den exakten Codeinhalt gebunden, den er beschreibt, damit das Panel Ihnen sagen kann, wenn sich dieser Code weiterentwickelt hat:
- **Veraltete Schritte** — der Code, den ein Stop beschrieben hat, wurde geändert oder ist verschwunden. Das Walkthrough bleibt sichtbar und markiert, damit Sie entscheiden können, ob Sie es neu generieren.
- **Nicht abgedeckt** — Änderungen im aktuellen Diff, die kein Stop beschreibt. Dazu gehören spätere Bearbeitungen nach der Generierung, Änderungen, die das Walkthrough als Routine eingestuft hat, sowie Lockfiles und andere generierte Dateien, die absichtlich aus der Modelleingabe herausgehalten werden. Sie werden alle am Ende des Streams aufgelistet, damit nichts stillschweigend verschwindet.
Neu generieren bedeutet neu schreiben statt patchen: Das vorherige Walkthrough geht als Kontext an das Modell, damit richtige Teile erhalten bleiben, und alles wird neu an den aktuellen Code angeheftet.
## Hinweise
- Kommentieren Sie im Walkthrough jede Zeile genau wie in der Diff-Ansicht; Kommentare werden an den Chat-Composer angehängt.
- Verfügbar auf Desktop- und Tablet-Breiten. In der VS-Code-Erweiterung oder der mobilen App nicht angeboten.
- Eine Pull-Request-Review benötigt ein verbundenes GitHub-Konto — siehe [GitHub Issues & PRs](/github/).
## Verwandt
- [Git & GitHub](/git/) — das Changes-Panel, aus dem dies liest, und die Review-Aktion, die tatsächlich Code bewertet
- [GitHub Issues & PRs](/github/) — GitHub verbinden, um Pull Requests zu prüfen
- [Anbieter, Modelle & Agents](/providers/) — woher das kleine Modell kommt
@@ -0,0 +1,36 @@
---
title: Worktree-Sitzungen
description: Gib einer Sitzung einen eigenen Branch und Ordner, damit die Arbeit isoliert bleibt.
---
# Worktree-Sitzungen
Eine Worktree-Sitzung läuft in einer eigenen ausgecheckten Kopie deines Repos auf einem eigenen Branch (einem Git-Worktree). So kommen sich parallele Sitzungen nicht in die Quere — die eine kann refaktorieren, während eine andere einen Fehler behebt, ohne ständiges Hin- und Herwechseln.
## Eine erstellen
1. Öffne den Dialog für einen neuen Worktree über die Schaltfläche oben in der Sitzungs-Seitenleiste.
2. Wähle einen Startpunkt:
- **new branch** — benenne den Branch und wähle, von welchem Branch aus gestartet werden soll
- **existing branch** — checke einen bereits vorhandenen Branch aus
3. Bestätige den Worktree-Ordner (OpenChamber schlägt einen anhand des Branchnamens vor).
4. Erstelle ihn.
OpenChamber legt den Branch an, richtet den Ordner ein und startet dort eine Sitzung. Du kannst auch direkt von einer [todo](/notes-todos-plans/) oder einem [GitHub issue or PR](/github/) aus damit beginnen.
## Die Arbeit zurückbringen
Wenn die Arbeit gut ist, verwende **Integrate** in der Git-Ansicht, um die Commits des Worktrees auf einen anderen Branch (etwa `main`) zu übertragen. Wenn ein Konflikt auftritt, kannst du den Konflikt dem Agenten zur Lösung geben.
## Aufräumen
Das Löschen oder Archivieren der Sitzung kann den Worktree entfernen. Du entscheidest, ob auch der Branch gelöscht werden soll — lokal und, falls vorhanden, remote. Nichts wird gelöscht, ohne dass du es anforderst.
## Wenn etwas seltsam aussieht
Ein Worktree braucht möglicherweise Aufmerksamkeit, wenn sein Ordner fehlt, sein Branch in einem detached-Zustand ist oder ein Merge oder Rebase noch nicht abgeschlossen wurde. OpenChamber markiert das, damit du es beheben kannst — siehe [Worktrees & Git](/troubleshooting/worktrees-git/).
## Verwandt
- [Multi-run](/multi-run/) — viele Worktree-Sitzungen gleichzeitig starten
- [Git- & GitHub-Workflows](/git/) — von innen in OpenChamber committen und integrieren
@@ -0,0 +1,71 @@
---
title: Recorrido por los cambios
description: Lee un diff en el orden que tiene sentido, no en orden alfabético.
---
# Recorrido por los cambios
Un diff está ordenado por ruta de archivo, que casi nunca es el orden en el que el cambio cobra sentido. El recorrido lo reordena: las ediciones relacionadas se agrupan en **paradas**, cada parada explica qué hace ahora el código de forma distinta, y las paradas se ordenan para que cada una se apoye en la anterior.
Explica y ordena. No juzga tu código ni emite veredictos — para eso está [Review](/git/).
Ábrelo con el icono **Recorrido** en la barra derecha, o con el botón **Recorrido con IA** en los paneles de cambios y de pull request. Ambos solo abren el panel; no se genera nada hasta que pulsas **Generar recorrido**.
## Qué puede recorrer
| Ámbito | Qué incluye |
| --- | --- |
| Todo sin confirmar | Todo lo que aún no está en un commit: preparado, sin preparar y archivos nuevos |
| Preparados | Solo lo que iría a un commit ahora mismo |
| Sin preparar | Árbol de trabajo y archivos nuevos |
| Esta rama | Todos los commits de la rama que no están en su base |
| Pull request | El cambio tal como existe en GitHub |
**Esta rama** no significa "commits sin subir": es todo lo que la rama añade a su base, se haya subido o no. Por eso, tras hacer commit pero antes de subirlo, esta y el pull request difieren a propósito: una muestra lo que hiciste, el otro lo que ven ahora quienes revisan.
Cada ámbito se guarda por separado, así que cambiar entre ellos nunca pierde nada.
## Elegir el modelo
Los recorridos usan tu modelo pequeño por defecto. Elige otro en **Ajustes → Sesiones → Modelo del recorrido de cambios**, o solo para una revisión desde la cabecera del panel — útil cuando un cambio es lo bastante delicado como para merecer un modelo más potente.
El selector solo ofrece modelos capaces de devolver salida estructurada, porque sin ella el recorrido no se puede montar. Si un modelo se queda corto para el diff, la generación se rechaza con una explicación en vez de recortar la entrada en silencio: un recorrido escrito sobre medio diff suena seguro y se equivoca.
Al reabrir el panel verás el modelo que produjo lo que tienes delante, así que **Regenerar** repite con el mismo salvo que lo cambies.
## Elegir el idioma
Los recorridos se escriben en el idioma de tu interfaz por defecto. El selector de idioma de la cabecera del panel arranca ahí, y puedes elegir cualquier otro idioma al que esté traducido OpenChamber para una sola revisión: una explicación guiada solo sirve en un idioma que leas con soltura.
Solo se traduce la prosa. Los identificadores, las rutas de archivo y los nombres de API se quedan tal cual aparecen en tu código, así que lo que nombra una parada sigue siendo lo que puedes buscar.
Si todavía no hay nada generado en el idioma que elegiste, el panel no se vacía: sigue mostrando el recorrido que tiene y lo dice. Pulsa **Generar recorrido** para obtenerlo en el idioma nuevo.
## Coste y caché
Nada se genera por su cuenta. La generación solo empieza cuando la pides, y regenerar también es manual.
Los resultados se guardan en caché según el contenido exacto del diff. Devuelve el árbol de trabajo a un estado anterior y el recorrido anterior vuelve gratis, sin llamar al modelo. El idioma y el modelo forman parte de esa clave, así que cada combinación se guarda por separado: cuando un diff ya tiene recorrido en dos idiomas, cambiar entre ellos es instantáneo y no cuesta nada.
La generación se ejecuta en el servidor de OpenChamber, no en la pestaña del navegador. Recarga la página o cierra el panel y continúa; al volver, el resultado te espera. Solo **Cancelar** la detiene.
## Ser honesto sobre lo desactualizado
Cada parada está anclada al contenido exacto del código que describe, así que el panel puede avisarte cuando ese código ha cambiado:
- **Pasos desactualizados** — el código que describía una parada cambió o desapareció. El recorrido se sigue mostrando, marcado, para que decidas si regenerar.
- **Sin cubrir** — cambios del diff actual que ninguna parada describe. Ahí entran las ediciones hechas después de generar, los cambios que el recorrido consideró rutinarios y los archivos de bloqueo u otra salida generada, que se dejan fuera del modelo a propósito. Todo aparece al final para que nada desaparezca en silencio.
Regenerar no parchea, reescribe: el recorrido anterior va al modelo como contexto, así que lo que sigue siendo cierto se conserva, y todo se reancla al código actual.
## Notas
- Puedes comentar cualquier línea igual que en la vista de diff; los comentarios se adjuntan al campo del chat.
- Disponible en escritorio y anchos de tableta. No se ofrece en la extensión de VS Code ni en la app móvil.
- Recorrer un pull request requiere una cuenta de GitHub conectada — consulta [Issues y PR de GitHub](/github/).
## Relacionado
- [Git y GitHub](/git/) — el panel de cambios del que lee, y la acción Review que sí juzga el código
- [Issues y PR de GitHub](/github/) — conecta GitHub para recorrer pull requests
- [Proveedores, modelos y agentes](/providers/) — de dónde sale el modelo pequeño
@@ -0,0 +1,71 @@
---
title: Parcours des modifications
description: Lisez un diff dans lordre qui a du sens, pas dans lordre alphabétique.
---
# Parcours des modifications
Un diff est trié par chemin de fichier, ce qui nest presque jamais lordre dans lequel la modification prend son sens. Le parcours le réorganise : les changements liés sont regroupés en **étapes**, chaque étape explique ce que le code fait désormais différemment, et les étapes senchaînent pour que chacune sappuie sur la précédente.
Il explique et ordonne. Il ne juge pas votre code et ne rend aucun verdict — cest le rôle de [Review](/git/).
Ouvrez-le par licône **Parcours** dans la barre de droite, ou par le bouton **Parcours IA** dans les panneaux des modifications et de la pull request. Les deux se contentent douvrir le panneau ; rien nest généré tant que vous nappuyez pas sur **Générer le parcours**.
## Ce quil peut parcourir
| Portée | Ce quelle couvre |
| --- | --- |
| Tout non validé | Tout ce qui nest pas encore dans un commit : indexé, non indexé et nouveaux fichiers |
| Indexées | Uniquement ce qui partirait dans un commit maintenant |
| Non indexées | Copie de travail et nouveaux fichiers |
| Cette branche | Tous les commits de la branche absents de sa base |
| Pull request | La modification telle quelle existe sur GitHub |
**Cette branche** ne veut pas dire « commits non poussés » : cest tout ce que la branche ajoute à sa base, poussé ou non. Après un commit mais avant un push, elle et la pull request diffèrent donc volontairement : lune montre ce que vous avez fait, lautre ce que voient les relecteurs.
Chaque portée est stockée séparément : passer de lune à lautre ne perd jamais rien.
## Choisir le modèle
Les parcours utilisent votre petit modèle par défaut. Choisissez-en un autre dans **Paramètres → Sessions → Modèle du parcours des modifications**, ou pour une seule relecture depuis len-tête du panneau — utile quand une modification est assez risquée pour mériter un modèle plus solide.
Le sélecteur ne propose que des modèles capables de sortie structurée, sans laquelle le parcours ne peut pas être assemblé. Si un modèle est trop petit pour le diff, la génération est refusée avec une explication plutôt que de tronquer lentrée en silence : un parcours écrit sur la moitié dun diff sonne assuré et se trompe.
En rouvrant le panneau, vous voyez le modèle qui a produit ce que vous avez sous les yeux ; **Régénérer** reprend donc le même tant que vous nen changez pas.
## Choisir la langue
Les parcours sont rédigés dans la langue de votre interface par défaut. Le sélecteur de langue dans len-tête du panneau démarre là, et vous pouvez choisir nimporte quelle autre langue dans laquelle OpenChamber est traduit pour une seule relecture : une explication guidée ne sert que dans une langue que vous lisez à laise.
Seule la prose est traduite. Les identifiants, les chemins de fichiers et les noms dAPI restent exactement tels quils apparaissent dans votre code, si bien que ce quune étape nomme reste ce que vous pouvez rechercher.
Si rien na encore été généré dans la langue choisie, le panneau ne se vide pas : il continue dafficher le parcours quil a et le signale. Appuyez sur **Générer le parcours** pour lobtenir dans la nouvelle langue.
## Coût et cache
Rien ne se génère tout seul. La génération ne démarre que sur votre demande, et la régénération est manuelle elle aussi.
Les résultats sont mis en cache daprès le contenu exact du diff. Ramenez la copie de travail à un état antérieur et le parcours dalors revient gratuitement, sans appel au modèle. La langue et le modèle font partie de cette clé, donc chaque combinaison est conservée séparément : dès quun diff a un parcours en deux langues, passer de lune à lautre est instantané et gratuit.
La génération tourne sur le serveur OpenChamber, pas dans votre onglet. Rechargez la page ou fermez le panneau : le travail continue et le résultat vous attend. Seul **Annuler** linterrompt.
## Rester honnête sur lobsolescence
Chaque étape est ancrée au contenu exact du code quelle décrit, ce qui permet au panneau de signaler quand ce code a bougé :
- **Étapes obsolètes** — le code décrit par une étape a changé ou disparu. Le parcours reste affiché, marqué, pour que vous décidiez sil faut régénérer.
- **Non traité** — des modifications du diff actuel quaucune étape ne décrit. On y trouve les changements faits après la génération, ceux que le parcours a jugés courants, ainsi que les fichiers de verrouillage et autres sorties générées, délibérément tenus hors du modèle. Tout est listé à la fin pour que rien ne disparaisse en silence.
Régénérer ne rapièce pas, cela réécrit : le parcours précédent est fourni au modèle comme contexte, ce qui reste vrai est conservé, et tout est réancré sur le code actuel.
## Notes
- Vous pouvez commenter nimporte quelle ligne comme dans la vue diff ; les commentaires se rattachent au champ du chat.
- Disponible sur ordinateur et sur les largeurs de tablette. Non proposé dans lextension VS Code ni dans lapplication mobile.
- Parcourir une pull request exige un compte GitHub connecté — voir [Issues et PR GitHub](/github/).
## Voir aussi
- [Git et GitHub](/git/) — le panneau des modifications quil lit, et laction Review qui, elle, juge le code
- [Issues et PR GitHub](/github/) — connectez GitHub pour parcourir les pull requests
- [Fournisseurs, modèles et agents](/providers/) — doù vient le petit modèle
@@ -0,0 +1,71 @@
---
title: 変更のウォークスルー
description: 差分をアルファベット順ではなく、意味の通る順序で読みます。
---
# 変更のウォークスルー
差分はファイルパス順に並びますが、それは変更の意味が通る順序であることはほとんどありません。ウォークスルーはこれを並べ替えます。関連する編集を**ステップ**にまとめ、各ステップはコードが今までと何が違う動きをするのかを説明し、前のステップの上に次が積み上がる順序で並びます。
説明し、順序を与えるものです。コードを評価したり判定を下したりはしません。それは [Review](/git/) の役割です。
右側のレールの**ウォークスルー**アイコン、または変更パネルとプルリクエストパネルの **AI ウォークスルー**ボタンから開きます。どちらもパネルを開くだけで、**ウォークスルーを生成**を押すまで何も生成されません。
## 対象にできる範囲
| 範囲 | 含まれるもの |
| --- | --- |
| 未コミットすべて | まだコミットされていないもの全部: ステージ済み、未ステージ、新規ファイル |
| ステージ済み | 今コミットすれば入るものだけ |
| 未ステージ | 作業ツリーと新規ファイル |
| このブランチ | ベースに無い、このブランチのすべてのコミット |
| プルリクエスト | GitHub 上に存在する形の変更 |
**このブランチ**は「未プッシュのコミット」ではなく、プッシュの有無に関わらずブランチがベースに追加したすべてです。そのためコミット後・プッシュ前には、これとプルリクエストは意図的に食い違います。前者はあなたが何をしたかを、後者はレビュアーが今何を見ているかを示します。
範囲ごとに別々に保存されるため、切り替えても失われるものはありません。
## モデルの選択
ウォークスルーは既定でスモールモデルを使います。**設定 → セッション → 変更ウォークスルーのモデル**で別のモデルを選べます。一度だけならパネルのヘッダーからも選べます。リスクの高い変更を、より強いモデルに任せたいときに便利です。
選択肢に出るのは構造化出力を返せるモデルだけです。それが無ければウォークスルーは組み立てられません。差分に対してモデルが小さすぎる場合は、入力を黙って切り詰めるのではなく、理由を示して生成を拒否します。差分の半分だけを見て書かれたウォークスルーは、自信ありげに間違えるからです。
パネルを開き直すと、目の前の内容を生成したモデルが表示されます。したがって**再生成**は、変更しない限り同じモデルで繰り返します。
## 言語の選択
ウォークスルーは既定でインターフェースの言語で書かれます。パネル上部の言語セレクターはその言語から始まり、1 回のレビューだけ OpenChamber が翻訳されている他の言語に切り替えることもできます。案内は、無理なく読める言語でなければ意味がありません。
翻訳されるのは文章だけです。識別子、ファイルパス、API 名はコードにあるままなので、ストップが指し示すものはそのまま検索できます。
選んだ言語でまだ何も生成されていない場合、パネルは空にならず、手元にあるウォークスルーを表示したままその旨を伝えます。**ウォークスルーを生成** を押すと、新しい言語で生成されます。
## コストとキャッシュ
勝手に生成されることはありません。生成はあなたが求めたときだけ始まり、再生成も手動です。
結果は差分の正確な内容に対してキャッシュされます。作業ツリーを以前の状態に戻せば、そのときのウォークスルーがモデル呼び出し無しで戻ります。言語とモデルもこのキーの一部なので、組み合わせごとに別々に保存されます。ある差分に 2 つの言語のウォークスルーができれば、その切り替えは即座で無料です。
生成はブラウザのタブではなく OpenChamber サーバー上で動きます。ページを再読み込みしてもパネルを閉じても処理は続き、戻れば結果が待っています。止められるのは**キャンセル**だけです。
## 古くなったことを正直に示す
各ステップは説明対象のコードの正確な内容に紐づいているため、そのコードが動いたことをパネルが伝えられます。
- **古くなったステップ** — ステップが説明していたコードが変わった、あるいは無くなった。ウォークスルーは印を付けたまま表示され、再生成するかはあなたが決めます。
- **未対応** — 現在の差分のうち、どのステップも説明していない変更。生成後に加えた編集、ウォークスルーが定型的と判断した変更、そして意図的にモデルへ渡していないロックファイルなどの生成物が含まれます。すべて末尾に一覧されるので、黙って消えるものはありません。
再生成は継ぎ当てではなく書き直しです。前回のウォークスルーが文脈としてモデルに渡るため、まだ正しい部分は残り、すべてが現在のコードに紐づけ直されます。
## 補足
- 差分ビューと同じように任意の行にコメントできます。コメントはチャットの入力欄に添付されます。
- デスクトップとタブレット幅で利用できます。VS Code 拡張とモバイルアプリでは提供されません。
- プルリクエストのウォークスルーには GitHub アカウントの接続が必要です。[GitHub の Issue と PR](/github/) を参照してください。
## 関連
- [Git と GitHub](/git/) — 読み取り元となる変更パネルと、実際にコードを評価する Review アクション
- [GitHub の Issue と PR](/github/) — プルリクエストを扱うために GitHub を接続する
- [プロバイダー・モデル・エージェント](/providers/) — スモールモデルの出どころ
@@ -0,0 +1,71 @@
---
title: 변경 워크스루
description: diff를 알파벳순이 아니라 이해되는 순서로 읽습니다.
---
# 변경 워크스루
diff는 파일 경로순으로 정렬되지만, 그 순서가 변경을 이해하기 좋은 순서인 경우는 거의 없습니다. 워크스루는 이를 다시 배열합니다. 관련된 수정들을 **단계**로 묶고, 각 단계는 코드가 이제 무엇을 다르게 하는지 설명하며, 앞 단계 위에 다음 단계가 쌓이도록 순서를 정합니다.
설명하고 순서를 부여할 뿐, 코드를 심사하거나 판정을 내리지 않습니다. 그건 [Review](/git/)의 역할입니다.
오른쪽 레일의 **워크스루** 아이콘이나, 변경 패널과 풀 리퀘스트 패널의 **AI 워크스루** 버튼으로 엽니다. 둘 다 패널을 열기만 하며, **워크스루 생성**을 누르기 전에는 아무것도 생성되지 않습니다.
## 다룰 수 있는 범위
| 범위 | 포함되는 것 |
| --- | --- |
| 커밋되지 않은 전체 | 아직 커밋되지 않은 모든 것: 스테이지됨, 스테이지 안 됨, 새 파일 |
| 스테이지됨 | 지금 커밋하면 들어갈 것만 |
| 스테이지 안 됨 | 작업 트리와 새 파일 |
| 이 브랜치 | 베이스에 없는 이 브랜치의 모든 커밋 |
| 풀 리퀘스트 | GitHub에 존재하는 형태의 변경 |
**이 브랜치**는 "푸시하지 않은 커밋"이 아니라, 푸시 여부와 무관하게 브랜치가 베이스에 더한 전부입니다. 그래서 커밋한 뒤 푸시하기 전에는 이것과 풀 리퀘스트가 의도적으로 달라집니다. 하나는 당신이 한 일을, 다른 하나는 리뷰어가 지금 보는 것을 보여줍니다.
범위마다 따로 저장되므로 전환해도 잃는 것이 없습니다.
## 모델 선택
워크스루는 기본적으로 스몰 모델을 사용합니다. **설정 → 세션 → 변경 워크스루 모델**에서 다른 모델을 고르거나, 한 번만 쓸 모델은 패널 헤더에서 고를 수 있습니다. 변경이 충분히 위험해서 더 강한 모델에 맡기고 싶을 때 유용합니다.
선택 목록에는 구조화된 출력을 반환할 수 있는 모델만 나옵니다. 그것 없이는 워크스루를 구성할 수 없기 때문입니다. 모델이 diff에 비해 작으면 입력을 조용히 잘라내는 대신 이유를 설명하며 생성을 거부합니다. diff의 절반만 보고 쓴 워크스루는 자신 있게 틀리기 때문입니다.
패널을 다시 열면 지금 보고 있는 결과를 만든 모델이 표시되므로, 바꾸지 않는 한 **다시 생성**은 같은 모델로 반복합니다.
## 언어 선택
워크스루는 기본적으로 인터페이스 언어로 작성됩니다. 패널 헤더의 언어 선택기가 그 언어에서 시작하며, 한 번의 리뷰에 한해 OpenChamber가 번역된 다른 언어를 고를 수 있습니다. 안내는 편하게 읽을 수 있는 언어여야 쓸모가 있습니다.
번역되는 것은 서술뿐입니다. 식별자, 파일 경로, API 이름은 코드에 있는 그대로 남으므로, 각 지점이 가리키는 이름을 그대로 검색할 수 있습니다.
선택한 언어로 아직 생성된 것이 없으면 패널은 비워지지 않고, 가지고 있는 워크스루를 계속 보여주면서 그 사실을 알립니다. **워크스루 생성**을 누르면 새 언어로 만들어집니다.
## 비용과 캐시
저절로 생성되는 것은 없습니다. 생성은 요청할 때만 시작되고, 재생성도 수동입니다.
결과는 diff의 정확한 내용을 기준으로 캐시됩니다. 작업 트리를 이전 상태로 되돌리면 그때의 워크스루가 모델 호출 없이 그대로 돌아옵니다. 언어와 모델도 이 키의 일부라서 조합마다 따로 보관됩니다. 한 diff에 두 언어의 워크스루가 생기면 그 사이를 오가는 것은 즉시 이루어지고 비용도 들지 않습니다.
생성은 브라우저 탭이 아니라 OpenChamber 서버에서 실행됩니다. 페이지를 새로 고치거나 패널을 닫아도 작업은 계속되고, 돌아오면 결과가 기다립니다. 멈추는 것은 **취소**뿐입니다.
## 오래됨을 정직하게 알리기
각 단계는 설명 대상 코드의 정확한 내용에 묶여 있어서, 그 코드가 변했을 때 패널이 알려줄 수 있습니다.
- **오래된 단계** — 단계가 설명하던 코드가 바뀌었거나 사라졌습니다. 워크스루는 표시된 채로 계속 보이며, 다시 생성할지는 당신이 정합니다.
- **미포함** — 현재 diff에서 어떤 단계도 설명하지 않는 변경입니다. 생성 이후에 한 수정, 워크스루가 일상적이라고 판단한 변경, 그리고 의도적으로 모델에 넘기지 않는 잠금 파일 등 생성물이 여기에 들어갑니다. 모두 끝에 나열되므로 조용히 사라지는 것은 없습니다.
재생성은 기우는 것이 아니라 다시 쓰는 것입니다. 이전 워크스루가 맥락으로 모델에 전달되어 여전히 맞는 부분은 살아남고, 전체가 현재 코드에 다시 묶입니다.
## 참고
- diff 보기와 똑같이 아무 줄에나 코멘트할 수 있고, 코멘트는 채팅 입력창에 첨부됩니다.
- 데스크톱과 태블릿 너비에서 사용할 수 있습니다. VS Code 확장과 모바일 앱에서는 제공되지 않습니다.
- 풀 리퀘스트 워크스루에는 연결된 GitHub 계정이 필요합니다 — [GitHub 이슈와 PR](/github/)을 참고하세요.
## 관련 문서
- [Git과 GitHub](/git/) — 이 기능이 읽어오는 변경 패널, 그리고 실제로 코드를 심사하는 Review 액션
- [GitHub 이슈와 PR](/github/) — 풀 리퀘스트를 다루려면 GitHub를 연결하세요
- [프로바이더, 모델, 에이전트](/providers/) — 스몰 모델이 어디서 오는지
@@ -0,0 +1,71 @@
---
title: Przewodnik po zmianach
description: Czytaj różnice w kolejności, która ma sens, a nie alfabetycznie.
---
# Przewodnik po zmianach
Różnice są posortowane po ścieżkach plików, a to prawie nigdy nie jest kolejność, w której zmiana staje się zrozumiała. Przewodnik układa je na nowo: powiązane edycje trafiają do wspólnych **kroków**, każdy krok tłumaczy, co kod robi teraz inaczej, a kolejność kroków jest taka, by każdy opierał się na poprzednim.
Tłumaczy i porządkuje. Nie ocenia kodu i nie wydaje werdyktów — od tego jest [Review](/git/).
Otwórz go ikoną **Przewodnik** na prawym pasku albo przyciskiem **Przewodnik AI** w panelach zmian i pull requestu. Oba tylko otwierają panel; nic nie powstaje, dopóki nie naciśniesz **Wygeneruj przewodnik**.
## Co można przejrzeć
| Zakres | Co obejmuje |
| --- | --- |
| Wszystko niezatwierdzone | Wszystko, czego nie ma jeszcze w commicie: poczekalnia, drzewo robocze i nowe pliki |
| W poczekalni | Tylko to, co trafiłoby teraz do commita |
| Poza poczekalnią | Drzewo robocze i nowe pliki |
| Ta gałąź | Wszystkie commity gałęzi, których nie ma w jej bazie |
| Pull request | Zmiana w postaci, w jakiej istnieje na GitHubie |
**Ta gałąź** to nie „commity bez pusha", lecz wszystko, co gałąź dokłada do swojej bazy — niezależnie od pusha. Dlatego po commicie, a przed pushem, ona i pull request celowo się różnią: jedno pokazuje, co zrobiłeś, drugie to, co widzą teraz recenzenci.
Każdy zakres jest zapisywany osobno, więc przełączanie między nimi niczego nie gubi.
## Wybór modelu
Przewodniki domyślnie używają małego modelu. Inny wybierzesz w **Ustawienia → Sesje → Model przewodnika po zmianach** albo — na jeden raz — w nagłówku panelu. Przydaje się, gdy zmiana jest na tyle ryzykowna, że zasługuje na mocniejszy model.
Lista pokazuje tylko modele potrafiące zwracać ustrukturyzowaną odpowiedź, bo bez niej przewodnika nie da się złożyć. Jeśli model jest za mały na te różnice, generowanie zostaje odrzucone z wyjaśnieniem, zamiast po cichu obciąć wejście: przewodnik napisany na podstawie połowy różnic brzmi pewnie i się myli.
Po ponownym otwarciu panelu zobaczysz model, który stworzył to, co masz przed sobą, więc **Wygeneruj ponownie** powtórzy tym samym, dopóki go nie zmienisz.
## Wybór języka
Przewodniki są domyślnie pisane w języku Twojego interfejsu. Selektor języka w nagłówku panelu zaczyna właśnie od niego, a dla pojedynczego przeglądu możesz wybrać dowolny inny język, na który przetłumaczono OpenChamber — prowadzone wyjaśnienie ma sens tylko w języku, który czytasz swobodnie.
Tłumaczona jest wyłącznie proza. Identyfikatory, ścieżki plików i nazwy API pozostają dokładnie takie, jakie są w Twoim kodzie, więc to, co nazywa dany przystanek, nadal da się wyszukać.
Jeśli w wybranym języku nic jeszcze nie powstało, panel się nie opróżnia: nadal pokazuje przewodnik, który ma, i informuje o tym. Naciśnij **Wygeneruj przewodnik**, aby otrzymać go w nowym języku.
## Koszt i pamięć podręczna
Nic nie generuje się samo. Generowanie zaczyna się wyłącznie na Twoje żądanie, ponowne również jest ręczne.
Wyniki są zapisywane w pamięci podręcznej według dokładnej treści różnic. Przywróć drzewo robocze do wcześniejszego stanu, a tamten przewodnik wróci za darmo, bez wywołania modelu. Język i model są częścią tego klucza, więc każda kombinacja jest przechowywana osobno: gdy różnice mają już przewodnik w dwóch językach, przełączanie między nimi jest natychmiastowe i nic nie kosztuje.
Generowanie działa na serwerze OpenChamber, nie w karcie przeglądarki. Odśwież stronę albo zamknij panel, a praca trwa dalej; po powrocie wynik czeka. Zatrzymuje ją tylko **Anuluj**.
## Uczciwość wobec nieaktualności
Każdy krok jest przypięty do dokładnej treści kodu, który opisuje, więc panel potrafi powiedzieć, kiedy ten kod się zmienił:
- **Nieaktualne kroki** — kod opisywany przez krok zmienił się albo zniknął. Przewodnik nadal się wyświetla, z oznaczeniem, żebyś sam zdecydował o ponownym wygenerowaniu.
- **Nieuwzględnione** — zmiany w bieżących różnicach, których nie opisuje żaden krok. Trafiają tu edycje zrobione po wygenerowaniu, zmiany uznane przez przewodnik za rutynowe oraz pliki blokad i inne wyniki narzędzi, celowo trzymane poza modelem. Wszystko jest wypisane na końcu, żeby nic nie zniknęło po cichu.
Ponowne wygenerowanie nie łata, lecz pisze od nowa: poprzedni przewodnik trafia do modelu jako kontekst, więc to, co nadal jest prawdą, zostaje, a całość zostaje przypięta do bieżącego kodu.
## Uwagi
- Możesz komentować dowolną linię tak samo jak w widoku różnic; komentarze dołączają się do pola czatu.
- Dostępne na komputerze i przy szerokościach tabletu. Nie ma tego w rozszerzeniu VS Code ani w aplikacji mobilnej.
- Przewodnik po pull requeście wymaga połączonego konta GitHub — zobacz [Issues i PR na GitHubie](/github/).
## Powiązane
- [Git i GitHub](/git/) — panel zmian, z którego to czyta, oraz akcja Review, która faktycznie ocenia kod
- [Issues i PR na GitHubie](/github/) — połącz GitHub, aby przeglądać pull requesty
- [Dostawcy, modele i agenci](/providers/) — skąd bierze się mały model
@@ -0,0 +1,71 @@
---
title: Percurso pelas mudanças
description: Leia um diff na ordem que faz sentido, não em ordem alfabética.
---
# Percurso pelas mudanças
Um diff é ordenado por caminho de arquivo, que quase nunca é a ordem em que a mudança faz sentido. O percurso reorganiza isso: edições relacionadas viram **paradas**, cada parada explica o que o código passa a fazer de diferente, e as paradas seguem uma ordem em que cada uma se apoia na anterior.
Ele explica e ordena. Não julga o seu código nem dá veredictos — isso é papel do [Review](/git/).
Abra pelo ícone **Percurso** na barra direita ou pelo botão **Percurso com IA** nos painéis de mudanças e de pull request. Ambos apenas abrem o painel; nada é gerado até você apertar **Gerar percurso**.
## O que dá para percorrer
| Escopo | O que inclui |
| --- | --- |
| Tudo sem commit | Tudo que ainda não está em commit: no stage, fora do stage e arquivos novos |
| No stage | Só o que iria para um commit agora |
| Fora do stage | Árvore de trabalho e arquivos novos |
| Este branch | Todos os commits do branch que não estão na base |
| Pull request | A mudança como ela existe no GitHub |
**Este branch** não quer dizer "commits sem push": é tudo o que o branch acrescenta à sua base, com push ou sem. Por isso, depois do commit e antes do push, ele e o pull request divergem de propósito: um mostra o que você fez, o outro o que os revisores veem agora.
Cada escopo é guardado separadamente, então alternar entre eles nunca perde nada.
## Escolhendo o modelo
Os percursos usam o seu modelo pequeno por padrão. Escolha outro em **Configurações → Sessões → Modelo do percurso de mudanças**, ou apenas para uma revisão no cabeçalho do painel — útil quando a mudança é arriscada o bastante para merecer um modelo mais forte.
O seletor só oferece modelos capazes de devolver saída estruturada, porque sem ela o percurso não se monta. Se o modelo for pequeno demais para o diff, a geração é recusada com explicação em vez de cortar a entrada em silêncio: um percurso escrito sobre metade de um diff soa seguro e está errado.
Ao reabrir o painel você vê o modelo que produziu o que está na tela, então **Gerar novamente** repete com o mesmo, a menos que você troque.
## Escolhendo o idioma
Os percursos são escritos no idioma da sua interface por padrão. O seletor de idioma no cabeçalho do painel começa por ele, e você pode escolher qualquer outro idioma para o qual o OpenChamber esteja traduzido para uma única revisão — uma explicação guiada só serve num idioma que você lê com folga.
Só a prosa é traduzida. Identificadores, caminhos de arquivo e nomes de API continuam exatamente como aparecem no seu código, então o que uma parada nomeia continua sendo o que você consegue buscar.
Se ainda não houver nada gerado no idioma escolhido, o painel não se esvazia: ele continua mostrando o percurso que tem e avisa. Toque em **Gerar percurso** para obtê-lo no novo idioma.
## Custo e cache
Nada é gerado sozinho. A geração só começa quando você pede, e gerar de novo também é manual.
Os resultados ficam em cache pelo conteúdo exato do diff. Volte a árvore de trabalho para um estado anterior e aquele percurso retorna de graça, sem chamar o modelo. O idioma e o modelo fazem parte dessa chave, então cada combinação é guardada separadamente: quando um diff já tem percurso em dois idiomas, alternar entre eles é instantâneo e não custa nada.
A geração roda no servidor do OpenChamber, não na aba do navegador. Recarregue a página ou feche o painel e o trabalho continua; ao voltar, o resultado está esperando. Só **Cancelar** interrompe.
## Honestidade sobre o que ficou velho
Cada parada está ancorada ao conteúdo exato do código que descreve, então o painel consegue avisar quando esse código mudou:
- **Etapas desatualizadas** — o código que a parada descrevia mudou ou sumiu. O percurso continua aparecendo, marcado, para você decidir se regenera.
- **Sem cobertura** — mudanças do diff atual que nenhuma parada descreve. Entram aí as edições feitas depois de gerar, as mudanças que o percurso considerou rotineiras e os arquivos de lock e outras saídas geradas, mantidas fora do modelo de propósito. Tudo aparece no fim, para que nada suma em silêncio.
Regenerar não remenda, reescreve: o percurso anterior vai ao modelo como contexto, o que ainda é verdade permanece, e tudo é reancorado no código atual.
## Notas
- Você pode comentar qualquer linha como na visão de diff; os comentários se anexam ao campo do chat.
- Disponível em desktop e larguras de tablet. Não é oferecido na extensão do VS Code nem no app móvel.
- Percorrer um pull request exige uma conta do GitHub conectada — veja [Issues e PRs do GitHub](/github/).
## Relacionado
- [Git e GitHub](/git/) — o painel de mudanças de onde isso lê, e a ação Review, que de fato julga o código
- [Issues e PRs do GitHub](/github/) — conecte o GitHub para percorrer pull requests
- [Provedores, modelos e agentes](/providers/) — de onde vem o modelo pequeno
@@ -0,0 +1,71 @@
---
title: Розбір змін
description: Читайте diff у порядку, який має сенс, а не в алфавітному.
---
# Розбір змін
Diff упорядкований за шляхами файлів, а це майже ніколи не той порядок, у якому зміна стає зрозумілою. Розбір перебудовує його: пов'язані правки збираються в **кроки**, кожен крок пояснює, що саме код тепер робить інакше, а самі кроки йдуть так, щоб кожен спирався на попередній.
Він пояснює й упорядковує. Він не оцінює ваш код і не виносить вердиктів — для цього є [Review](/git/).
Відкрийте його іконкою **Розбір** у правому рейлі або кнопкою **AI-розбір** у панелях змін і pull request. Обидві лише відкривають панель; нічого не генерується, доки ви не натиснете **Створити розбір**.
## Що можна розібрати
| Область | Що охоплює |
| --- | --- |
| Усе незакомічене | Усе, що ще не в комітах: індекс, робоче дерево й нові файли |
| В індексі | Лише те, що зараз пішло б у коміт |
| Поза індексом | Робоче дерево й нові файли |
| Ця гілка | Усі коміти гілки, яких немає в базовій |
| Pull request | Зміна в тому вигляді, у якому вона є на GitHub |
**Ця гілка** — це не «незапушені коміти», а все, що гілка додає до базової, незалежно від пушу. Тому після коміту, але до пушу, вона й pull request навмисно розходяться: одне показує, що ви зробили, друге — що зараз бачать рецензенти.
Кожна область зберігається окремо, тож перемикання між ними нічого не втрачає.
## Вибір моделі
За замовчуванням розбір використовує вашу small model. Іншу можна обрати в **Налаштування → Сесії → Модель для розбору змін** або для одного разу в шапці панелі — корисно, коли зміна достатньо ризикована, щоб віддати її сильнішій моделі.
У списку показані лише моделі, які вміють structured output, бо без нього розбір неможливо зібрати. Якщо модель замала для цього diff, генерація відхиляється з поясненням, а не обрізає вхід мовчки: розбір, написаний за половиною diff, звучить упевнено й при цьому помиляється.
Відкривши панель знову, ви побачите модель, яка створила те, що перед вами, тож **Створити заново** повторить тією самою, доки ви її не зміните.
## Вибір мови
За замовчуванням розбір пишеться мовою вашого інтерфейсу. Саме з неї починає селектор мови в шапці панелі, і для окремого розбору можна обрати будь-яку іншу мову, якою перекладено OpenChamber — пояснення має сенс лише тією мовою, яку ви читаєте вільно.
Перекладається лише проза. Ідентифікатори, шляхи до файлів і назви API лишаються точно такими, як у вашому коді, тож те, що називає зупинка, і далі можна знайти пошуком.
Якщо обраною мовою ще нічого не згенеровано, панель не порожніє: вона й далі показує наявний розбір і повідомляє про це. Натисніть **Створити розбір**, щоб отримати його новою мовою.
## Витрати й кеш
Ніщо не генерується саме. Генерація починається лише на ваш запит, і повторна теж робиться вручну.
Результати кешуються за точним вмістом diff. Поверніть робоче дерево до попереднього стану — і попередній розбір повернеться безкоштовно, без звернення до моделі. Мова й модель — частина цього ключа, тож кожна комбінація зберігається окремо: коли для diff уже є розбір двома мовами, перемикання між ними миттєве й безкоштовне.
Генерація виконується на сервері OpenChamber, а не у вкладці браузера. Перезавантажте сторінку чи закрийте панель — робота триває, а результат чекатиме на вас. Зупиняє її лише кнопка **Скасувати**.
## Чесність щодо застарілого
Кожен крок прив'язаний до точного вмісту коду, який він описує, тож панель може сказати, коли той код змінився:
- **Застарілі кроки** — код, який описував крок, змінився або зник. Розбір усе одно показується, з позначкою, щоб ви самі вирішили, чи перегенеровувати.
- **Не описано** — зміни в поточному diff, яких не описує жоден крок. Сюди потрапляють правки, зроблені після генерації, зміни, які розбір визнав рутинними, а також lock-файли й інші згенеровані файли, які свідомо не потрапляють до моделі. Усе це перелічено в кінці, щоб нічого не зникло непомітно.
Повторна генерація не латає, а переписує: попередній розбір іде в модель як контекст, тому точні частини зберігаються, а прив'язки заново перераховуються під поточний код.
## Примітки
- Коментувати можна будь-який рядок, так само як у вигляді diff; коментарі чіпляються до поля вводу в чаті.
- Доступно на десктопі та планшетних ширинах. У розширенні для VS Code і в мобільному застосунку не пропонується.
- Для розбору pull request потрібен під'єднаний акаунт GitHub — див. [Issues та PR на GitHub](/github/).
## Пов'язане
- [Git і GitHub](/git/) — панель змін, з якої це читається, і дія Review, яка таки оцінює код
- [Issues та PR на GitHub](/github/) — під'єднайте GitHub, щоб розбирати pull request
- [Провайдери, моделі та агенти](/providers/) — звідки береться small model
@@ -0,0 +1,71 @@
---
title: Changes Walkthrough
description: Read a diff in the order it makes sense, not in alphabetical order.
---
# Changes Walkthrough
A diff is sorted by file path, which is almost never the order in which the change makes sense. The walkthrough reorders it: related edits are grouped into **stops**, each stop explains what the code now does differently, and the stops are ordered so each one builds on the last.
It explains and orders. It does not judge your code or hand out verdicts — that is what [Review](/git/) is for.
Open it from the **Walkthrough** icon in the right rail, or from the **AI walkthrough** button in the Changes and Pull Request panels. Both just open the panel; nothing is generated until you press **Generate walkthrough**.
## What it can review
| Scope | What it covers |
| --- | --- |
| All uncommitted | Everything not yet committed: staged, unstaged, and new files |
| Staged | Only what would go into a commit right now |
| Unstaged | Working tree and new files |
| This branch | Every commit on this branch that is not on its base |
| Pull request | The change as it exists on GitHub |
**This branch** is not "unpushed commits" — it is everything the branch adds to its base, pushed or not. So after committing but before pushing, it and the pull request deliberately differ: one shows what you did, the other what reviewers currently see.
Each scope is stored separately, so switching between them never loses anything.
## Choosing the model
Walkthroughs use your small model by default. Pick a different one in **Settings → Sessions → Changes Walkthrough Model**, or for a single review in the panel header — useful when a change is risky enough to deserve a stronger model.
The picker only offers models that can return structured output, because the walkthrough cannot be assembled without it. If a model is too small for the diff, generation is refused with an explanation rather than silently truncating the input: a walkthrough written against half a diff reads as confident and is wrong.
Reopening a panel shows the model that produced what you are looking at, so **Regenerate** repeats with the same one unless you change it.
## Choosing the language
Walkthroughs are written in your interface language by default. The language picker in the panel header starts there, and you can pick any other language OpenChamber is translated into for a single review — a guided explanation is only useful in a language you read comfortably.
Only the prose is translated. Identifiers, file paths, and API names stay exactly as they appear in your code, so what a stop names is still what you can search for.
When nothing has been generated yet in the language you picked, the panel keeps showing the walkthrough it has and says so, rather than emptying itself. Press **Generate walkthrough** to get one in the new language.
## Cost and caching
Nothing generates on its own. Generation only ever starts when you ask, and regeneration is manual too.
Results are cached against the exact content of the diff. Return the working tree to an earlier state and the earlier walkthrough comes back for free, no model call. Language and model are both part of that key, so each combination is kept separately: once a diff has a walkthrough in two languages, switching between them is instant and costs nothing.
Generation runs on the OpenChamber server, not in your browser tab. Reload the page or close the panel and it keeps going; come back and the result is waiting. Pressing **Cancel** is the only thing that stops it.
## Staying honest about staleness
Every stop is anchored to the exact content of the code it describes, so the panel can tell you when that code has moved on:
- **Outdated steps** — the code a stop described has changed or is gone. The walkthrough still shows, marked, so you can decide whether to regenerate.
- **Not covered** — changes in the current diff that no stop describes. That includes edits made after generating, changes the walkthrough judged routine, and lockfiles and other generated files, which are deliberately kept out of the model's input. They are all listed at the end of the stream so nothing disappears silently.
Regenerating re-authors rather than patches: the previous walkthrough goes to the model as context so accurate parts survive, and everything is re-anchored to the current code.
## Notes
- Comment on any line in the walkthrough exactly as in the diff view; comments attach to the chat composer.
- Available on desktop and tablet widths. Not offered in the VS Code extension or the mobile app.
- A pull request review needs a connected GitHub account — see [GitHub Issues & PRs](/github/).
## Related
- [Git & GitHub](/git/) — the Changes panel this reads from, and the Review action that does judge code
- [GitHub Issues & PRs](/github/) — connect GitHub to review pull requests
- [Providers, Models & Agents](/providers/) — where the small model comes from
@@ -0,0 +1,71 @@
---
title: 改动导读
description: 按讲得通的顺序读差异,而不是按字母顺序。
---
# 改动导读
差异按文件路径排序,而这几乎从来不是让改动讲得通的顺序。导读会重新编排:相关的修改被归入一个个**步骤**,每个步骤说明代码现在有什么不同的行为,步骤的先后顺序保证后一步建立在前一步之上。
它负责解释和排序,不评判你的代码,也不给结论——那是 [Review](/git/) 的职责。
从右侧栏的**导读**图标打开,或在改动面板和拉取请求面板中点击 **AI 导读**按钮。两者都只是打开面板;在你按下**生成导读**之前不会生成任何内容。
## 可以导读的范围
| 范围 | 包含内容 |
| --- | --- |
| 全部未提交 | 尚未进入提交的一切:已暂存、未暂存和新文件 |
| 已暂存 | 只包含此刻提交会带上的内容 |
| 未暂存 | 工作区和新文件 |
| 当前分支 | 该分支上基线分支所没有的全部提交 |
| 拉取请求 | GitHub 上现有形态的改动 |
**当前分支**不是“未推送的提交”,而是该分支相对基线新增的全部内容,无论是否推送。因此在提交之后、推送之前,它和拉取请求会有意不同:一个显示你做了什么,另一个显示评审者当前看到什么。
各个范围分别保存,来回切换不会丢失任何内容。
## 选择模型
导读默认使用你的小模型。可在**设置 → 会话 → 改动导读模型**中更换,或只为这一次在面板标题栏中选择——当改动的风险足以交给更强的模型时很有用。
选择列表只提供能返回结构化输出的模型,因为没有它就无法组装导读。如果模型对这份差异来说太小,生成会带着说明被拒绝,而不是悄悄截断输入:只看了半份差异写出的导读听起来笃定,实际却是错的。
重新打开面板时会显示生成当前内容的那个模型,所以只要你不更换,**重新生成**就会沿用它。
## 选择语言
导读默认使用你的界面语言书写。面板顶部的语言选择器从该语言开始,你也可以只为这一次导读改用 OpenChamber 已翻译的任意其他语言——讲解只有用你读起来轻松的语言才有价值。
只有叙述文字会被翻译。标识符、文件路径和 API 名称保持代码中的原样,因此每个停靠点提到的名字仍然可以直接搜索。
如果所选语言还没有生成过内容,面板不会清空:它会继续显示已有的导读并说明这一点。按 **生成导读** 即可得到新语言的版本。
## 开销与缓存
不会自行生成。生成只在你请求时开始,重新生成同样需要手动触发。
结果按差异的确切内容缓存。把工作区恢复到先前状态,当时的导读就会免费回来,不会调用模型。语言和模型都属于这个键的一部分,因此每种组合各自保存:一个差异一旦有了两种语言的导读,在它们之间切换就是即时且免费的。
生成运行在 OpenChamber 服务器上,而不是浏览器标签页里。刷新页面或关闭面板,工作仍在继续;回来时结果已在等你。只有**取消**能停止它。
## 对过时保持诚实
每个步骤都锚定在它所描述代码的确切内容上,因此面板能告诉你那段代码何时发生了变化:
- **过时的步骤**——步骤所描述的代码已改变或不存在。导读仍会显示并加以标记,由你决定是否重新生成。
- **未涵盖**——当前差异中没有任何步骤描述的改动。其中包括生成之后所做的修改、导读判定为常规的改动,以及锁文件等特意不送入模型的生成产物。它们都列在末尾,不会有内容悄无声息地消失。
重新生成不是打补丁,而是重写:上一版导读会作为上下文交给模型,仍然成立的部分得以保留,整体则重新锚定到当前代码。
## 说明
- 可以像在差异视图中一样对任意行发表评论,评论会附加到聊天输入框。
- 在桌面和平板宽度下可用。VS Code 扩展和移动应用中不提供。
- 导读拉取请求需要已连接的 GitHub 账户,参见 [GitHub Issue 与 PR](/github/)。
## 相关
- [Git 与 GitHub](/git/)——它读取的改动面板,以及确实会评判代码的 Review 操作
- [GitHub Issue 与 PR](/github/)——连接 GitHub 以导读拉取请求
- [提供方、模型与代理](/providers/)——小模型从何而来