Merge branch 'main' into reproduce/issue-1720
Signed-off-by: Mayuresh K <23300+mskadu@users.noreply.github.com>
This commit is contained in:
@@ -203,13 +203,14 @@ other language mirrors the English files under a locale folder.
|
||||
| Korean | `ko/` | `ko` |
|
||||
| Polish | `pl/` | `pl` |
|
||||
| French | `fr/` | `fr` |
|
||||
| German | `de/` | `de` |
|
||||
| Japanese | `ja/` | `ja` |
|
||||
|
||||
> [!IMPORTANT]
|
||||
> The **content folder** uses the lowercase locale key (`zh-cn`, `pt-br`); the
|
||||
> **sidebar `translations`** key uses the BCP-47 language tag (`zh-CN`, `pt-BR`).
|
||||
> They look similar but are not interchangeable — Starlight resolves them with
|
||||
> different rules. Everything else (`uk`, `es`, `ko`, `pl`, `fr`, `ja`, `en`) is identical
|
||||
> different rules. Everything else (`uk`, `es`, `ko`, `pl`, `fr`, `de`, `ja`, `en`) is identical
|
||||
> in both columns.
|
||||
|
||||
This locale set is mirrored in the website at
|
||||
@@ -269,6 +270,7 @@ to each section and item in `sidebar.config.json`:
|
||||
"ko": "여기서 시작",
|
||||
"pl": "Zacznij tutaj",
|
||||
"fr": "Commencer ici",
|
||||
"de": "Hier starten",
|
||||
"ja": "ここから開始"
|
||||
},
|
||||
"items": [
|
||||
@@ -283,6 +285,7 @@ to each section and item in `sidebar.config.json`:
|
||||
"ko": "설치",
|
||||
"pl": "Instalacja",
|
||||
"fr": "Installation",
|
||||
"de": "Installation",
|
||||
"ja": "インストール"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
---
|
||||
title: Agent Control Tool
|
||||
description: Let an agent manage OpenChamber sessions, worktrees, and scheduled tasks from chat.
|
||||
---
|
||||
|
||||
# Agent Control Tool
|
||||
|
||||
Use the `openchamber` agent tool to manage work in the app directly from chat. It is enabled by default when OpenChamber runs its own local OpenCode server; there is no separate tool to install or shell command to run.
|
||||
|
||||
## What you can ask
|
||||
|
||||
Ask the agent in plain language. For example:
|
||||
|
||||
- "Create a new OpenChamber session in this project, use the `openai/gpt-5.6-sol` model, and send it this prompt: review the authentication flow."
|
||||
- "Create a new OpenChamber session for this task in a separate worktree, and ask it to add tests for the login flow."
|
||||
- "Use OpenChamber to list my 10 most recent sessions and include their current status."
|
||||
- "Create an OpenChamber scheduled task named Weekday review that sends this prompt at 09:00 every weekday: review changes since the last run."
|
||||
- "Run the OpenChamber scheduled task named Weekday review now."
|
||||
- "Check the OpenChamber session named Authentication review and show me its latest assistant response."
|
||||
|
||||
The tool can list projects and model preferences, create and follow up on sessions, fork a session, create isolated worktree sessions, and manage scheduled tasks. Sessions started this way appear in OpenChamber like any other session, so you can open them and continue the work yourself.
|
||||
|
||||
## Keep in mind
|
||||
|
||||
- New session prompts return immediately by default. Follow the session in OpenChamber, or ask the agent to check it later.
|
||||
- A separate worktree is only created when you ask for one. Uncommitted changes from your current worktree are not copied into it.
|
||||
- The tool cannot delete sessions or worktrees, register project paths, run arbitrary shell commands, or call arbitrary URLs.
|
||||
|
||||
## Turn the tool on or off
|
||||
|
||||
Open **Settings → General → OpenCode CLI**, change **Agent control tool**, then select **Save + Reload**. The setting applies after the managed OpenCode server restarts.
|
||||
|
||||
The tool is not available when OpenChamber connects to an external OpenCode server through `OPENCODE_HOST` or skip-start, or inside the VS Code extension. Desktop and web installations that use OpenChamber's managed OpenCode server support it automatically.
|
||||
|
||||
## Related
|
||||
|
||||
- [Scheduled Tasks](/scheduled-tasks/)
|
||||
- [Worktree Sessions](/worktrees/)
|
||||
- [Session Goals](/session-goals/)
|
||||
@@ -0,0 +1,68 @@
|
||||
---
|
||||
title: Connect a Device
|
||||
description: Pair your phone, desktop, or another browser with your OpenChamber server using a one-time QR code.
|
||||
---
|
||||
|
||||
# Connect a Device
|
||||
|
||||
Pair another device — the mobile app, the desktop app, or a browser on another machine — with your OpenChamber server by scanning a one-time QR code. This is the recommended way to connect devices; there are no ports to open and no addresses to type.
|
||||
|
||||
## Pair a device
|
||||
|
||||
1. On the machine running OpenChamber, open **Settings → Remote Instances → Connect to this server** and press **Add a device**.
|
||||
2. Give the device a name (e.g. *My iPhone*) so you can recognize it later.
|
||||
3. Pick where you'll use the device:
|
||||
- **This computer only** — for apps running on this same machine
|
||||
- **Home network only** — connects directly over your Wi-Fi; does not work away from this network
|
||||
- **Anywhere** — works at home and away; away traffic goes through the [Private Relay](/private-relay/), an end-to-end encrypted tunnel with no setup needed
|
||||
4. Press **Create QR code**.
|
||||
5. On the other device, scan the code:
|
||||
- **mobile app** — tap **Scan QR code** on the connect screen (or in the instances list)
|
||||
- **desktop app** — copy the connection link instead and paste it in **Settings → Remote Instances → Other OpenChamber servers → Import Link**
|
||||
|
||||
The dialog closes on its own as soon as the device connects, and the device appears in the list with a live status. That's it — you're paired.
|
||||
|
||||
## How pairing stays safe
|
||||
|
||||
- **The QR code is single-use.** It stops working the moment a device redeems it, and it expires on its own if never used.
|
||||
- **Each device gets its own token.** Scanning a code never exposes your UI password, and one device's token can't be used to impersonate another.
|
||||
- **You stay in control.** Every paired device is listed with its name, platform, and connection status — revoke any of them at any time.
|
||||
- **Away-from-home traffic is end-to-end encrypted.** With **Anywhere**, traffic outside your network rides the [Private Relay](/private-relay/), which cannot read what passes through it.
|
||||
|
||||
## Manage paired devices
|
||||
|
||||
**Settings → Remote Instances → Connect to this server** lists every device that can reach this server, with a green dot when it's online and whether it's connected over the local network or the relay.
|
||||
|
||||
- **Revoke** cuts a device off immediately. Pair it again with a new QR code if you change your mind.
|
||||
- **Clear revoked** tidies up the list.
|
||||
|
||||
The same physical device keeps one entry even if it signs in again later — you won't collect duplicates.
|
||||
|
||||
## Connect from the command line
|
||||
|
||||
If the server runs headless (no UI open), create a connection link from a terminal on that machine.
|
||||
|
||||
For a device on the same network:
|
||||
|
||||
```bash
|
||||
openchamber connect-url --port 3000 --qr
|
||||
```
|
||||
|
||||
For a device that should connect from **anywhere** — the equivalent of picking **Anywhere** in the dialog:
|
||||
|
||||
```bash
|
||||
openchamber connect-url --relay --qr
|
||||
```
|
||||
|
||||
A `--relay` link carries both routes, just like the dialog: the device connects directly over your local network when it can reach the server, and falls back to the [Private Relay](/private-relay/) when away. The relay starts on its own: a running instance picks the link up within a minute, a stopped one on its next launch.
|
||||
|
||||
> The direct route only works if the server actually listens on your network. By default OpenChamber listens on the machine itself only — start it with `--lan` to make it reachable over Wi-Fi. The command warns you (`[LAN_UNREACHABLE]`) when the link's direct route won't be usable from other devices; a `--relay` link still works then, just always through the relay.
|
||||
|
||||
The printed link and QR code work exactly like the ones from the settings dialog — single-use, expiring, revocable.
|
||||
|
||||
## Related
|
||||
|
||||
- [Private Relay](/private-relay/) — how "Anywhere" connections work and what the relay can and cannot see
|
||||
- [Mobile Apps](/mobile/) — install the iOS or Android app
|
||||
- [Remote Instances](/remote-instances/) — connect the desktop app to servers over SSH or links
|
||||
- [Remote access](/troubleshooting/remote-access/) — when a device won't connect
|
||||
@@ -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 war’s — 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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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.
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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,85 @@
|
||||
---
|
||||
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.
|
||||
|
||||
## Wie ein Stop markiert ist
|
||||
|
||||
Jeder Stop benennt sein Thema, erklärt es in ein bis zwei Sätzen und zeigt danach genau den Code, den er beschreibt. Manche Stops tragen eine kleine Markierung neben dem Titel:
|
||||
|
||||
| Markierung | Bedeutung |
|
||||
| --- | --- |
|
||||
| **Kernänderung** | Dieser Stop trägt die eigentliche Änderung oder den größten Teil ihres Risikos. Lesen Sie ihn genau und zuerst. |
|
||||
| **Kontext** | Eine unterstützende Änderung, damit der Rest verständlich bleibt. Kann überflogen werden. |
|
||||
| *(ohne Markierung)* | Ein gewöhnlicher Schritt in der Lesereihenfolge. |
|
||||
|
||||
Die Markierung sagt, **wo Sie Ihre Aufmerksamkeit investieren sollten**, und nichts über die Qualität des Codes. Ein Stop wird nie markiert, weil darin etwas Falsches gefunden wurde — das Walkthrough meldet keine Funde, keine Schweregrade und keine Urteile. Wenn Code bewertet werden soll, ist das die Aktion **Review** in [Git & GitHub](/git/).
|
||||
|
||||
Die einzigen Markierungen, die tatsächlich auf ein Problem hinweisen, sind **Veraltet** und **Nicht abgedeckt** — und beide betreffen das Veralten des Walkthroughs selbst, nicht Ihren Code. Siehe unten.
|
||||
|
||||
## 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,39 @@
|
||||
---
|
||||
title: Herramienta de control para agentes
|
||||
description: Permite que un agente gestione sesiones, worktrees y tareas programadas de OpenChamber desde el chat.
|
||||
---
|
||||
|
||||
# Herramienta de control para agentes
|
||||
|
||||
Usa la herramienta de agente `openchamber` para gestionar el trabajo en la aplicación directamente desde el chat. Está activada de forma predeterminada cuando OpenChamber ejecuta su propio servidor OpenCode local; no necesitas instalar otra herramienta ni ejecutar un comando de shell.
|
||||
|
||||
## Qué puedes pedir
|
||||
|
||||
Pídeselo al agente con lenguaje natural. Por ejemplo:
|
||||
|
||||
- «Crea una sesión nueva de OpenChamber en este proyecto, usa el modelo `openai/gpt-5.6-sol` y envíale este prompt: revisa el flujo de autenticación».
|
||||
- «Crea una sesión nueva de OpenChamber para esta tarea en un worktree separado y pídele que añada pruebas para el flujo de inicio de sesión».
|
||||
- «Usa OpenChamber para mostrar mis 10 sesiones más recientes e incluye su estado actual».
|
||||
- «Crea en OpenChamber una tarea programada llamada Revisión laborable que envíe este prompt a las 09:00 de cada día laborable: revisa los cambios desde la última ejecución».
|
||||
- «Ejecuta ahora la tarea programada de OpenChamber llamada Revisión laborable».
|
||||
- «Comprueba la sesión de OpenChamber llamada Revisión de autenticación y muestra la última respuesta del asistente».
|
||||
|
||||
La herramienta puede listar proyectos y preferencias de modelos, crear y continuar sesiones, bifurcar una sesión, crear sesiones en worktrees aislados y gestionar tareas programadas. Las sesiones iniciadas así aparecen en OpenChamber como cualquier otra, por lo que puedes abrirlas y continuar el trabajo personalmente.
|
||||
|
||||
## Ten en cuenta
|
||||
|
||||
- Los prompts de sesiones nuevas regresan de inmediato de forma predeterminada. Sigue la sesión en OpenChamber o pide al agente que la compruebe más tarde.
|
||||
- Solo se crea un worktree separado cuando lo pides. Los cambios sin confirmar de tu worktree actual no se copian.
|
||||
- La herramienta no puede eliminar sesiones ni worktrees, registrar rutas de proyectos, ejecutar comandos de shell arbitrarios ni acceder a URL arbitrarias.
|
||||
|
||||
## Activar o desactivar la herramienta
|
||||
|
||||
Abre **Ajustes → General → OpenCode CLI**, cambia **Herramienta de control para agentes** y selecciona **Save + Reload**. El ajuste se aplica cuando se reinicia el servidor OpenCode gestionado.
|
||||
|
||||
La herramienta no está disponible cuando OpenChamber se conecta a un servidor OpenCode externo mediante `OPENCODE_HOST` o skip-start, ni dentro de la extensión de VS Code. Las instalaciones web y de escritorio que usan el servidor OpenCode gestionado por OpenChamber la admiten automáticamente.
|
||||
|
||||
## Relacionado
|
||||
|
||||
- [Tareas programadas](/es/scheduled-tasks/)
|
||||
- [Sesiones de worktree](/es/worktrees/)
|
||||
- [Objetivos de sesión](/es/session-goals/)
|
||||
@@ -0,0 +1,68 @@
|
||||
---
|
||||
title: Conectar un dispositivo
|
||||
description: Vincula tu teléfono, escritorio u otro navegador con tu servidor de OpenChamber usando un código QR de un solo uso.
|
||||
---
|
||||
|
||||
# Conectar un dispositivo
|
||||
|
||||
Vincula otro dispositivo —la app móvil, la app de escritorio o un navegador en otra máquina— con tu servidor de OpenChamber escaneando un código QR de un solo uso. Es la forma recomendada de conectar dispositivos: no hay puertos que abrir ni direcciones que escribir.
|
||||
|
||||
## Vincula un dispositivo
|
||||
|
||||
1. En la máquina donde se ejecuta OpenChamber, abre **Settings → Remote Instances → Conectarse a este servidor** y pulsa **Añadir un dispositivo**.
|
||||
2. Dale un nombre al dispositivo (p. ej. *Mi iPhone*) para reconocerlo más adelante.
|
||||
3. Elige dónde usarás el dispositivo:
|
||||
- **Solo este equipo** — para aplicaciones en esta misma máquina
|
||||
- **Solo red doméstica** — se conecta directamente por tu Wi-Fi; no funciona fuera de esta red
|
||||
- **En cualquier lugar** — funciona en casa y fuera; fuera de casa el tráfico pasa por el [Private Relay](/es/private-relay/), un túnel cifrado de extremo a extremo sin configuración
|
||||
4. Pulsa **Crear código QR**.
|
||||
5. En el otro dispositivo, escanea el código:
|
||||
- **app móvil** — toca **Escanear código QR** en la pantalla de conexión (o en la lista de instancias)
|
||||
- **app de escritorio** — copia el enlace de conexión y pégalo en **Settings → Remote Instances → Otros servidores de OpenChamber → Importar enlace**
|
||||
|
||||
El diálogo se cierra solo en cuanto el dispositivo se conecta, y el dispositivo aparece en la lista con su estado en vivo. Eso es todo: ya están vinculados.
|
||||
|
||||
## Por qué la vinculación es segura
|
||||
|
||||
- **El código QR es de un solo uso.** Deja de funcionar en el momento en que un dispositivo lo canjea, y caduca por sí solo si nunca se usa.
|
||||
- **Cada dispositivo recibe su propio token.** Escanear un código nunca expone tu contraseña de UI, y el token de un dispositivo no puede usarse para suplantar a otro.
|
||||
- **Tú mantienes el control.** Cada dispositivo vinculado aparece en la lista con su nombre, plataforma y estado de conexión; puedes revocar cualquiera en cualquier momento.
|
||||
- **El tráfico fuera de casa está cifrado de extremo a extremo.** Con **En cualquier lugar**, el tráfico fuera de tu red viaja por el [Private Relay](/es/private-relay/), que no puede leer lo que pasa por él.
|
||||
|
||||
## Gestiona los dispositivos vinculados
|
||||
|
||||
**Settings → Remote Instances → Conectarse a este servidor** lista todos los dispositivos que pueden alcanzar este servidor, con un punto verde cuando están en línea y si están conectados por la red local o por el relay.
|
||||
|
||||
- **Revocar** corta el acceso de un dispositivo de inmediato. Vuelve a vincularlo con un nuevo código QR si cambias de opinión.
|
||||
- **Borrar revocados** limpia la lista.
|
||||
|
||||
El mismo dispositivo físico mantiene una sola entrada aunque vuelva a iniciar sesión más tarde: no acumularás duplicados.
|
||||
|
||||
## Conecta desde la línea de comandos
|
||||
|
||||
Si el servidor funciona en modo headless (sin UI abierta), crea un enlace de conexión desde una terminal en esa máquina.
|
||||
|
||||
Para un dispositivo en la misma red:
|
||||
|
||||
```bash
|
||||
openchamber connect-url --port 3000 --qr
|
||||
```
|
||||
|
||||
Para un dispositivo que debe conectarse desde **cualquier lugar** —el equivalente a elegir **En cualquier lugar** en el diálogo—:
|
||||
|
||||
```bash
|
||||
openchamber connect-url --relay --qr
|
||||
```
|
||||
|
||||
Un enlace `--relay` lleva ambas rutas, igual que el diálogo: el dispositivo se conecta directamente por tu red local cuando puede alcanzar el servidor, y recurre al [Private Relay](/es/private-relay/) cuando está fuera. El relay arranca por sí solo: una instancia en marcha recoge el enlace en menos de un minuto, y una detenida lo hace en su próximo arranque.
|
||||
|
||||
> La ruta directa solo funciona si el servidor realmente escucha en tu red. De forma predeterminada, OpenChamber solo escucha en la propia máquina; inícialo con `--lan` para que sea accesible por Wi-Fi. El comando te avisa (`[LAN_UNREACHABLE]`) cuando la ruta directa del enlace no será utilizable desde otros dispositivos; un enlace `--relay` sigue funcionando en ese caso, solo que siempre a través del relay.
|
||||
|
||||
El enlace y el código QR impresos funcionan exactamente igual que los del diálogo de ajustes: de un solo uso, con caducidad y revocables.
|
||||
|
||||
## Relacionado
|
||||
|
||||
- [Private Relay](/es/private-relay/) — cómo funcionan las conexiones «En cualquier lugar» y qué puede ver el relay y qué no
|
||||
- [Apps móviles](/es/mobile/) — instala la app de iOS o Android
|
||||
- [Instancias remotas](/es/remote-instances/) — conecta la app de escritorio a servidores por SSH o con enlaces
|
||||
- [Acceso remoto](/es/troubleshooting/remote-access/) — cuando un dispositivo no se conecta
|
||||
@@ -1,31 +1,43 @@
|
||||
---
|
||||
title: PWA y acceso móvil
|
||||
description: Instala OpenChamber como una app y úsalo desde tu teléfono.
|
||||
title: Apps móviles y PWA
|
||||
description: Instala la app de OpenChamber en iOS o Android y conéctala a tu servidor.
|
||||
---
|
||||
|
||||
# PWA y acceso móvil
|
||||
# Apps móviles y PWA
|
||||
|
||||
La app web de OpenChamber se instala como una app de teléfono (una PWA), así que puedes tenerla en tu pantalla de inicio y usarla a pantalla completa. Combínala con un [túnel](/es/tunnels/) y podrás echar un vistazo a una sesión desde cualquier lugar.
|
||||
OpenChamber tiene apps nativas para iPhone y Android, para que puedas seguir sesiones, responder a los agentes y gestionar el trabajo desde tu teléfono, en casa por Wi-Fi o desde cualquier lugar a través del [Private Relay](/es/private-relay/).
|
||||
|
||||
## Instálala
|
||||
## Instala la app
|
||||
|
||||
OpenChamber usa la instalación integrada de tu navegador, así que no hay una descarga aparte:
|
||||
- **iPhone/iPad** — únete a la [beta de TestFlight](https://testflight.apple.com/join/5ek6GU1E)
|
||||
- **Android** — descarga el APK de la [última release](https://github.com/openchamber/openchamber/releases/latest)
|
||||
|
||||
- **navegador de escritorio** — usa la opción **Install** en la barra de direcciones
|
||||
## Conéctala a tu servidor
|
||||
|
||||
1. En la computadora donde se ejecuta OpenChamber, abre **Settings → Remote Instances → Conectarse a este servidor** y pulsa **Añadir un dispositivo**.
|
||||
2. Elige **En cualquier lugar** (o **Solo red doméstica** si solo usarás el teléfono en casa) y pulsa **Crear código QR**.
|
||||
3. En la app móvil, toca **Escanear código QR** y apunta la cámara al código.
|
||||
|
||||
La app se conecta y recuerda el servidor. El código QR es de un solo uso y cada dispositivo recibe su propio token revocable; consulta [Conectar un dispositivo](/es/connect-devices/) para saber por qué la vinculación es segura.
|
||||
|
||||
Puedes vincular la app con varios servidores y cambiar entre ellos desde la lista de instancias; la app muestra para cada uno si está accesible y si estás conectado por la red local o por el relay.
|
||||
|
||||
## PWA (instalación desde el navegador)
|
||||
|
||||
¿Prefieres prescindir de las tiendas de apps? La app web se instala directamente desde el navegador:
|
||||
|
||||
- **navegador de escritorio** — usa la opción **Instalar** de la barra de direcciones
|
||||
- **iPhone/iPad (Safari)** — Compartir → **Añadir a pantalla de inicio**
|
||||
- **Android (Chrome)** — menú → **Instalar app** / **Añadir a pantalla de inicio**
|
||||
|
||||
Una vez instalada, se abre en su propia ventana sin los elementos del navegador.
|
||||
|
||||
## Accede desde tu teléfono
|
||||
|
||||
Para abrir OpenChamber en tu teléfono cuando el servidor se ejecuta en tu computadora, inicia un [túnel](/es/tunnels/) y abre el enlace (o escanea el código QR) en el teléfono. Usa una [contraseña de UI](/es/security/) fuerte siempre que lo hagas.
|
||||
Para alcanzar la PWA desde fuera de tu red necesitarás un [túnel](/es/tunnels/) y una [contraseña de UI](/es/security/) fuerte; las apps nativas se encargan de esto por ti mediante el relay.
|
||||
|
||||
## Ajustes móviles
|
||||
|
||||
En **Settings → OpenChamber**, unas pocas opciones ajustan la experiencia móvil e instalada: el nombre con el que se instala la app, la orientación de la pantalla y cómo se comporta el teclado en pantalla.
|
||||
En **Settings → OpenChamber**, unas cuantas opciones ajustan la experiencia móvil e instalada: el nombre de la app instalada, la orientación de la pantalla y el comportamiento del teclado en pantalla.
|
||||
|
||||
## Relacionado
|
||||
|
||||
- [Túneles](/es/tunnels/) — accede a tu instancia desde otra red
|
||||
- [Conectar un dispositivo](/es/connect-devices/) — vinculación, códigos QR de un solo uso y gestión de dispositivos
|
||||
- [Private Relay](/es/private-relay/) — cómo funciona el acceso «En cualquier lugar»
|
||||
- [Seguridad](/es/security/) — protege la UI antes de exponerla
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
---
|
||||
title: Private Relay
|
||||
description: Alcanza tu servidor de OpenChamber desde cualquier lugar a través de un relay cifrado de extremo a extremo, sin puertos, sin túneles y sin configuración.
|
||||
---
|
||||
|
||||
# Private Relay
|
||||
|
||||
El Private Relay de OpenChamber permite que tus dispositivos vinculados alcancen tu servidor desde cualquier lugar —datos móviles, la red de una cafetería, otra ciudad— sin abrir puertos, montar un túnel ni exponer tu máquina a internet. Se gestiona solo: basta con vincular un dispositivo con **En cualquier lugar** en [Conectar un dispositivo](/es/connect-devices/).
|
||||
|
||||
## Cómo funciona
|
||||
|
||||
Tu servidor abre una conexión saliente hacia la infraestructura de relay de OpenChamber y la mantiene activa. Cuando uno de tus dispositivos está fuera de tu red, también se conecta al relay, y el relay pasa el tráfico cifrado entre ambos. Nada en tu máquina escucha conexiones entrantes desde internet.
|
||||
|
||||
Cuando hay una conexión directa disponible —vuelves a casa y estás en la misma Wi-Fi—, tus dispositivos la prefieren y se saltan el relay por completo.
|
||||
|
||||
## Qué puede ver el relay y qué no
|
||||
|
||||
El relay es un mensajero ciego, no un intermediario:
|
||||
|
||||
- **Cifrado de extremo a extremo.** Tu dispositivo y tu servidor acuerdan las claves de cifrado directamente entre ellos. El relay reenvía tráfico sellado para el que no tiene claves: no puede leer tu código, tus prompts ni tus contraseñas.
|
||||
- **Solo tus dispositivos pueden conectarse.** Un dispositivo debe tener un token emitido por *tu* servidor mediante la [vinculación de un solo uso](/es/connect-devices/). Nadie puede descubrir tu servidor a través del relay ni conectarse a él sin un token que tú hayas creado, y puedes revocar cualquier token en cualquier momento.
|
||||
- **Los enlaces de vinculación son de un solo uso.** Un código QR de vinculación funciona exactamente una vez y caduca si no se usa, así que un enlace antiguo filtrado no vale nada.
|
||||
- **No se comparte nada hasta que tú lo decides.** El relay permanece apagado hasta que lo actives o vincules un dispositivo a través de él, y puedes desactivarlo en cualquier momento; los dispositivos conectados a través de él se desconectan de inmediato.
|
||||
|
||||
## Cuándo funciona
|
||||
|
||||
El relay gestiona su propio ciclo de vida: no hay ningún interruptor que recordar.
|
||||
|
||||
- **Se inicia bajo demanda.** Crear una vinculación **En cualquier lugar** enciende el relay, y este vuelve tras un reinicio mientras algún dispositivo vinculado siga dependiendo de él.
|
||||
- **Se detiene solo.** Cuando ningún dispositivo ni vinculación pendiente usa el relay —por ejemplo, después de revocar el último dispositivo vinculado por relay—, se apaga automáticamente.
|
||||
|
||||
**Settings → Remote Instances → OpenChamber Relay** muestra el estado en vivo (Conectado, Reconectando, …) y cuántos dispositivos están conectados a través de él en ese momento. Allí también puedes pulsar **Desactivar** para cortar el acceso por relay de inmediato; los dispositivos de tu red local no se ven afectados.
|
||||
|
||||
## ¿Relay o túnel?
|
||||
|
||||
- Usa el **relay** para alcanzar tu propio servidor desde tus propios dispositivos vinculados. No requiere configuración y nada se expone públicamente.
|
||||
- Usa un [túnel](/es/tunnels/) cuando necesites una **URL pública** normal, por ejemplo para abrir OpenChamber en un navegador corriente en una máquina que no puedes vincular, o para compartir acceso detrás de una [contraseña de UI](/es/security/).
|
||||
|
||||
## Relacionado
|
||||
|
||||
- [Conectar un dispositivo](/es/connect-devices/) — vincula un dispositivo con un código QR de un solo uso
|
||||
- [Apps móviles](/es/mobile/) — instala la app de iOS o Android
|
||||
- [Seguridad](/es/security/) — contraseñas, passkeys y nociones básicas de exposición
|
||||
- [Acceso remoto](/es/troubleshooting/remote-access/) — cuando una conexión no se completa
|
||||
@@ -24,19 +24,25 @@ OpenChamber recorre los pasos —comprobar la conexión, configurar el remoto, i
|
||||
|
||||
Tú decides si guardar las contraseñas de SSH y de UI o introducirlas cada vez. Si la conexión se cae, OpenChamber informa qué paso falló para que puedas arreglarlo; consulta [Acceso remoto](/es/troubleshooting/remote-access/).
|
||||
|
||||
## Enlaces de conexión directa
|
||||
## Enlaces de conexión
|
||||
|
||||
Si una máquina remota ya ejecuta OpenChamber, crea allí un enlace de conexión e impórtalo en **Settings → Remote Instances → Server links**:
|
||||
Si una máquina remota ya ejecuta OpenChamber, la forma más fácil de conectar la app de escritorio es un enlace de vinculación. En la UI del servidor remoto, abre **Settings → Remote Instances → Conectarse a este servidor → Añadir un dispositivo**, crea un enlace e impórtalo en tu escritorio en **Settings → Remote Instances → Otros servidores de OpenChamber → Importar enlace**. Consulta [Conectar un dispositivo](/es/connect-devices/) para el flujo completo.
|
||||
|
||||
Un enlace creado con **En cualquier lugar** lleva tanto una dirección directa como una ruta por el [Private Relay](/es/private-relay/): el escritorio se conecta directamente cuando puede alcanzar el servidor (misma red) y recurre al relay cifrado de extremo a extremo cuando estás fuera. El estado junto a cada servidor guardado muestra qué ruta se está usando.
|
||||
|
||||
También puedes crear un enlace desde una terminal en la máquina remota:
|
||||
|
||||
```bash
|
||||
openchamber connect-url --port 3000 --server http://your-host:3000 --qr
|
||||
```
|
||||
|
||||
`connect-url` inicia el servidor primero si no hay nada ejecutándose en ese puerto. Añade `--api-only` para un servidor headless, `--lan` para escuchar en la LAN al iniciar, `--ui-password` para proteger el acceso del navegador y `--name` para etiquetar la conexión guardada.
|
||||
`connect-url` inicia el servidor primero si no hay nada ejecutándose en ese puerto. Añade `--api-only` para un servidor headless, `--lan` para escuchar en la LAN al iniciar, `--ui-password` para proteger el acceso del navegador y `--name` para etiquetar la conexión guardada. Añade `--relay` para un enlace que también funciona fuera de la red local: el dispositivo prefiere la conexión directa cuando el servidor está accesible y recurre al [Private Relay](/es/private-relay/) en caso contrario; la instancia levanta el relay por sí sola.
|
||||
|
||||
El enlace generado contiene un token de cliente para apps de OpenChamber. Ese token es independiente de la contraseña de la UI del navegador y sobrevive a reinicios hasta que lo revoques o elimines.
|
||||
El enlace generado contiene un secreto de vinculación de un solo uso. Una vez importado, el dispositivo conserva su propio token de cliente —independiente de la contraseña de la UI del navegador— que sobrevive a los reinicios del servidor hasta que lo revoques en el servidor emisor.
|
||||
|
||||
## Relacionado
|
||||
|
||||
- [Conectar un dispositivo](/es/connect-devices/) — enlaces de vinculación, códigos QR y gestión de dispositivos
|
||||
- [Private Relay](/es/private-relay/) — cómo funcionan las conexiones «En cualquier lugar»
|
||||
- [OpenCode Server](/es/opencode-server/) — conéctate a un servidor remoto en la web o en VS Code
|
||||
- [Acceso remoto](/es/troubleshooting/remote-access/) — cuando una conexión no se completa
|
||||
|
||||
@@ -20,6 +20,8 @@ Una tarea programada ejecuta un prompt por ti según una programación; por ejem
|
||||
|
||||
Puedes ejecutar cualquier tarea de inmediato con **run now** para comprobar que hace lo que esperas.
|
||||
|
||||
Marca **Ejecutar como objetivo** para que la ejecución persiga su prompt hasta completarlo en lugar de detenerse tras una respuesta — consulta [Objetivos de sesión](/session-goals/).
|
||||
|
||||
## Cómo se ve el éxito
|
||||
|
||||
Después de una ejecución, la tarea muestra cuándo se ejecutó por última vez, si tuvo éxito y un enlace a la sesión que creó. Si una ejecución falla, el error también se muestra ahí.
|
||||
|
||||
@@ -25,13 +25,20 @@ Una vez definida una contraseña, puedes añadir passkeys (Face ID, Touch ID, un
|
||||
|
||||
Las passkeys están vinculadas a la contraseña actual. Si cambias o eliminas la contraseña, las passkeys guardadas se borran y tendrás que añadirlas de nuevo.
|
||||
|
||||
## Tokens de dispositivo
|
||||
|
||||
Los dispositivos vinculados mediante [Conectar un dispositivo](/es/connect-devices/) se autentican con sus propios tokens por dispositivo, no con la contraseña de UI. Los enlaces de vinculación son de un solo uso y caducan si no se usan; cada dispositivo vinculado aparece en **Settings → Remote Instances → Conectarse a este servidor**, donde puedes revocar cualquiera en cualquier momento. Las conexiones fuera de casa pasan por el [Private Relay](/es/private-relay/), que está cifrado de extremo a extremo y no puede leer tu tráfico.
|
||||
|
||||
## Antes de exponerlo
|
||||
|
||||
- De forma predeterminada, OpenChamber solo escucha en tu propia máquina (`127.0.0.1`). Hace falta un cambio deliberado para escuchar más ampliamente, y deberías definir una contraseña primero.
|
||||
- Prefiere un [túnel](/es/tunnels/) o una red privada (como una VPN) antes que abrir un puerto a internet.
|
||||
- Para tus propios dispositivos, prefiere la [vinculación](/es/connect-devices/) con el [Private Relay](/es/private-relay/): no se expone nada públicamente.
|
||||
- Si necesitas una URL pública, prefiere un [túnel](/es/tunnels/) o una red privada (como una VPN) antes que abrir un puerto a internet.
|
||||
- Si pones OpenChamber detrás de tu propio servidor HTTPS, consulta [Proxy inverso](/es/reverse-proxy/).
|
||||
|
||||
## Relacionado
|
||||
|
||||
- [Túneles](/es/tunnels/) — la forma recomendada de acceder a una instancia de forma remota
|
||||
- [Conectar un dispositivo](/es/connect-devices/) — vinculación de un solo uso y tokens por dispositivo
|
||||
- [Private Relay](/es/private-relay/) — acceso cifrado de extremo a extremo desde cualquier lugar
|
||||
- [Túneles](/es/tunnels/) — expón una URL pública cuando la necesites
|
||||
- [Proxy inverso](/es/reverse-proxy/) — ejecuta OpenChamber detrás de tu propio servidor
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
---
|
||||
title: Objetivos de sesión
|
||||
description: Convierte un prompt en un objetivo hacia el que el agente trabaja automáticamente.
|
||||
---
|
||||
|
||||
# Objetivos de sesión
|
||||
|
||||
Un objetivo convierte un solo prompt en una línea de meta. En lugar de empujar al agente con "continúa" tras cada respuesta, defines el objetivo una vez — y OpenChamber mantiene la sesión trabajando hacia él automáticamente, comprobando el progreso con un auditor independiente después de cada turno. Sigue funcionando incluso mientras no estás.
|
||||
|
||||
## Iniciar un objetivo
|
||||
|
||||
1. Pulsa el botón de diana en el compositor. Se ilumina — el modo objetivo está armado.
|
||||
2. Escribe tu prompt y envíalo. Ese mensaje se convierte en el objetivo.
|
||||
|
||||
Funciona igual en una sesión existente y en un borrador de sesión nueva: arma la diana, escribe el primer mensaje, envía — la nueva sesión arranca con el objetivo ya activo.
|
||||
|
||||
### Más formas de iniciar un objetivo
|
||||
|
||||
- **Desde una respuesta del agente**: en el diálogo "Start new session from this answer", marca **Ejecutar como objetivo** — la respuesta se entrega como una tarea que la nueva sesión ejecuta hasta completarla (combínalo con **Create worktree** para una ejecución aislada).
|
||||
- **Desde un plan**: al implementar un plan guardado en una sesión o worktree nuevos, marca **Ejecutar como objetivo** en el diálogo. El objetivo lleva el contenido del plan, así que el auditor juzga el progreso contra el plan real.
|
||||
- **Según un horario**: marca **Ejecutar como objetivo** en una [tarea programada](/scheduled-tasks/) para que las ejecuciones recurrentes persigan su prompt hasta completarlo.
|
||||
|
||||
## Escribe un objetivo autocontenido
|
||||
|
||||
El auditor de progreso solo ve tu objetivo y la última respuesta del agente — no el historial del chat. Redacta el mensaje-objetivo de forma que alguien sin el contexto de la conversación entienda cómo es el estado final.
|
||||
|
||||
- Bien: "Añade tests para el módulo de exportación y haz que toda la suite pase."
|
||||
- No tan bien: "Arréglalo" o "Continúa con esa idea."
|
||||
|
||||
Para pequeños ajustes contextuales no necesitas un objetivo — envía un mensaje normal.
|
||||
|
||||
## Cómo funciona
|
||||
|
||||
Cuando el agente se detiene y la sesión queda en silencio un momento, OpenChamber:
|
||||
|
||||
1. Pide a un modelo pequeño y barato que audite el último turno contra el objetivo: ¿seguir, hecho o atascado?
|
||||
2. Si el veredicto es "seguir", envía un prompt de continuación y el agente retoma el trabajo.
|
||||
3. Si el objetivo se ha logrado de forma verificable, el objetivo se completa y recibes una notificación.
|
||||
4. Si el agente está realmente atascado (necesita tu intervención), el objetivo se detiene como bloqueado — pero solo después de que el auditor lo diga tres veces seguidas, así que un tropiezo puntual nunca termina el objetivo.
|
||||
|
||||
También hay topes de seguridad: un presupuesto de tokens opcional, un límite de continuaciones automáticas y una parada ante errores de turno. Si el contexto de la sesión se compacta a mitad del trabajo, el objetivo simplemente continúa — chocar con la ventana de contexto es prueba de que el trabajo no había terminado.
|
||||
|
||||
### Detener y reanudar
|
||||
|
||||
- El **botón de detener** aborta el turno en curso y pausa el objetivo — tu "para" explícito siempre gana al bucle.
|
||||
- **Pausar** en la franja del objetivo hace lo mismo desde el otro lado: pausa el objetivo y detiene el turno en curso.
|
||||
- Mientras está pausado, chatea con normalidad — el bucle no interfiere.
|
||||
- **Reanudar** rearma el bucle: en una sesión inactiva el empujón de continuación sale de inmediato; si el agente está trabajando, el bucle se reengancha en su siguiente pausa.
|
||||
|
||||
## Observar y gestionar
|
||||
|
||||
- La franja sobre el compositor muestra la última nota de progreso, el estado y el uso de tokens, con un botón de pausar/reanudar integrado. Cuando el agente se ha detenido y el objetivo sigue activo, la franja muestra un **Evaluando…** giratorio — es la ventana de silencio y la auditoría en marcha.
|
||||
- El botón de diana permanece encendido mientras el objetivo corre (azul), se vuelve verde al completarse y rojo cuando está bloqueado o sin presupuesto. Púlsalo para abrir el diálogo del objetivo: edita el objetivo o el presupuesto, o elimínalo. Un objetivo completado es de solo lectura — elimínalo y arma uno nuevo.
|
||||
- En la barra lateral de sesiones aparece una pequeña diana junto a la fecha de la sesión, coloreada según el estado del objetivo.
|
||||
|
||||
## Notificaciones
|
||||
|
||||
Mientras un objetivo está activo, las notificaciones por turno de "agente listo" se suprimen — solo harían eco de las continuaciones del propio bucle. Cuando el objetivo se resuelve (completado, bloqueado o presupuesto alcanzado) recibes una única notificación final, en el escritorio y como push móvil. Obedece el mismo ajuste de "notificar al completar"; las solicitudes de permisos, las preguntas y las notificaciones de error siguen funcionando con normalidad.
|
||||
|
||||
## Presupuesto de tokens
|
||||
|
||||
En **Ajustes → Chat → Objetivo** puedes definir un presupuesto de tokens predeterminado para nuevos objetivos. Al alcanzarlo, el objetivo se detiene como "presupuesto alcanzado" en lugar de gastar más — puedes subir el presupuesto y reanudar desde el diálogo del objetivo.
|
||||
|
||||
## Ten en cuenta
|
||||
|
||||
- El bucle del objetivo corre en el servidor de OpenChamber, no en tu pestaña del navegador. Cierra la pestaña, bloquea el teléfono — el agente sigue trabajando y recibirás una notificación cuando el objetivo termine. El servidor (app de escritorio o proceso `openchamber`) debe seguir en marcha.
|
||||
- Los objetivos usan el proveedor y modelo de tu propia sesión, incluidas las llamadas del auditor — nada sale hacia proveedores que no uses ya.
|
||||
- Un objetivo por sesión a la vez.
|
||||
|
||||
## Relacionado
|
||||
|
||||
- [Tareas programadas](/scheduled-tasks/) — ejecutar un prompt según un horario; activa allí "Ejecutar como objetivo" para que la ejecución programada persiga su prompt hasta completarlo
|
||||
- [Notificaciones](/notifications/) — cómo te enteras de un objetivo terminado
|
||||
@@ -12,6 +12,15 @@ Cuando no puedes alcanzar OpenChamber desde tu teléfono u otra máquina, la sol
|
||||
- abre `http://localhost:3000` en la misma computadora primero; si eso falla, no es un problema remoto; consulta [Conexión de OpenCode](/es/troubleshooting/opencode-connection/)
|
||||
- confirma que el servidor está en funcionamiento con `openchamber status`
|
||||
|
||||
## Un dispositivo vinculado no se conecta
|
||||
|
||||
- el código QR / enlace de vinculación es **de un solo uso**; si ya se escaneó (o caducó), crea uno nuevo desde **Añadir un dispositivo**
|
||||
- si el dispositivo se vinculó con **Solo red doméstica**, no puede conectarse desde fuera de esa red; vuelve a vincularlo con **En cualquier lugar**
|
||||
- para la vinculación **En cualquier lugar**, comprueba **Settings → Remote Instances → OpenChamber Relay** en el servidor: debería decir **Conectado**; si no, desactívalo y vuelve a activarlo
|
||||
- si un dispositivo fue **revocado**, su token desaparece para siempre; vincúlalo de nuevo con un código QR nuevo
|
||||
|
||||
Consulta [Conectar un dispositivo](/es/connect-devices/) y [Private Relay](/es/private-relay/) para saber cómo funcionan estas conexiones.
|
||||
|
||||
## El enlace del túnel no funciona
|
||||
|
||||
- ejecuta `openchamber tunnel status --all`
|
||||
@@ -34,5 +43,5 @@ Si pones OpenChamber detrás de un proxy inverso y carga de forma extraña o no
|
||||
|
||||
## Relacionado
|
||||
|
||||
- [Túneles](/es/tunnels/) · [Instancias remotas](/es/remote-instances/) · [Proxy inverso](/es/reverse-proxy/)
|
||||
- [Conectar un dispositivo](/es/connect-devices/) · [Private Relay](/es/private-relay/) · [Túneles](/es/tunnels/) · [Instancias remotas](/es/remote-instances/) · [Proxy inverso](/es/reverse-proxy/)
|
||||
- [Seguridad](/es/security/) — protege la UI antes de exponerla
|
||||
|
||||
@@ -5,7 +5,9 @@ description: Expón OpenChamber de forma segura para acceso remoto y móvil.
|
||||
|
||||
# Túneles
|
||||
|
||||
Un túnel es un enlace público a tu OpenChamber, para que puedas acceder a él desde tu teléfono u otra red. Usa `openchamber tunnel` para crear uno para una instancia en marcha.
|
||||
Un túnel es un enlace público a tu OpenChamber, para que puedas acceder a él desde un navegador corriente en otra red. Usa `openchamber tunnel` para crear uno para una instancia en marcha.
|
||||
|
||||
> Conectar tus **propios dispositivos** (la app móvil, otro escritorio) normalmente no necesita un túnel: [vincúlalos](/es/connect-devices/) y deja que el [Private Relay](/es/private-relay/), cifrado de extremo a extremo, se encargue del acceso fuera de casa sin configuración.
|
||||
|
||||
## Requisitos previos
|
||||
|
||||
@@ -111,6 +113,7 @@ openchamber tunnel stop --port 3000
|
||||
|
||||
## Relacionado
|
||||
|
||||
- [Conectar un dispositivo](/es/connect-devices/) — vincula tus propios dispositivos sin una URL pública
|
||||
- [Seguridad](/es/security/) — protege la interfaz antes de exponerla
|
||||
- [Túneles de escritorio](/es/desktop-tunnels/) — configuración de túneles en la app de escritorio sin iniciar desde CLI
|
||||
- [PWA y acceso móvil](/es/mobile/) — accede a OpenChamber desde tu teléfono
|
||||
|
||||
@@ -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,39 @@
|
||||
---
|
||||
title: Outil de contrôle pour les agents
|
||||
description: Permettez à un agent de gérer les sessions, worktrees et tâches planifiées OpenChamber depuis le chat.
|
||||
---
|
||||
|
||||
# Outil de contrôle pour les agents
|
||||
|
||||
Utilisez l’outil d’agent `openchamber` pour gérer le travail dans l’application directement depuis le chat. Il est activé par défaut quand OpenChamber exécute son propre serveur OpenCode local ; aucun outil séparé ni aucune commande shell ne sont nécessaires.
|
||||
|
||||
## Ce que vous pouvez demander
|
||||
|
||||
Demandez-le à l’agent en langage naturel. Par exemple :
|
||||
|
||||
- « Crée une nouvelle session OpenChamber dans ce projet, utilise le modèle `openai/gpt-5.6-sol` et envoie-lui ce prompt : vérifie le flux d’authentification. »
|
||||
- « Crée une nouvelle session OpenChamber pour cette tâche dans un worktree séparé et demande-lui d’ajouter des tests au flux de connexion. »
|
||||
- « Utilise OpenChamber pour afficher mes 10 sessions les plus récentes avec leur état actuel. »
|
||||
- « Crée dans OpenChamber une tâche planifiée nommée Revue des jours ouvrés qui envoie ce prompt à 09:00 chaque jour ouvré : vérifie les changements depuis la dernière exécution. »
|
||||
- « Exécute maintenant la tâche planifiée OpenChamber nommée Revue des jours ouvrés. »
|
||||
- « Vérifie la session OpenChamber nommée Revue de l’authentification et affiche la dernière réponse de l’assistant. »
|
||||
|
||||
L’outil peut répertorier les projets et les préférences de modèles, créer et poursuivre des sessions, bifurquer une session, créer des sessions dans des worktrees isolés et gérer les tâches planifiées. Les sessions ainsi lancées apparaissent dans OpenChamber comme les autres : vous pouvez les ouvrir et poursuivre le travail vous-même.
|
||||
|
||||
## À retenir
|
||||
|
||||
- Les prompts de nouvelles sessions rendent la main immédiatement par défaut. Suivez la session dans OpenChamber ou demandez à l’agent de la vérifier plus tard.
|
||||
- Un worktree séparé n’est créé que si vous le demandez. Les modifications non commitées du worktree actuel n’y sont pas copiées.
|
||||
- L’outil ne peut pas supprimer de sessions ou de worktrees, enregistrer des chemins de projets, exécuter des commandes shell arbitraires ni appeler des URL arbitraires.
|
||||
|
||||
## Activer ou désactiver l’outil
|
||||
|
||||
Ouvrez **Paramètres → Général → OpenCode CLI**, modifiez **Outil de contrôle pour les agents**, puis sélectionnez **Save + Reload**. Le réglage s’applique après le redémarrage du serveur OpenCode géré.
|
||||
|
||||
L’outil n’est pas disponible quand OpenChamber se connecte à un serveur OpenCode externe avec `OPENCODE_HOST` ou skip-start, ni dans l’extension VS Code. Les installations desktop et web utilisant le serveur OpenCode géré par OpenChamber le prennent automatiquement en charge.
|
||||
|
||||
## Pages associées
|
||||
|
||||
- [Tâches planifiées](/fr/scheduled-tasks/)
|
||||
- [Sessions worktree](/fr/worktrees/)
|
||||
- [Objectifs de session](/fr/session-goals/)
|
||||
@@ -0,0 +1,68 @@
|
||||
---
|
||||
title: Connecter un appareil
|
||||
description: Associez votre téléphone, votre desktop ou un autre navigateur à votre serveur OpenChamber avec un QR code à usage unique.
|
||||
---
|
||||
|
||||
# Connecter un appareil
|
||||
|
||||
Associez un autre appareil — l’application mobile, l’application desktop ou un navigateur sur une autre machine — à votre serveur OpenChamber en scannant un QR code à usage unique. C’est la méthode recommandée pour connecter des appareils : aucun port à ouvrir, aucune adresse à taper.
|
||||
|
||||
## Associer un appareil
|
||||
|
||||
1. Sur la machine qui exécute OpenChamber, ouvrez **Paramètres → Instances distantes → Se connecter à ce serveur** et pressez **Ajouter un appareil**.
|
||||
2. Donnez un nom à l’appareil (par ex. *Mon iPhone*) pour le reconnaître plus tard.
|
||||
3. Choisissez où vous utiliserez l’appareil :
|
||||
- **Cet ordinateur uniquement** — pour les applications sur cette même machine
|
||||
- **Réseau domestique uniquement** — connexion directe via votre Wi-Fi ; ne fonctionne pas hors de ce réseau
|
||||
- **Partout** — fonctionne à la maison et en déplacement ; en déplacement, le trafic passe par le [Relais privé](/private-relay/), un tunnel chiffré de bout en bout sans aucune configuration
|
||||
4. Pressez **Créer le code QR**.
|
||||
5. Sur l’autre appareil, scannez le code :
|
||||
- **application mobile** — touchez **Scanner le code QR** sur l’écran de connexion (ou dans la liste des instances)
|
||||
- **application desktop** — copiez plutôt le lien de connexion et collez-le dans **Paramètres → Instances distantes → Autres serveurs OpenChamber → Importer le lien**
|
||||
|
||||
Le dialogue se ferme tout seul dès que l’appareil se connecte, et l’appareil apparaît dans la liste avec un statut en direct. C’est tout — vous êtes associé.
|
||||
|
||||
## Pourquoi l’association reste sûre
|
||||
|
||||
- **Le QR code est à usage unique.** Il cesse de fonctionner dès qu’un appareil l’utilise, et il expire de lui-même s’il n’est jamais utilisé.
|
||||
- **Chaque appareil reçoit son propre token.** Scanner un code n’expose jamais votre mot de passe UI, et le token d’un appareil ne peut pas servir à en usurper un autre.
|
||||
- **Vous gardez le contrôle.** Chaque appareil associé est listé avec son nom, sa plateforme et son état de connexion — révoquez n’importe lequel à tout moment.
|
||||
- **Le trafic hors du domicile est chiffré de bout en bout.** Avec **Partout**, le trafic en dehors de votre réseau passe par le [Relais privé](/private-relay/), qui ne peut pas lire ce qui le traverse.
|
||||
|
||||
## Gérer les appareils associés
|
||||
|
||||
**Paramètres → Instances distantes → Se connecter à ce serveur** liste chaque appareil pouvant joindre ce serveur, avec un point vert quand il est en ligne et l’indication d’une connexion via le réseau local ou le relais.
|
||||
|
||||
- **Révoquer** coupe un appareil immédiatement. Associez-le à nouveau avec un nouveau QR code si vous changez d’avis.
|
||||
- **Effacer les révocations** nettoie la liste.
|
||||
|
||||
Le même appareil physique garde une seule entrée même s’il se reconnecte plus tard — vous n’accumulerez pas de doublons.
|
||||
|
||||
## Se connecter depuis la ligne de commande
|
||||
|
||||
Si le serveur tourne en headless (aucune UI ouverte), créez un lien de connexion depuis un terminal sur cette machine.
|
||||
|
||||
Pour un appareil sur le même réseau :
|
||||
|
||||
```bash
|
||||
openchamber connect-url --port 3000 --qr
|
||||
```
|
||||
|
||||
Pour un appareil qui doit se connecter depuis **n’importe où** — l’équivalent du choix **Partout** dans le dialogue :
|
||||
|
||||
```bash
|
||||
openchamber connect-url --relay --qr
|
||||
```
|
||||
|
||||
Un lien `--relay` contient les deux routes, exactement comme le dialogue : l’appareil se connecte directement via votre réseau local quand il peut joindre le serveur, et bascule sur le [Relais privé](/private-relay/) en déplacement. Le relais démarre tout seul : une instance en cours d’exécution prend le lien en compte en moins d’une minute, une instance arrêtée au prochain lancement.
|
||||
|
||||
> La route directe ne fonctionne que si le serveur écoute réellement sur votre réseau. Par défaut, OpenChamber n’écoute que sur la machine elle-même — démarrez-le avec `--lan` pour le rendre joignable en Wi-Fi. La commande vous prévient (`[LAN_UNREACHABLE]`) quand la route directe du lien ne sera pas utilisable depuis d’autres appareils ; un lien `--relay` fonctionne quand même dans ce cas, simplement toujours via le relais.
|
||||
|
||||
Le lien et le QR code affichés fonctionnent exactement comme ceux du dialogue des paramètres — à usage unique, avec expiration, révocables.
|
||||
|
||||
## Pages liées
|
||||
|
||||
- [Relais privé](/private-relay/) — comment fonctionnent les connexions « Partout » et ce que le relais peut ou ne peut pas voir
|
||||
- [Applications mobiles](/mobile/) — installer l’application iOS ou Android
|
||||
- [Instances distantes](/remote-instances/) — connecter l’application desktop à des serveurs via SSH ou des liens
|
||||
- [Accès distant](/troubleshooting/remote-access/) — quand un appareil ne se connecte pas
|
||||
@@ -1,31 +1,43 @@
|
||||
---
|
||||
title: PWA et accès mobile
|
||||
description: Installez OpenChamber comme application et utilisez-le depuis votre téléphone.
|
||||
title: Applications mobiles et PWA
|
||||
description: Installez l’application OpenChamber sur iOS ou Android et connectez-la à votre serveur.
|
||||
---
|
||||
|
||||
# PWA et accès mobile
|
||||
# Applications mobiles et PWA
|
||||
|
||||
L’application web OpenChamber s’installe comme une application de téléphone (une PWA), pour rester sur votre écran d’accueil et s’utiliser en plein écran. Associez-la à un [tunnel](/tunnels/) et vous pouvez vérifier une session depuis n’importe où.
|
||||
OpenChamber a des applications natives pour iPhone et Android : suivez les sessions, répondez aux agents et gérez votre travail depuis votre téléphone — à la maison en Wi-Fi ou depuis n’importe où via le [Relais privé](/private-relay/).
|
||||
|
||||
## L’installer
|
||||
## Installer l’application
|
||||
|
||||
OpenChamber utilise l’installation intégrée de votre navigateur, donc il n’y a pas de téléchargement séparé :
|
||||
- **iPhone/iPad** — rejoignez la [bêta TestFlight](https://testflight.apple.com/join/5ek6GU1E)
|
||||
- **Android** — téléchargez l’APK depuis la [dernière release](https://github.com/openchamber/openchamber/releases/latest)
|
||||
|
||||
## La connecter à votre serveur
|
||||
|
||||
1. Sur l’ordinateur qui exécute OpenChamber, ouvrez **Paramètres → Instances distantes → Se connecter à ce serveur** et pressez **Ajouter un appareil**.
|
||||
2. Choisissez **Partout** (ou **Réseau domestique uniquement** si vous n’utiliserez le téléphone qu’à la maison) et pressez **Créer le code QR**.
|
||||
3. Dans l’application mobile, touchez **Scanner le code QR** et pointez la caméra dessus.
|
||||
|
||||
L’application se connecte et mémorise le serveur. Le QR code est à usage unique et chaque appareil reçoit son propre token révocable — voir [Connecter un appareil](/connect-devices/) pour comprendre pourquoi l’association reste sûre.
|
||||
|
||||
Vous pouvez associer l’application à plusieurs serveurs et basculer entre eux depuis la liste des instances ; l’application indique pour chacun s’il est joignable et si vous êtes connecté via le réseau local ou le relais.
|
||||
|
||||
## PWA (installation depuis le navigateur)
|
||||
|
||||
Vous préférez éviter les app stores ? L’application web s’installe directement depuis le navigateur :
|
||||
|
||||
- **navigateur desktop** — utilisez l’option **Installer** dans la barre d’adresse
|
||||
- **iPhone/iPad (Safari)** — Partager → **Ajouter à l’écran d’accueil**
|
||||
- **iPhone/iPad (Safari)** — Partager → **Sur l’écran d’accueil**
|
||||
- **Android (Chrome)** — menu → **Installer l’application** / **Ajouter à l’écran d’accueil**
|
||||
|
||||
Une fois installée, elle s’ouvre dans sa propre fenêtre sans chrome de navigateur.
|
||||
Pour joindre la PWA depuis l’extérieur de votre réseau, il vous faudra un [tunnel](/tunnels/) et un [mot de passe UI](/security/) solide — les applications natives s’en occupent pour vous via le relais.
|
||||
|
||||
## Y accéder depuis votre téléphone
|
||||
## Paramètres mobiles
|
||||
|
||||
Pour ouvrir OpenChamber sur votre téléphone quand le serveur tourne sur votre ordinateur, démarrez un [tunnel](/tunnels/) et ouvrez le lien (ou scannez le QR code) sur le téléphone. Utilisez toujours un [mot de passe UI](/security/) robuste lorsque vous faites cela.
|
||||
|
||||
## Paramètres mobile
|
||||
|
||||
Sous **Paramètres → OpenChamber**, quelques options ajustent l’expérience mobile et installée — le nom installé de l’application, l’orientation de l’écran et le comportement du clavier à l’écran.
|
||||
Dans **Paramètres → OpenChamber**, quelques options ajustent l’expérience mobile et installée — le nom de l’application installée, l’orientation de l’écran et le comportement du clavier à l’écran.
|
||||
|
||||
## Pages liées
|
||||
|
||||
- [Tunnels](/tunnels/) — joindre votre instance depuis un autre réseau
|
||||
- [Connecter un appareil](/connect-devices/) — association, QR codes à usage unique et gestion des appareils
|
||||
- [Relais privé](/private-relay/) — comment fonctionne l’accès « Partout »
|
||||
- [Sécurité](/security/) — protéger l’UI avant de l’exposer
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
---
|
||||
title: Relais privé
|
||||
description: Joignez votre serveur OpenChamber depuis n’importe où via un relais chiffré de bout en bout — sans ports, sans tunnels, sans configuration.
|
||||
---
|
||||
|
||||
# Relais privé
|
||||
|
||||
Le relais privé OpenChamber (Private Relay) permet à vos appareils associés de joindre votre serveur depuis n’importe où — réseau cellulaire, Wi-Fi de café, autre ville — sans ouvrir de ports, sans configurer de tunnel et sans exposer votre machine à internet. Il se gère tout seul : associer un appareil avec **Partout** dans [Connecter un appareil](/connect-devices/) suffit.
|
||||
|
||||
## Comment ça marche
|
||||
|
||||
Votre serveur ouvre une connexion sortante vers l’infrastructure de relais d’OpenChamber et la maintient active. Quand l’un de vos appareils est hors de votre réseau, il se connecte lui aussi au relais, et le relais fait transiter le trafic chiffré entre les deux. Rien sur votre machine n’écoute de connexions entrantes depuis internet.
|
||||
|
||||
Quand une connexion directe est disponible — vous êtes de retour à la maison sur le même Wi-Fi — vos appareils la préfèrent et contournent complètement le relais.
|
||||
|
||||
## Ce que le relais peut et ne peut pas voir
|
||||
|
||||
Le relais est un coursier aveugle, pas un intermédiaire :
|
||||
|
||||
- **Chiffré de bout en bout.** Votre appareil et votre serveur négocient les clés de chiffrement directement entre eux. Le relais transmet un trafic scellé dont il n’a pas les clés — il ne peut lire ni votre code, ni vos prompts, ni vos mots de passe.
|
||||
- **Seuls vos appareils peuvent se connecter.** Un appareil doit détenir un token émis par *votre* serveur via l’[association à usage unique](/connect-devices/). Personne ne peut découvrir votre serveur via le relais ni s’y connecter sans un token que vous avez créé — et vous pouvez révoquer n’importe quel token à tout moment.
|
||||
- **Les liens d’association sont à usage unique.** Un QR code d’association fonctionne exactement une fois et expire s’il n’est pas utilisé ; un vieux lien qui fuite ne vaut donc rien.
|
||||
- **Rien n’est partagé sans votre accord.** Le relais reste éteint tant que vous ne l’activez pas ou que vous n’associez pas d’appareil via celui-ci, et vous pouvez le désactiver à tout moment — les appareils connectés à travers lui sont coupés immédiatement.
|
||||
|
||||
## Quand il s’exécute
|
||||
|
||||
Le relais gère son propre cycle de vie — aucun interrupteur à retenir :
|
||||
|
||||
- **Il démarre à la demande.** Créer une association **Partout** active le relais, et il revient après un redémarrage tant qu’un appareil associé en dépend encore.
|
||||
- **Il s’arrête tout seul.** Dès qu’aucun appareil ni aucune association en attente n’utilise le relais — par exemple après avoir révoqué le dernier appareil associé via le relais — il s’éteint automatiquement.
|
||||
|
||||
**Paramètres → Instances distantes → OpenChamber Relay** affiche l’état en direct (Connecté, Reconnexion, …) et le nombre d’appareils connectés à travers lui en ce moment. Vous pouvez aussi y presser **Désactiver** pour couper immédiatement l’accès via le relais ; les appareils sur votre réseau local ne sont pas affectés.
|
||||
|
||||
## Relais ou tunnel ?
|
||||
|
||||
- Utilisez le **relais** pour joindre votre propre serveur depuis vos propres appareils associés. Zéro configuration, et rien n’est exposé publiquement.
|
||||
- Utilisez un [tunnel](/tunnels/) quand il vous faut une simple **URL publique** — par exemple pour ouvrir OpenChamber dans un navigateur ordinaire sur une machine que vous ne pouvez pas associer, ou pour partager l’accès derrière un [mot de passe UI](/security/).
|
||||
|
||||
## Pages liées
|
||||
|
||||
- [Connecter un appareil](/connect-devices/) — associer un appareil avec un QR code à usage unique
|
||||
- [Applications mobiles](/mobile/) — installer l’application iOS ou Android
|
||||
- [Sécurité](/security/) — mots de passe, passkeys et bases de l’exposition
|
||||
- [Accès distant](/troubleshooting/remote-access/) — quand une connexion ne se termine pas
|
||||
@@ -24,19 +24,25 @@ OpenChamber déroule les étapes — vérification de la connexion, configuratio
|
||||
|
||||
Vous décidez d’enregistrer les mots de passe SSH et UI ou de les saisir à chaque fois. Si la connexion tombe, OpenChamber indique l’étape qui a échoué pour vous aider à corriger — voir [Accès distant](/troubleshooting/remote-access/).
|
||||
|
||||
## Liens de connexion directe
|
||||
## Liens de connexion
|
||||
|
||||
Si une machine distante exécute déjà OpenChamber, créez un lien de connexion là-bas et importez-le dans **Paramètres → Instances distantes → Liens de serveur** :
|
||||
Si une machine distante exécute déjà OpenChamber, le moyen le plus simple de connecter l’application desktop est un lien d’association. Sur l’UI du serveur distant, ouvrez **Paramètres → Instances distantes → Se connecter à ce serveur → Ajouter un appareil**, créez un lien, puis importez-le sur votre desktop dans **Paramètres → Instances distantes → Autres serveurs OpenChamber → Importer le lien**. Voir [Connecter un appareil](/connect-devices/) pour le flux complet.
|
||||
|
||||
Un lien créé avec **Partout** contient à la fois une adresse directe et une route via le [Relais privé](/private-relay/) : le desktop se connecte directement quand il peut joindre le serveur (même réseau), et bascule sur le relais chiffré de bout en bout quand vous êtes en déplacement. Le statut à côté de chaque serveur enregistré indique la route utilisée.
|
||||
|
||||
Vous pouvez aussi créer un lien depuis un terminal sur la machine distante :
|
||||
|
||||
```bash
|
||||
openchamber connect-url --port 3000 --server http://your-host:3000 --qr
|
||||
```
|
||||
|
||||
`connect-url` démarre d’abord le serveur si rien ne tourne sur ce port. Ajoutez `--api-only` pour un serveur headless, `--lan` pour écouter sur le LAN au démarrage, `--ui-password` pour protéger l’accès navigateur et `--name` pour nommer la connexion enregistrée.
|
||||
`connect-url` démarre d’abord le serveur si rien ne tourne sur ce port. Ajoutez `--api-only` pour un serveur headless, `--lan` pour écouter sur le LAN au démarrage, `--ui-password` pour protéger l’accès navigateur et `--name` pour nommer la connexion enregistrée. Ajoutez `--relay` pour un lien qui fonctionne aussi hors du réseau local : l’appareil préfère la connexion directe quand elle est joignable et bascule sur le [Relais privé](/private-relay/) — l’instance active le relais toute seule.
|
||||
|
||||
Le lien généré contient un token client pour les applications OpenChamber. Ce token est séparé du mot de passe de l’UI navigateur et survit aux redémarrages du serveur jusqu’à révocation ou suppression.
|
||||
Le lien généré contient un secret d’association à usage unique. Une fois importé, l’appareil détient son propre token client — séparé du mot de passe de l’UI navigateur — qui survit aux redémarrages du serveur jusqu’à révocation sur le serveur émetteur.
|
||||
|
||||
## Pages liées
|
||||
|
||||
- [Connecter un appareil](/connect-devices/) — liens d’association, QR codes et gestion des appareils
|
||||
- [Relais privé](/private-relay/) — comment fonctionnent les connexions « Partout »
|
||||
- [Serveur OpenCode](/opencode-server/) — se connecter à un serveur distant sur web ou VS Code
|
||||
- [Accès distant](/troubleshooting/remote-access/) — quand une connexion ne se termine pas
|
||||
|
||||
@@ -20,6 +20,8 @@ Une tâche planifiée lance un prompt pour vous selon un planning — par exempl
|
||||
|
||||
Vous pouvez lancer n’importe quelle tâche immédiatement avec **run now** pour vérifier qu’elle fait ce que vous attendez.
|
||||
|
||||
Cochez **Exécuter comme objectif** pour que l'exécution poursuive son prompt jusqu'au bout au lieu de s'arrêter après une réponse — voir [Objectifs de session](/session-goals/).
|
||||
|
||||
## À quoi ressemble une réussite
|
||||
|
||||
Après une exécution, la tâche indique quand elle a tourné pour la dernière fois, si elle a réussi et un lien vers la session créée. Si une exécution échoue, l’erreur s’affiche aussi à cet endroit.
|
||||
|
||||
@@ -25,13 +25,20 @@ Une fois un mot de passe défini, vous pouvez ajouter des passkeys (Face ID, Tou
|
||||
|
||||
Les passkeys sont liées au mot de passe actuel. Si vous changez ou supprimez le mot de passe, les passkeys enregistrées sont effacées et vous devrez les ajouter à nouveau.
|
||||
|
||||
## Tokens d’appareil
|
||||
|
||||
Les appareils associés via [Connecter un appareil](/connect-devices/) s’authentifient avec leurs propres tokens par appareil, pas avec le mot de passe UI. Les liens d’association sont à usage unique et expirent s’ils ne sont pas utilisés ; chaque appareil associé est listé dans **Paramètres → Instances distantes → Se connecter à ce serveur**, où vous pouvez révoquer n’importe lequel à tout moment. Les connexions hors du domicile passent par le [Relais privé](/private-relay/), qui est chiffré de bout en bout et ne peut pas lire votre trafic.
|
||||
|
||||
## Avant de l’exposer
|
||||
|
||||
- Par défaut, OpenChamber n’écoute que sur votre propre machine (`127.0.0.1`). Écouter plus largement demande un changement volontaire, et vous devriez définir un mot de passe d’abord.
|
||||
- Préférez un [tunnel](/tunnels/) ou un réseau privé (comme un VPN) plutôt que d’ouvrir un port sur internet.
|
||||
- Pour vos propres appareils, préférez l’[association](/connect-devices/) avec le [Relais privé](/private-relay/) — rien n’est exposé publiquement du tout.
|
||||
- S’il vous faut une URL publique, préférez un [tunnel](/tunnels/) ou un réseau privé (comme un VPN) plutôt que d’ouvrir un port sur internet.
|
||||
- Si vous placez OpenChamber derrière votre propre serveur HTTPS, consultez [Reverse proxy](/reverse-proxy/).
|
||||
|
||||
## Pages liées
|
||||
|
||||
- [Tunnels](/tunnels/) — la façon recommandée de joindre une instance à distance
|
||||
- [Connecter un appareil](/connect-devices/) — association à usage unique et tokens par appareil
|
||||
- [Relais privé](/private-relay/) — accès chiffré de bout en bout depuis n’importe où
|
||||
- [Tunnels](/tunnels/) — exposer une URL publique quand il en faut une
|
||||
- [Reverse proxy](/reverse-proxy/) — exécuter OpenChamber derrière votre propre serveur
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
---
|
||||
title: Objectifs de session
|
||||
description: Transformez un prompt en objectif vers lequel l'agent travaille automatiquement.
|
||||
---
|
||||
|
||||
# Objectifs de session
|
||||
|
||||
Un objectif transforme un seul prompt en ligne d'arrivée. Au lieu de relancer l'agent avec « continue » après chaque réponse, vous définissez l'objectif une fois — et OpenChamber fait travailler la session vers lui automatiquement, en vérifiant la progression avec un auditeur indépendant après chaque tour. Le travail continue même en votre absence.
|
||||
|
||||
## Démarrer un objectif
|
||||
|
||||
1. Appuyez sur le bouton cible du composeur. Il s'allume — le mode objectif est armé.
|
||||
2. Écrivez votre prompt et envoyez-le. Ce message devient l'objectif.
|
||||
|
||||
Cela fonctionne aussi bien dans une session existante que dans un brouillon de nouvelle session : armez la cible, écrivez le premier message, envoyez — la nouvelle session démarre avec l'objectif déjà actif.
|
||||
|
||||
### D'autres façons de démarrer un objectif
|
||||
|
||||
- **Depuis une réponse de l'agent** : dans le dialogue « Start new session from this answer », cochez **Exécuter comme objectif** — la réponse est transmise comme une mission que la nouvelle session exécute jusqu'au bout (combinez avec **Create worktree** pour une exécution isolée).
|
||||
- **Depuis un plan** : en implémentant un plan enregistré dans une nouvelle session ou un worktree, cochez **Exécuter comme objectif** dans le dialogue. L'objectif porte le contenu du plan, l'auditeur juge donc la progression par rapport au plan réel.
|
||||
- **Selon un horaire** : cochez **Exécuter comme objectif** sur une [tâche planifiée](/scheduled-tasks/) pour que les exécutions récurrentes poursuivent leur prompt jusqu'au bout.
|
||||
|
||||
## Rédigez un objectif autonome
|
||||
|
||||
L'auditeur de progression ne voit que votre objectif et la dernière réponse de l'agent — pas l'historique du chat. Formulez donc le message-objectif de sorte qu'une personne sans le contexte de la conversation comprenne à quoi ressemble l'état final.
|
||||
|
||||
- Bien : « Ajoute des tests pour le module d'export et fais passer toute la suite de tests. »
|
||||
- Moins bien : « Corrige ça » ou « Continue sur cette idée. »
|
||||
|
||||
Pour de petits ajustements contextuels, pas besoin d'objectif — envoyez un message normal.
|
||||
|
||||
## Comment ça marche
|
||||
|
||||
Quand l'agent s'arrête et que la session reste calme un instant, OpenChamber :
|
||||
|
||||
1. Demande à un petit modèle économique d'auditer le dernier tour par rapport à l'objectif : continuer, terminé ou bloqué ?
|
||||
2. Si le verdict est « continuer », il envoie un prompt de continuation et l'agent reprend le travail.
|
||||
3. Si l'objectif est atteint de manière vérifiable, l'objectif se termine et vous recevez une notification.
|
||||
4. Si l'agent est réellement bloqué (il a besoin de vous), l'objectif s'arrête comme bloqué — mais seulement après que l'auditeur l'a dit trois fois de suite ; un accroc ponctuel ne termine jamais l'objectif.
|
||||
|
||||
Il y a aussi des garde-fous : un budget de tokens optionnel, un plafond de continuations automatiques et un arrêt en cas d'erreur de tour. Si le contexte de la session est compacté en plein travail, l'objectif continue simplement — heurter la fenêtre de contexte prouve que le travail n'était pas fini.
|
||||
|
||||
### Arrêter et reprendre
|
||||
|
||||
- Le **bouton stop** interrompt le tour en cours et met l'objectif en pause — votre « stop » explicite l'emporte toujours sur la boucle.
|
||||
- **Pause** sur la bande de l'objectif fait la même chose dans l'autre sens : elle met l'objectif en pause et arrête le tour en cours.
|
||||
- Pendant la pause, discutez normalement — la boucle reste à l'écart.
|
||||
- **Reprendre** réarme la boucle : sur une session inactive, la relance part immédiatement ; si l'agent est en train de travailler, la boucle se raccroche silencieusement à sa prochaine pause.
|
||||
|
||||
## Suivre et gérer
|
||||
|
||||
- La bande au-dessus du composeur affiche la dernière note de progression, le statut et l'usage de tokens, avec un bouton pause/reprise intégré. Quand l'agent s'est arrêté et que l'objectif est actif, la bande affiche un **Évaluation…** animé — c'est la fenêtre de calme et l'audit en cours.
|
||||
- Le bouton cible reste allumé tant que l'objectif tourne (bleu), passe au vert à la fin et au rouge s'il est bloqué ou à court de budget. Appuyez dessus pour ouvrir le dialogue de l'objectif : modifier l'objectif ou le budget, ou le supprimer. Un objectif terminé est en lecture seule — supprimez-le, puis armez-en un nouveau.
|
||||
- Dans la barre latérale des sessions, une petite cible apparaît à côté de la date de la session, colorée selon l'état de l'objectif.
|
||||
|
||||
## Notifications
|
||||
|
||||
Tant qu'un objectif est actif, les notifications « agent prêt » à chaque tour sont supprimées — elles ne feraient qu'écho aux continuations de la boucle elle-même. Quand l'objectif se règle (terminé, bloqué ou budget atteint), vous recevez une seule notification finale, sur le bureau et en push mobile. Elle respecte le même réglage « notifier à la fin » ; les demandes de permission, les questions et les notifications d'erreur continuent de fonctionner normalement.
|
||||
|
||||
## Budget de tokens
|
||||
|
||||
Dans **Paramètres → Chat → Objectif**, vous pouvez définir un budget de tokens par défaut pour les nouveaux objectifs. Quand un objectif atteint son budget, il s'arrête en « budget atteint » au lieu de dépenser plus — vous pouvez augmenter le budget et reprendre depuis le dialogue de l'objectif.
|
||||
|
||||
## À garder en tête
|
||||
|
||||
- La boucle d'objectif tourne dans le serveur OpenChamber, pas dans votre onglet de navigateur. Fermez l'onglet, verrouillez le téléphone — l'agent continue, et vous recevez une notification quand l'objectif se termine. Le serveur (app de bureau ou processus `openchamber`) doit rester lancé.
|
||||
- Les objectifs utilisent le fournisseur et le modèle de votre propre session, y compris pour les appels de l'auditeur — rien ne part vers des fournisseurs que vous n'utilisez pas déjà.
|
||||
- Un objectif par session à la fois.
|
||||
|
||||
## Voir aussi
|
||||
|
||||
- [Tâches planifiées](/scheduled-tasks/) — exécuter un prompt selon un horaire ; activez-y « Exécuter comme objectif » pour qu'une exécution planifiée poursuive son prompt jusqu'au bout
|
||||
- [Notifications](/notifications/) — comment vous êtes prévenu d'un objectif terminé
|
||||
@@ -12,6 +12,15 @@ Quand vous ne pouvez pas joindre OpenChamber depuis votre téléphone ou une aut
|
||||
- ouvrez d’abord `http://localhost:3000` sur le même ordinateur — si cela échoue, ce n’est pas un problème distant ; voir [Connexion à OpenCode](/troubleshooting/opencode-connection/)
|
||||
- confirmez que le serveur tourne avec `openchamber status`
|
||||
|
||||
## L’appareil associé ne se connecte pas
|
||||
|
||||
- le QR code / lien d’association est **à usage unique** — s’il a déjà été scanné (ou a expiré), créez-en un nouveau depuis **Ajouter un appareil**
|
||||
- si l’appareil a été associé avec **Réseau domestique uniquement**, il ne peut pas se connecter depuis l’extérieur de ce réseau — associez-le à nouveau avec **Partout**
|
||||
- pour une association **Partout**, vérifiez **Paramètres → Instances distantes → OpenChamber Relay** sur le serveur : le statut doit être **Connecté** ; sinon, désactivez puis réactivez le relais
|
||||
- si un appareil a été **révoqué**, son token est perdu définitivement — associez-le à nouveau avec un nouveau QR code
|
||||
|
||||
Voir [Connecter un appareil](/connect-devices/) et [Relais privé](/private-relay/) pour comprendre comment ces connexions fonctionnent.
|
||||
|
||||
## Le lien de tunnel ne fonctionne pas
|
||||
|
||||
- lancez `openchamber tunnel status --all`
|
||||
@@ -34,5 +43,5 @@ Si vous placez OpenChamber derrière un reverse proxy et qu’il se charge bizar
|
||||
|
||||
## Pages liées
|
||||
|
||||
- [Tunnels](/tunnels/) · [Instances distantes](/remote-instances/) · [Reverse proxy](/reverse-proxy/)
|
||||
- [Connecter un appareil](/connect-devices/) · [Relais privé](/private-relay/) · [Tunnels](/tunnels/) · [Instances distantes](/remote-instances/) · [Reverse proxy](/reverse-proxy/)
|
||||
- [Sécurité](/security/) — protéger l’UI avant de l’exposer
|
||||
|
||||
@@ -5,7 +5,9 @@ description: Exposez OpenChamber en sécurité pour l’accès distant et mobile
|
||||
|
||||
# Tunnels
|
||||
|
||||
Un tunnel est un lien public vers votre OpenChamber, pour y accéder depuis votre téléphone ou un autre réseau. Utilisez `openchamber tunnel` pour en créer un pour une instance en cours d’exécution.
|
||||
Un tunnel est un lien public vers votre OpenChamber, pour y accéder depuis un navigateur ordinaire sur un autre réseau. Utilisez `openchamber tunnel` pour en créer un pour une instance en cours d’exécution.
|
||||
|
||||
> Connecter vos **propres appareils** (l’application mobile, un autre desktop) ne nécessite généralement pas de tunnel — [associez-les](/connect-devices/) plutôt et laissez le [Relais privé](/private-relay/), chiffré de bout en bout, gérer l’accès hors du domicile sans aucune configuration.
|
||||
|
||||
## Prérequis
|
||||
|
||||
@@ -111,6 +113,7 @@ openchamber tunnel stop --port 3000
|
||||
|
||||
## Pages liées
|
||||
|
||||
- [Connecter un appareil](/connect-devices/) — associer vos propres appareils sans URL publique
|
||||
- [Sécurité](/security/) — protéger l’UI avant de l’exposer
|
||||
- [Tunnels desktop](/desktop-tunnels/) — configuration des tunnels de l’application desktop sans démarrage CLI
|
||||
- [PWA et mobile](/mobile/) — joindre OpenChamber depuis votre téléphone
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
---
|
||||
title: Parcours des modifications
|
||||
description: Lisez un diff dans l’ordre qui a du sens, pas dans l’ordre alphabétique.
|
||||
---
|
||||
|
||||
# Parcours des modifications
|
||||
|
||||
Un diff est trié par chemin de fichier, ce qui n’est presque jamais l’ordre 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 s’enchaînent pour que chacune s’appuie sur la précédente.
|
||||
|
||||
Il explique et ordonne. Il ne juge pas votre code et ne rend aucun verdict — c’est le rôle de [Review](/git/).
|
||||
|
||||
Ouvrez-le par l’icô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 d’ouvrir le panneau ; rien n’est généré tant que vous n’appuyez pas sur **Générer le parcours**.
|
||||
|
||||
## Ce qu’il peut parcourir
|
||||
|
||||
| Portée | Ce qu’elle couvre |
|
||||
| --- | --- |
|
||||
| Tout non validé | Tout ce qui n’est 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 qu’elle existe sur GitHub |
|
||||
|
||||
**Cette branche** ne veut pas dire « commits non poussés » : c’est 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 : l’une montre ce que vous avez fait, l’autre ce que voient les relecteurs.
|
||||
|
||||
Chaque portée est stockée séparément : passer de l’une à l’autre 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 l’en-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 l’entrée en silence : un parcours écrit sur la moitié d’un 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 n’en 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 l’en-tête du panneau démarre là, et vous pouvez choisir n’importe 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 à l’aise.
|
||||
|
||||
Seule la prose est traduite. Les identifiants, les chemins de fichiers et les noms d’API restent exactement tels qu’ils apparaissent dans votre code, si bien que ce qu’une étape nomme reste ce que vous pouvez rechercher.
|
||||
|
||||
Si rien n’a encore été généré dans la langue choisie, le panneau ne se vide pas : il continue d’afficher le parcours qu’il a et le signale. Appuyez sur **Générer le parcours** pour l’obtenir 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 d’après le contenu exact du diff. Ramenez la copie de travail à un état antérieur et le parcours d’alors 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 qu’un diff a un parcours en deux langues, passer de l’une à l’autre 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** l’interrompt.
|
||||
|
||||
## Rester honnête sur l’obsolescence
|
||||
|
||||
Chaque étape est ancrée au contenu exact du code qu’elle 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 s’il faut régénérer.
|
||||
- **Non traité** — des modifications du diff actuel qu’aucune é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 n’importe 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 l’extension VS Code ni dans l’application 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 qu’il lit, et l’action Review qui, elle, juge le code
|
||||
- [Issues et PR GitHub](/github/) — connectez GitHub pour parcourir les pull requests
|
||||
- [Fournisseurs, modèles et agents](/providers/) — d’où vient le petit modèle
|
||||
@@ -0,0 +1,39 @@
|
||||
---
|
||||
title: エージェント制御ツール
|
||||
description: エージェントがチャットから OpenChamber のセッション、worktree、スケジュールタスクを管理できるようにします。
|
||||
---
|
||||
|
||||
# エージェント制御ツール
|
||||
|
||||
`openchamber` エージェントツールを使うと、チャットからアプリ内の作業を直接管理できます。OpenChamber が独自のローカル OpenCode サーバーを実行している場合はデフォルトで有効になり、別のツールのインストールや shell コマンドの実行は必要ありません。
|
||||
|
||||
## 依頼できること
|
||||
|
||||
自然な言葉でエージェントに依頼します。例:
|
||||
|
||||
- 「このプロジェクトに新しい OpenChamber セッションを作成し、`openai/gpt-5.6-sol` モデルを使って次のプロンプトを送信して:認証フローをレビューして。」
|
||||
- 「このタスク用の新しい OpenChamber セッションを別の worktree に作成し、ログインフローのテストを追加するよう依頼して。」
|
||||
- 「OpenChamber を使って最近のセッション 10 件とそれぞれの現在の状態を表示して。」
|
||||
- 「OpenChamber に平日レビューというスケジュールタスクを作成し、平日の 09:00 に次のプロンプトを送信して:前回の実行以降の変更をレビューして。」
|
||||
- 「平日レビューという OpenChamber スケジュールタスクを今すぐ実行して。」
|
||||
- 「認証レビューという OpenChamber セッションを確認し、最新のアシスタント応答を表示して。」
|
||||
|
||||
このツールは、プロジェクトとモデル設定の一覧表示、セッションの作成と継続、セッションのフォーク、分離された worktree セッションの作成、スケジュールタスクの管理を行えます。この方法で開始したセッションも通常のセッションと同じように OpenChamber に表示されるため、自分で開いて作業を続けられます。
|
||||
|
||||
## 注意点
|
||||
|
||||
- 新しいセッションへのプロンプトは、デフォルトではすぐに処理を返します。OpenChamber でセッションを確認するか、後でエージェントに結果を確認するよう依頼してください。
|
||||
- 別の worktree は、明示的に依頼した場合にのみ作成されます。現在の worktree にある未コミットの変更はコピーされません。
|
||||
- このツールは、セッションや worktree の削除、プロジェクトパスの登録、任意の shell コマンドの実行、任意の URL の呼び出しはできません。
|
||||
|
||||
## ツールを有効または無効にする
|
||||
|
||||
**設定 → 一般 → OpenCode CLI** を開き、**エージェント制御ツール**を変更して、**Save + Reload** を選択します。この設定は、管理対象の OpenCode サーバーが再起動した後に反映されます。
|
||||
|
||||
OpenChamber が `OPENCODE_HOST` または skip-start で外部 OpenCode サーバーに接続している場合や、VS Code 拡張機能内では、このツールを利用できません。OpenChamber が管理する OpenCode サーバーを使用するデスクトップ版と Web 版では自動的に利用できます。
|
||||
|
||||
## 関連項目
|
||||
|
||||
- [スケジュールタスク](/ja/scheduled-tasks/)
|
||||
- [Worktree セッション](/ja/worktrees/)
|
||||
- [セッションゴール](/ja/session-goals/)
|
||||
@@ -0,0 +1,68 @@
|
||||
---
|
||||
title: デバイスを接続する
|
||||
description: 1 回限りの QR コードで、スマートフォン、デスクトップ、別のブラウザを OpenChamber サーバーとペアリングします。
|
||||
---
|
||||
|
||||
# デバイスを接続する
|
||||
|
||||
モバイルアプリ、デスクトップアプリ、別マシンのブラウザなど、別のデバイスを 1 回限りの QR コードのスキャンで OpenChamber サーバーとペアリングできます。これがデバイス接続の推奨方法です。ポートを開ける必要も、アドレスを入力する必要もありません。
|
||||
|
||||
## デバイスをペアリングする
|
||||
|
||||
1. OpenChamber が動いているマシンで **Settings → Remote Instances → このサーバーに接続** を開き、**デバイスを追加** を押します。
|
||||
2. 後で見分けられるように、デバイスに名前を付けます(例: *My iPhone*)。
|
||||
3. デバイスをどこで使うか選びます。
|
||||
- **このコンピュータのみ** — 同じマシン上で動くアプリ用
|
||||
- **自宅ネットワークのみ** — Wi-Fi 経由で直接接続します。このネットワークの外では使えません
|
||||
- **どこでも** — 自宅でも外出先でも使えます。外出先の通信は、設定不要のエンドツーエンド暗号化トンネルである [Private Relay](/private-relay/) を経由します
|
||||
4. **QRコードを作成** を押します。
|
||||
5. もう一方のデバイスでコードをスキャンします。
|
||||
- **モバイルアプリ** — 接続画面(またはインスタンス一覧)で **QR コードをスキャン** をタップします
|
||||
- **デスクトップアプリ** — 代わりに接続リンクをコピーし、**Settings → Remote Instances → その他の OpenChamber サーバー → リンクをインポート** に貼り付けます
|
||||
|
||||
デバイスが接続されるとダイアログは自動で閉じ、デバイスがライブステータス付きで一覧に表示されます。これでペアリング完了です。
|
||||
|
||||
## ペアリングが安全な理由
|
||||
|
||||
- **QR コードは 1 回限りです。** デバイスが使用した瞬間に無効になり、未使用のままでも自動的に期限切れになります。
|
||||
- **各デバイスに専用のトークンが発行されます。** コードをスキャンしても UI パスワードが漏れることはなく、あるデバイスのトークンで別のデバイスになりすますこともできません。
|
||||
- **主導権は常にあなたにあります。** ペアリング済みのデバイスはすべて名前、プラットフォーム、接続状態とともに一覧表示され、いつでも無効化できます。
|
||||
- **外出先の通信はエンドツーエンドで暗号化されます。** **どこでも** を選ぶと、ネットワーク外の通信は [Private Relay](/private-relay/) を経由します。リレーは通過する内容を読むことができません。
|
||||
|
||||
## ペアリング済みデバイスを管理する
|
||||
|
||||
**Settings → Remote Instances → このサーバーに接続** には、このサーバーに到達できるすべてのデバイスが表示されます。オンラインなら緑のドットが付き、ローカルネットワーク経由かリレー経由かも分かります。
|
||||
|
||||
- **無効化** はデバイスを即座に切断します。気が変わったら、新しい QR コードで再ペアリングしてください。
|
||||
- **無効化済みをクリア** で一覧を整理できます。
|
||||
|
||||
同じ物理デバイスは後で再サインインしてもエントリは 1 つのまま維持されるため、重複がたまることはありません。
|
||||
|
||||
## コマンドラインから接続する
|
||||
|
||||
サーバーがヘッドレス(UI を開いていない状態)で動いている場合は、そのマシンのターミナルから接続リンクを作成できます。
|
||||
|
||||
同じネットワーク上のデバイス用にはこちらです。
|
||||
|
||||
```bash
|
||||
openchamber connect-url --port 3000 --qr
|
||||
```
|
||||
|
||||
**どこからでも**接続するデバイス用 — ダイアログで **どこでも** を選ぶのと同等 — にはこちらです。
|
||||
|
||||
```bash
|
||||
openchamber connect-url --relay --qr
|
||||
```
|
||||
|
||||
`--relay` リンクには、ダイアログと同様に両方の経路が含まれます。デバイスはサーバーに到達できるときはローカルネットワーク経由で直接接続し、外出先では [Private Relay](/private-relay/) にフォールバックします。リレーは自動的に起動します。実行中のインスタンスは 1 分以内にリンクを拾い、停止中のインスタンスは次回の起動時に拾います。
|
||||
|
||||
> 直接経路は、サーバーが実際にネットワーク上で待ち受けている場合にのみ機能します。デフォルトでは OpenChamber はそのマシン上でのみ待ち受けます。Wi-Fi 経由で到達できるようにするには `--lan` を付けて起動してください。リンクの直接経路が他のデバイスから使えない場合、コマンドは警告(`[LAN_UNREACHABLE]`)を表示します。その場合でも `--relay` リンクは機能しますが、常にリレー経由になります。
|
||||
|
||||
出力されるリンクと QR コードは、設定ダイアログから作成したものとまったく同じように機能します — 1 回限りで、期限切れになり、無効化できます。
|
||||
|
||||
## 関連
|
||||
|
||||
- [Private Relay](/private-relay/) — 「どこでも」接続の仕組みと、リレーに見えるもの・見えないもの
|
||||
- [モバイルアプリ](/mobile/) — iOS または Android アプリをインストールする
|
||||
- [リモートインスタンス](/remote-instances/) — デスクトップアプリを SSH やリンクでサーバーに接続する
|
||||
- [リモートアクセス](/troubleshooting/remote-access/) — デバイスが接続できない場合
|
||||
@@ -1,31 +1,43 @@
|
||||
---
|
||||
title: PWA とモバイルアクセス
|
||||
description: OpenChamber をアプリとしてインストールし、スマートフォンから使います。
|
||||
title: モバイルアプリと PWA
|
||||
description: iOS または Android に OpenChamber アプリをインストールし、サーバーに接続します。
|
||||
---
|
||||
|
||||
# PWA とモバイルアクセス
|
||||
# モバイルアプリと PWA
|
||||
|
||||
OpenChamber の Web アプリはスマートフォンアプリのようにインストールできます(PWA)。ホーム画面に置いて全画面で使えます。[トンネル](/tunnels/) と組み合わせると、どこからでもセッションを確認できます。
|
||||
OpenChamber には iPhone と Android のネイティブアプリがあり、セッションの確認、エージェントへの返信、作業の管理をスマートフォンから行えます。自宅では Wi-Fi 経由、外出先では [Private Relay](/private-relay/) 経由でどこからでも使えます。
|
||||
|
||||
## インストールする
|
||||
## アプリをインストールする
|
||||
|
||||
OpenChamber はブラウザ組み込みのインストール機能を使うため、別途ダウンロードは不要です。
|
||||
- **iPhone/iPad** — [TestFlight ベータ](https://testflight.apple.com/join/5ek6GU1E) に参加します
|
||||
- **Android** — [最新リリース](https://github.com/openchamber/openchamber/releases/latest) から APK をダウンロードします
|
||||
|
||||
## サーバーに接続する
|
||||
|
||||
1. OpenChamber が動いているコンピューターで **Settings → Remote Instances → このサーバーに接続** を開き、**デバイスを追加** を押します。
|
||||
2. **どこでも** を選び(自宅でしか使わないなら **自宅ネットワークのみ** でも可)、**QRコードを作成** を押します。
|
||||
3. モバイルアプリで **QR コードをスキャン** をタップし、カメラをコードに向けます。
|
||||
|
||||
アプリが接続し、サーバーを記憶します。QR コードは 1 回限りで、各デバイスには無効化可能な専用トークンが発行されます。ペアリングが安全な理由は [デバイスを接続する](/connect-devices/) を参照してください。
|
||||
|
||||
アプリは複数のサーバーとペアリングでき、インスタンス一覧から切り替えられます。各サーバーについて、到達可能かどうか、ローカルネットワーク経由かリレー経由かが表示されます。
|
||||
|
||||
## PWA(ブラウザからのインストール)
|
||||
|
||||
アプリストアを一切使いたくない場合は、Web アプリをブラウザから直接インストールできます。
|
||||
|
||||
- **デスクトップブラウザ** — アドレスバーの **Install** オプションを使います
|
||||
- **iPhone/iPad (Safari)** — 共有 → **ホーム画面に追加**
|
||||
- **Android (Chrome)** — メニュー → **アプリをインストール** / **ホーム画面に追加**
|
||||
|
||||
インストール後は、ブラウザの枠がない専用ウィンドウで開きます。
|
||||
|
||||
## スマートフォンからアクセスする
|
||||
|
||||
サーバーがコンピューター上で動いている OpenChamber をスマートフォンで開くには、[トンネル](/tunnels/) を開始し、スマートフォンでリンクを開く(または QR コードをスキャンする)だけです。この操作をするときは必ず強力な [UI パスワード](/security/) を使ってください。
|
||||
ネットワークの外から PWA に到達するには、[トンネル](/tunnels/) と強力な [UI パスワード](/security/) が必要です。ネイティブアプリならリレー経由でこれらを自動的に処理します。
|
||||
|
||||
## モバイル設定
|
||||
|
||||
**Settings → OpenChamber** には、モバイルやインストール済みアプリの体験を調整するいくつかのオプションがあります。インストール名、画面の向き、オンスクリーンキーボードの動作などです。
|
||||
**Settings → OpenChamber** には、モバイルやインストール済みアプリの体験を調整するいくつかのオプションがあります。アプリのインストール名、画面の向き、オンスクリーンキーボードの動作などです。
|
||||
|
||||
## 関連
|
||||
|
||||
- [トンネル](/tunnels/) — 別ネットワークからインスタンスにアクセスする
|
||||
- [デバイスを接続する](/connect-devices/) — ペアリング、1 回限りの QR コード、デバイス管理
|
||||
- [Private Relay](/private-relay/) — 「どこでも」アクセスの仕組み
|
||||
- [セキュリティ](/security/) — 公開する前に UI を保護する
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
---
|
||||
title: Private Relay
|
||||
description: エンドツーエンド暗号化リレー経由で、どこからでも OpenChamber サーバーに到達できます。ポート開放もトンネルもセットアップも不要です。
|
||||
---
|
||||
|
||||
# Private Relay
|
||||
|
||||
OpenChamber Private Relay を使うと、ペアリング済みのデバイスから、モバイル回線、カフェの Wi-Fi、別の都市など、どこからでもサーバーに到達できます。ポートを開けたり、トンネルを設定したり、マシンをインターネットに公開したりする必要はありません。リレーは自己管理型です。[デバイスを接続する](/connect-devices/) で **どこでも** を選んでデバイスをペアリングするだけで使えます。
|
||||
|
||||
## 仕組み
|
||||
|
||||
サーバーは OpenChamber のリレーインフラへアウトバウンド接続を張り、維持し続けます。デバイスが自宅ネットワークの外にあるときは、デバイスもリレーに接続し、リレーが両者の間で暗号化された通信を中継します。あなたのマシン上でインターネットからの着信接続を待ち受けるものは何もありません。
|
||||
|
||||
直接接続が可能なとき — 自宅に戻って同じ Wi-Fi にいるとき — は、デバイスは直接接続を優先し、リレーを完全にスキップします。
|
||||
|
||||
## リレーに見えるもの・見えないもの
|
||||
|
||||
リレーは中間者ではなく、中身の見えない配達人です。
|
||||
|
||||
- **エンドツーエンドで暗号化されます。** 暗号化キーはデバイスとサーバーが直接合意します。リレーはキーを持たない封印済みの通信を転送するだけで、コード、プロンプト、パスワードを読むことはできません。
|
||||
- **接続できるのはあなたのデバイスだけです。** デバイスは、[1 回限りのペアリング](/connect-devices/) を通じて*あなたの*サーバーが発行したトークンを持っている必要があります。リレー経由であなたのサーバーを発見したり、あなたが作成したトークンなしで接続したりすることは誰にもできません。トークンはいつでも無効化できます。
|
||||
- **ペアリングリンクは 1 回限りです。** ペアリング用 QR コードは 1 回だけ機能し、未使用なら期限切れになるため、古いリンクが漏れても無価値です。
|
||||
- **オプトインするまで何も共有されません。** リレーは、あなたが有効にするかリレー経由でデバイスをペアリングするまでオフのままです。いつでも無効にでき、その場合リレー経由で接続中のデバイスは即座に切断されます。
|
||||
|
||||
## いつ動くのか
|
||||
|
||||
リレーは自分でライフサイクルを管理します。オン / オフのスイッチを覚えておく必要はありません。
|
||||
|
||||
- **必要になると起動します。** **どこでも** のペアリングを作成するとリレーがオンになり、ペアリング済みのデバイスがリレーを必要としている限り、再起動後も自動的に復帰します。
|
||||
- **自動で停止します。** リレーを使うデバイスや保留中のペアリングがなくなると — たとえば最後のリレー経由デバイスを無効化した後 — 自動的にシャットダウンします。
|
||||
|
||||
**Settings → Remote Instances → OpenChamber Relay** には、ライブステータス(接続済み、再接続中など)と、現在リレー経由で接続中のデバイス数が表示されます。そこで **無効にする** を押せば、リレー経由のアクセスを即座に遮断することもできます。ローカルネットワーク上のデバイスには影響しません。
|
||||
|
||||
## リレーとトンネル、どちらを使う?
|
||||
|
||||
- 自分のペアリング済みデバイスから自分のサーバーに到達するには **リレー** を使います。セットアップ不要で、何も公開されません。
|
||||
- 通常の **公開 URL** が必要なときは [トンネル](/tunnels/) を使います。たとえば、ペアリングできないマシンの普通のブラウザで OpenChamber を開きたい場合や、[UI パスワード](/security/) の背後でアクセスを共有したい場合です。
|
||||
|
||||
## 関連
|
||||
|
||||
- [デバイスを接続する](/connect-devices/) — 1 回限りの QR コードでデバイスをペアリングする
|
||||
- [モバイルアプリ](/mobile/) — iOS または Android アプリをインストールする
|
||||
- [セキュリティ](/security/) — パスワード、パスキー、公開時の基本
|
||||
- [リモートアクセス](/troubleshooting/remote-access/) — 接続が完了しない場合
|
||||
@@ -24,19 +24,25 @@ OpenChamber は接続確認、リモートのセットアップ、サーバー
|
||||
|
||||
SSH と UI のパスワードを保存するか、毎回入力するかを選べます。接続が落ちた場合、OpenChamber はどのステップで失敗したかを表示するため、修正できます。[リモートアクセス](/troubleshooting/remote-access/) を参照してください。
|
||||
|
||||
## 直接接続リンク
|
||||
## 接続リンク
|
||||
|
||||
リモートマシンですでに OpenChamber が実行されている場合は、そこで接続リンクを作成し、**Settings → Remote Instances → Server links** でインポートします。
|
||||
リモートマシンですでに OpenChamber が実行されている場合、デスクトップアプリを接続する最も簡単な方法はペアリングリンクです。リモートサーバーの UI で **Settings → Remote Instances → このサーバーに接続 → デバイスを追加** を開いてリンクを作成し、デスクトップ側の **Settings → Remote Instances → その他の OpenChamber サーバー → リンクをインポート** で取り込みます。フローの詳細は [デバイスを接続する](/connect-devices/) を参照してください。
|
||||
|
||||
**どこでも** で作成したリンクには、直接アドレスと [Private Relay](/private-relay/) 経路の両方が含まれます。デスクトップはサーバーに到達できるとき(同じネットワーク)は直接接続し、外出先ではエンドツーエンド暗号化リレーにフォールバックします。保存済みの各サーバーの横のステータスに、どちらの経路が使われているかが表示されます。
|
||||
|
||||
リモートマシンのターミナルからリンクを作成することもできます。
|
||||
|
||||
```bash
|
||||
openchamber connect-url --port 3000 --server http://your-host:3000 --qr
|
||||
```
|
||||
|
||||
`connect-url` は、そのポートで何も実行されていなければ先にサーバーを起動します。ヘッドレスサーバーには `--api-only`、起動時に LAN にバインドするには `--lan`、ブラウザアクセスを保護するには `--ui-password`、保存接続にラベルを付けるには `--name` を追加します。
|
||||
`connect-url` は、そのポートで何も実行されていなければ先にサーバーを起動します。ヘッドレスサーバーには `--api-only`、起動時に LAN にバインドするには `--lan`、ブラウザアクセスを保護するには `--ui-password`、保存接続にラベルを付けるには `--name` を追加します。ローカルネットワークの外でも使えるリンクには `--relay` を追加します。デバイスは到達可能なときは直接接続を優先し、外出先では [Private Relay](/private-relay/) にフォールバックします。リレーはインスタンスが自動的に立ち上げます。
|
||||
|
||||
生成されたリンクには OpenChamber アプリ用のクライアントトークンが含まれます。このトークンはブラウザ UI パスワードとは別で、取り消すか削除するまでサーバー再起動後も残ります。
|
||||
生成されたリンクには 1 回限りのペアリングシークレットが含まれます。インポートすると、デバイスは専用のクライアントトークンを保持します。これはブラウザ UI パスワードとは別で、発行元サーバーで無効化するまでサーバー再起動後も残ります。
|
||||
|
||||
## 関連
|
||||
|
||||
- [デバイスを接続する](/connect-devices/) — ペアリングリンク、QR コード、デバイス管理
|
||||
- [Private Relay](/private-relay/) — 「どこでも」接続の仕組み
|
||||
- [OpenCode サーバー](/opencode-server/) — Web または VS Code でリモートサーバーに接続する
|
||||
- [リモートアクセス](/troubleshooting/remote-access/) — 接続が完了しない場合
|
||||
|
||||
@@ -20,6 +20,8 @@ description: プロンプトをスケジュールに従って自動実行しま
|
||||
|
||||
任意のタスクは **run now** ですぐ実行でき、期待通り動くか確認できます。
|
||||
|
||||
**ゴールとして実行**にチェックすると、実行は1回の返信で止まらず、プロンプトを完了まで追求します — [セッションゴール](/session-goals/)を参照してください。
|
||||
|
||||
## 成功時の見え方
|
||||
|
||||
実行後、タスクには最後に実行された時刻、成功したかどうか、作成されたセッションへのリンクが表示されます。実行に失敗した場合は、エラーもそこに表示されます。
|
||||
|
||||
@@ -25,13 +25,20 @@ openchamber --ui-password be-creative-here
|
||||
|
||||
パスキーは現在のパスワードに紐づきます。パスワードを変更または削除すると、保存済みパスキーは消去され、再追加が必要になります。
|
||||
|
||||
## デバイストークン
|
||||
|
||||
[デバイスを接続する](/connect-devices/) でペアリングしたデバイスは、UI パスワードではなく、デバイスごとの専用トークンで認証します。ペアリングリンクは 1 回限りで、未使用なら期限切れになります。ペアリング済みのデバイスはすべて **Settings → Remote Instances → このサーバーに接続** に一覧表示され、いつでも無効化できます。外出先からの接続は [Private Relay](/private-relay/) を経由します。リレーはエンドツーエンドで暗号化されており、通信内容を読むことはできません。
|
||||
|
||||
## 公開する前に
|
||||
|
||||
- デフォルトでは、OpenChamber はあなたのマシン上(`127.0.0.1`)でのみ待ち受けます。より広く待ち受けるには明示的な変更が必要で、その前にパスワードを設定するべきです。
|
||||
- インターネットにポートを開けるより、[トンネル](/tunnels/) または VPN のようなプライベートネットワークを推奨します。
|
||||
- 自分のデバイスなら、[Private Relay](/private-relay/) を使った [ペアリング](/connect-devices/) を推奨します。何も公開されません。
|
||||
- 公開 URL が必要な場合は、インターネットにポートを開けるより、[トンネル](/tunnels/) または VPN のようなプライベートネットワークを推奨します。
|
||||
- OpenChamber を自分の HTTPS サーバーの背後に置く場合は、[リバースプロキシ](/reverse-proxy/) を参照してください。
|
||||
|
||||
## 関連
|
||||
|
||||
- [トンネル](/tunnels/) — インスタンスへリモートアクセスする推奨方法
|
||||
- [デバイスを接続する](/connect-devices/) — 1 回限りのペアリングとデバイスごとのトークン
|
||||
- [Private Relay](/private-relay/) — どこからでも使えるエンドツーエンド暗号化アクセス
|
||||
- [トンネル](/tunnels/) — 必要なときに公開 URL を用意する
|
||||
- [リバースプロキシ](/reverse-proxy/) — OpenChamber を自分のサーバー背後で実行する
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
---
|
||||
title: セッションゴール
|
||||
description: プロンプトをゴールに変え、エージェントが自動的に取り組み続けます。
|
||||
---
|
||||
|
||||
# セッションゴール
|
||||
|
||||
ゴールは、1つのプロンプトをゴールラインに変えます。返信のたびに「続けて」と促す代わりに、ゴールを一度設定するだけ — OpenChamber がセッションを自動的にゴールへ向かわせ、各ターンの後に独立した監査モデルで進捗を確認します。離席中でも動き続けます。
|
||||
|
||||
## ゴールを開始する
|
||||
|
||||
1. コンポーザーのターゲットボタンを押します。点灯すればゴールモードが準備完了です。
|
||||
2. プロンプトを書いて送信します。そのメッセージがゴールの目標になります。
|
||||
|
||||
既存のセッションでも新規セッションの下書きでも同じように機能します。ターゲットを有効にして最初のメッセージを書いて送信すれば、新しいセッションは最初からゴールが有効な状態で始まります。
|
||||
|
||||
### ゴールを開始する他の方法
|
||||
|
||||
- **エージェントの返信から**:「Start new session from this answer」ダイアログで **ゴールとして実行** にチェック — 返信が課題として引き継がれ、新しいセッションが完了まで実行します(**Create worktree** と組み合わせれば隔離された実行になります)。
|
||||
- **プランから**:保存したプランを新しいセッションや worktree で実装するとき、ダイアログの **ゴールとして実行** にチェック。ゴールの目標にはプランの内容が入るため、監査はプランそのものに照らして進捗を判定します。
|
||||
- **スケジュールで**:[スケジュールタスク](/scheduled-tasks/)の **ゴールとして実行** にチェックすると、定期実行がプロンプトを完了まで追求します。
|
||||
|
||||
## 自己完結した目標を書く
|
||||
|
||||
進捗の監査モデルが見るのは、あなたの目標とエージェントの最新の返信だけです — チャット履歴は見ません。会話の文脈を知らない人でも完成状態がわかるように、ゴールのメッセージを書いてください。
|
||||
|
||||
- 良い例:「エクスポートモジュールのテストを追加し、テストスイート全体を通るようにして。」
|
||||
- 良くない例:「直して」「さっきのアイデアで続けて」
|
||||
|
||||
ちょっとした文脈依存の指示にはゴールは不要です — 普通のメッセージを送りましょう。
|
||||
|
||||
## 仕組み
|
||||
|
||||
エージェントが停止してセッションがしばらく静かになると、OpenChamber は:
|
||||
|
||||
1. 小型で安価なモデルに、最新のターンを目標と照らして監査させます:続行、完了、それとも行き詰まり?
|
||||
2. 判定が「続行」なら、継続プロンプトを送り、エージェントが作業を再開します。
|
||||
3. 目標が検証可能な形で達成されていればゴールは完了し、通知が届きます。
|
||||
4. エージェントが本当に行き詰まっている(あなたの入力が必要な)場合、ゴールはブロックとして停止します — ただし監査が3回連続でそう判定した場合のみ。一度のつまずきでゴールが終わることはありません。
|
||||
|
||||
ハードな安全装置もあります:オプションのトークン予算、自動継続の上限、ターンエラー時の停止です。作業中にセッションのコンテキストが圧縮されても、ゴールはそのまま続行します — コンテキストウィンドウに達したこと自体が、作業が終わっていない証拠だからです。
|
||||
|
||||
### 停止と再開
|
||||
|
||||
- **停止ボタン**は実行中のターンを中断し、ゴールを一時停止します — あなたの明示的な「止めて」は常にループより優先されます。
|
||||
- ストリップの**一時停止**は逆方向から同じことをします:ゴールを一時停止し、実行中のターンを止めます。
|
||||
- 一時停止中は普通にチャットできます — ループは邪魔をしません。
|
||||
- **再開**はループを再始動します:アイドルなセッションでは継続プロンプトが即座に送られ、エージェントが作業中なら次の停止時にループが静かに再接続します。
|
||||
|
||||
## 確認と管理
|
||||
|
||||
- コンポーザー上部のストリップに、最新の進捗メモ、ステータス、トークン使用量が表示され、一時停止/再開ボタンも組み込まれています。エージェントが停止していてゴールがアクティブなときは、回転する**評価中…**が表示されます — 静止ウィンドウと監査が動いている印です。
|
||||
- ターゲットボタンはゴール実行中は点灯し(青)、完了で緑、ブロックや予算切れで赤になります。押すとゴールのダイアログが開き、目標や予算の編集、ゴールの削除ができます。完了したゴールは読み取り専用です — 削除してから新しいゴールを開始してください。
|
||||
- セッションサイドバーでは、セッションの日付の横にゴールの状態色の小さなターゲットが表示されます。
|
||||
|
||||
## 通知
|
||||
|
||||
ゴールがアクティブな間、ターンごとの「エージェント準備完了」通知は抑制されます — ループ自身の継続をなぞるだけだからです。ゴールが確定すると(完了、ブロック、予算到達)、代わりに最終通知が1件、デスクトップとモバイルプッシュで届きます。「完了時に通知」と同じ設定に従います。権限リクエスト、質問、エラー通知は通常どおり機能し続けます。
|
||||
|
||||
## トークン予算
|
||||
|
||||
**設定 → チャット → ゴール** で、新しいゴールのデフォルトトークン予算を設定できます。予算に達するとゴールは「予算上限に到達」として停止し、それ以上消費しません — 予算を上げてゴールのダイアログから再開できます。
|
||||
|
||||
## 留意点
|
||||
|
||||
- ゴールのループはブラウザのタブではなく OpenChamber サーバーで動きます。タブを閉じても、スマホをロックしても — エージェントは働き続け、ゴールが確定すると通知が届きます。サーバー(デスクトップアプリまたは `openchamber` プロセス)は起動したままにしてください。
|
||||
- ゴールはセッション自身のプロバイダーとモデルを使います。監査の呼び出しも同様です — 既に使っているプロバイダーの外にデータが出ることはありません。
|
||||
- ゴールは1セッションにつき同時に1つです。
|
||||
|
||||
## 関連
|
||||
|
||||
- [スケジュールタスク](/scheduled-tasks/) — スケジュールでプロンプトを実行。「ゴールとして実行」を有効にすると、スケジュール実行がプロンプトを完了まで追求します
|
||||
- [通知](/notifications/) — 完了したゴールを知る方法
|
||||
@@ -12,6 +12,15 @@ description: トンネル、リモートインスタンス、別デバイスか
|
||||
- 同じコンピューターで先に `http://localhost:3000` を開きます。失敗する場合はリモートの問題ではありません。[OpenCode 接続](/troubleshooting/opencode-connection/) を参照してください
|
||||
- `openchamber status` でサーバーが実行中であることを確認します
|
||||
|
||||
## ペアリング済みデバイスが接続しない
|
||||
|
||||
- QR コード / ペアリングリンクは **1 回限り** です。すでにスキャン済み(または期限切れ)の場合は、**デバイスを追加** から新しいものを作成してください
|
||||
- デバイスを **自宅ネットワークのみ** でペアリングした場合、そのネットワークの外からは接続できません。**どこでも** で再ペアリングしてください
|
||||
- **どこでも** のペアリングでは、サーバー側の **Settings → Remote Instances → OpenChamber Relay** を確認してください。**接続済み** と表示されているはずです。そうでなければ、いったん無効にしてから再度有効にします
|
||||
- デバイスを **無効化** した場合、そのトークンは完全に失効しています。新しい QR コードで再ペアリングしてください
|
||||
|
||||
これらの接続の仕組みは [デバイスを接続する](/connect-devices/) と [Private Relay](/private-relay/) を参照してください。
|
||||
|
||||
## トンネルリンクが動かない
|
||||
|
||||
- `openchamber tunnel status --all` を実行します
|
||||
@@ -34,5 +43,5 @@ OpenChamber をリバースプロキシの背後に置いていて、表示が
|
||||
|
||||
## 関連
|
||||
|
||||
- [トンネル](/tunnels/) · [リモートインスタンス](/remote-instances/) · [リバースプロキシ](/reverse-proxy/)
|
||||
- [デバイスを接続する](/connect-devices/) · [Private Relay](/private-relay/) · [トンネル](/tunnels/) · [リモートインスタンス](/remote-instances/) · [リバースプロキシ](/reverse-proxy/)
|
||||
- [セキュリティ](/security/) — 公開する前に UI を保護する
|
||||
|
||||
@@ -5,7 +5,9 @@ description: リモートおよびモバイルアクセス向けに OpenChamber
|
||||
|
||||
# トンネル
|
||||
|
||||
トンネルは OpenChamber への公開リンクです。スマートフォンや別ネットワークからアクセスできます。実行中のインスタンスに対して作成するには `openchamber tunnel` を使います。
|
||||
トンネルは OpenChamber への公開リンクです。別ネットワークの普通のブラウザからアクセスできます。実行中のインスタンスに対して作成するには `openchamber tunnel` を使います。
|
||||
|
||||
> **自分のデバイス**(モバイルアプリ、別のデスクトップ)の接続には、通常トンネルは不要です。代わりに [ペアリング](/connect-devices/) して、エンドツーエンド暗号化の [Private Relay](/private-relay/) にセットアップ不要で外出先アクセスを任せましょう。
|
||||
|
||||
## 前提条件
|
||||
|
||||
@@ -111,7 +113,8 @@ openchamber tunnel stop --port 3000
|
||||
|
||||
## 関連
|
||||
|
||||
- [デバイスを接続する](/connect-devices/) — 公開 URL なしで自分のデバイスをペアリングする
|
||||
- [セキュリティ](/security/) — 公開する前に UI を保護する
|
||||
- [デスクトップトンネル](/desktop-tunnels/) — CLI 起動なしでデスクトップアプリからトンネルを設定する
|
||||
- [PWA とモバイル](/mobile/) — スマートフォンから OpenChamber にアクセスする
|
||||
- [モバイルアプリと PWA](/mobile/) — スマートフォンから OpenChamber にアクセスする
|
||||
- [トラブルシューティング](/troubleshooting/) — トンネルリンクが動かない場合
|
||||
|
||||
@@ -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,39 @@
|
||||
---
|
||||
title: 에이전트 제어 도구
|
||||
description: 에이전트가 채팅에서 OpenChamber 세션, worktree, 예약 작업을 관리하도록 허용합니다.
|
||||
---
|
||||
|
||||
# 에이전트 제어 도구
|
||||
|
||||
`openchamber` 에이전트 도구를 사용하면 채팅에서 앱의 작업을 바로 관리할 수 있습니다. OpenChamber가 자체 로컬 OpenCode 서버를 실행할 때 기본으로 활성화되며, 별도 도구를 설치하거나 shell 명령을 실행할 필요가 없습니다.
|
||||
|
||||
## 요청할 수 있는 작업
|
||||
|
||||
자연어로 에이전트에게 요청하세요. 예를 들면 다음과 같습니다.
|
||||
|
||||
- “이 프로젝트에 새 OpenChamber 세션을 만들고 `openai/gpt-5.6-sol` 모델을 사용해서 다음 프롬프트를 보내 줘: 인증 흐름을 검토해.”
|
||||
- “이 작업을 위한 새 OpenChamber 세션을 별도의 worktree에 만들고 로그인 흐름 테스트를 추가하도록 요청해 줘.”
|
||||
- “OpenChamber를 사용해서 최근 세션 10개와 각 세션의 현재 상태를 보여 줘.”
|
||||
- “OpenChamber에 평일 검토라는 예약 작업을 만들고 평일마다 09:00에 다음 프롬프트를 보내 줘: 마지막 실행 이후의 변경 사항을 검토해.”
|
||||
- “평일 검토라는 OpenChamber 예약 작업을 지금 실행해 줘.”
|
||||
- “인증 검토라는 OpenChamber 세션을 확인하고 최신 어시스턴트 응답을 보여 줘.”
|
||||
|
||||
이 도구는 프로젝트와 모델 기본 설정을 나열하고, 세션을 만들거나 이어서 작업하고, 세션을 포크하고, 격리된 worktree 세션을 만들며, 예약 작업을 관리할 수 있습니다. 이렇게 시작한 세션도 일반 세션처럼 OpenChamber에 표시되므로 직접 열어 작업을 계속할 수 있습니다.
|
||||
|
||||
## 알아둘 점
|
||||
|
||||
- 새 세션 프롬프트는 기본적으로 즉시 반환됩니다. OpenChamber에서 세션을 확인하거나 나중에 에이전트에게 결과를 확인해 달라고 요청하세요.
|
||||
- 별도의 worktree는 요청한 경우에만 생성됩니다. 현재 worktree의 커밋하지 않은 변경 사항은 복사되지 않습니다.
|
||||
- 이 도구는 세션이나 worktree 삭제, 프로젝트 경로 등록, 임의의 shell 명령 실행 또는 임의 URL 호출을 할 수 없습니다.
|
||||
|
||||
## 도구 켜기 또는 끄기
|
||||
|
||||
**설정 → 일반 → OpenCode CLI**를 열고 **에이전트 제어 도구**를 변경한 다음 **Save + Reload**를 선택하세요. 관리형 OpenCode 서버가 다시 시작된 후 설정이 적용됩니다.
|
||||
|
||||
OpenChamber가 `OPENCODE_HOST` 또는 skip-start를 통해 외부 OpenCode 서버에 연결된 경우와 VS Code 확장에서는 이 도구를 사용할 수 없습니다. OpenChamber의 관리형 OpenCode 서버를 사용하는 데스크톱 및 웹 설치에서는 자동으로 지원됩니다.
|
||||
|
||||
## 관련 문서
|
||||
|
||||
- [예약 작업](/ko/scheduled-tasks/)
|
||||
- [Worktree 세션](/ko/worktrees/)
|
||||
- [세션 목표](/ko/session-goals/)
|
||||
@@ -0,0 +1,68 @@
|
||||
---
|
||||
title: 기기 연결
|
||||
description: 일회용 QR 코드로 휴대폰, 데스크톱, 다른 브라우저를 OpenChamber 서버와 페어링하세요.
|
||||
---
|
||||
|
||||
# 기기 연결
|
||||
|
||||
일회용 QR 코드를 스캔해 다른 기기(모바일 앱, 데스크톱 앱, 다른 컴퓨터의 브라우저)를 OpenChamber 서버와 페어링하세요. 기기를 연결하는 권장 방법이며, 열어야 할 포트도 입력할 주소도 없습니다.
|
||||
|
||||
## 기기 페어링하기
|
||||
|
||||
1. OpenChamber가 실행 중인 컴퓨터에서 **Settings → Remote Instances → 이 서버에 연결**을 열고 **기기 추가**를 누릅니다.
|
||||
2. 나중에 알아볼 수 있도록 기기 이름(예: *My iPhone*)을 지정합니다.
|
||||
3. 기기를 어디에서 사용할지 선택합니다.
|
||||
- **이 컴퓨터 전용** — 같은 컴퓨터에서 실행되는 앱용
|
||||
- **집 네트워크 전용** — Wi-Fi로 직접 연결하며, 이 네트워크 밖에서는 작동하지 않습니다
|
||||
- **어디서나** — 집에서도 밖에서도 작동합니다. 밖에서는 설정이 필요 없는 종단 간 암호화 터널인 [Private Relay](/ko/private-relay/)를 통해 연결됩니다
|
||||
4. **QR 코드 만들기**를 누릅니다.
|
||||
5. 다른 기기에서 코드를 스캔합니다.
|
||||
- **모바일 앱** — 연결 화면(또는 인스턴스 목록)에서 **QR 코드 스캔**을 탭합니다
|
||||
- **데스크톱 앱** — 대신 연결 링크를 복사해 **Settings → Remote Instances → 다른 OpenChamber 서버 → 링크 가져오기**에 붙여넣습니다
|
||||
|
||||
기기가 연결되는 즉시 대화 상자가 자동으로 닫히고, 기기가 실시간 상태와 함께 목록에 나타납니다. 이것으로 페어링 완료입니다.
|
||||
|
||||
## 페어링이 안전한 이유
|
||||
|
||||
- **QR 코드는 일회용입니다.** 기기가 코드를 사용하는 순간 더 이상 작동하지 않으며, 사용되지 않으면 저절로 만료됩니다.
|
||||
- **기기마다 고유한 토큰을 받습니다.** 코드를 스캔해도 UI 비밀번호는 절대 노출되지 않으며, 한 기기의 토큰으로 다른 기기를 사칭할 수 없습니다.
|
||||
- **제어권은 항상 사용자에게 있습니다.** 페어링된 모든 기기는 이름, 플랫폼, 연결 상태와 함께 목록에 표시되며, 언제든 어떤 기기든 해지할 수 있습니다.
|
||||
- **집 밖 트래픽은 종단 간 암호화됩니다.** **어디서나**를 선택하면 네트워크 밖의 트래픽은 [Private Relay](/ko/private-relay/)를 통해 전달되며, 릴레이는 지나가는 내용을 읽을 수 없습니다.
|
||||
|
||||
## 페어링된 기기 관리하기
|
||||
|
||||
**Settings → Remote Instances → 이 서버에 연결**에는 이 서버에 접근할 수 있는 모든 기기가 표시됩니다. 온라인이면 초록색 점이, 로컬 네트워크와 릴레이 중 어느 경로로 연결되어 있는지도 함께 표시됩니다.
|
||||
|
||||
- **해지**는 기기 접근을 즉시 차단합니다. 마음이 바뀌면 새 QR 코드로 다시 페어링하세요.
|
||||
- **해지된 항목 지우기**로 목록을 정리할 수 있습니다.
|
||||
|
||||
같은 기기가 나중에 다시 로그인해도 항목은 하나로 유지되므로 중복이 쌓이지 않습니다.
|
||||
|
||||
## 명령줄에서 연결하기
|
||||
|
||||
서버가 headless(UI가 열려 있지 않음)로 실행 중이면 그 컴퓨터의 터미널에서 연결 링크를 만드세요.
|
||||
|
||||
같은 네트워크의 기기라면:
|
||||
|
||||
```bash
|
||||
openchamber connect-url --port 3000 --qr
|
||||
```
|
||||
|
||||
**어디서든** 연결해야 하는 기기라면(대화 상자에서 **어디서나**를 선택하는 것과 동일):
|
||||
|
||||
```bash
|
||||
openchamber connect-url --relay --qr
|
||||
```
|
||||
|
||||
`--relay` 링크에는 대화 상자와 마찬가지로 두 경로가 모두 들어 있습니다. 기기가 서버에 도달할 수 있으면 로컬 네트워크로 직접 연결하고, 밖에 있으면 [Private Relay](/ko/private-relay/)로 대체합니다. 릴레이는 스스로 시작됩니다. 실행 중인 인스턴스는 1분 안에 링크를 인식하고, 멈춰 있는 인스턴스는 다음 실행 시 인식합니다.
|
||||
|
||||
> 직접 경로는 서버가 실제로 네트워크에서 수신 대기할 때만 작동합니다. 기본적으로 OpenChamber는 그 컴퓨터 자체에서만 수신 대기하므로, Wi-Fi에서 접근할 수 있게 하려면 `--lan`으로 시작하세요. 링크의 직접 경로를 다른 기기에서 사용할 수 없는 경우 명령이 경고(`[LAN_UNREACHABLE]`)를 표시합니다. 이때도 `--relay` 링크는 여전히 작동하며, 항상 릴레이를 통해 연결될 뿐입니다.
|
||||
|
||||
출력된 링크와 QR 코드는 설정 대화 상자에서 만든 것과 똑같이 작동합니다. 일회용이고, 만료되며, 해지할 수 있습니다.
|
||||
|
||||
## 관련 항목
|
||||
|
||||
- [Private Relay](/ko/private-relay/) — "어디서나" 연결의 작동 방식과 릴레이가 볼 수 있는 것과 없는 것
|
||||
- [모바일 앱](/ko/mobile/) — iOS 또는 Android 앱 설치
|
||||
- [원격 인스턴스](/ko/remote-instances/) — SSH나 링크로 데스크톱 앱을 서버에 연결
|
||||
- [원격 접속](/ko/troubleshooting/remote-access/) — 기기가 연결되지 않을 때
|
||||
@@ -1,31 +1,43 @@
|
||||
---
|
||||
title: PWA 및 모바일 접속
|
||||
description: OpenChamber를 앱으로 설치하고 휴대폰에서 사용하세요.
|
||||
title: 모바일 앱 & PWA
|
||||
description: iOS 또는 Android에 OpenChamber 앱을 설치하고 서버에 연결하세요.
|
||||
---
|
||||
|
||||
# PWA 및 모바일 접속
|
||||
# 모바일 앱 & PWA
|
||||
|
||||
OpenChamber 웹 앱은 휴대폰 앱(PWA)처럼 설치되므로 홈 화면에 두고 전체 화면으로 사용할 수 있습니다. [터널](/ko/tunnels/)과 함께 사용하면 어디서든 세션을 확인할 수 있습니다.
|
||||
OpenChamber에는 iPhone과 Android용 네이티브 앱이 있어 휴대폰에서 세션을 지켜보고, 에이전트에 답하고, 작업을 관리할 수 있습니다. 집에서는 Wi-Fi로, 밖에서는 [Private Relay](/ko/private-relay/)를 통해 어디서든 가능합니다.
|
||||
|
||||
## 설치하기
|
||||
## 앱 설치하기
|
||||
|
||||
OpenChamber는 브라우저의 내장 설치 기능을 사용하므로 별도의 다운로드가 없습니다.
|
||||
- **iPhone/iPad** — [TestFlight 베타](https://testflight.apple.com/join/5ek6GU1E)에 참여하세요
|
||||
- **Android** — [최신 릴리스](https://github.com/openchamber/openchamber/releases/latest)에서 APK를 다운로드하세요
|
||||
|
||||
- **데스크톱 브라우저** — 주소 표시줄의 **Install** 옵션을 사용합니다
|
||||
## 서버에 연결하기
|
||||
|
||||
1. OpenChamber가 실행 중인 컴퓨터에서 **Settings → Remote Instances → 이 서버에 연결**을 열고 **기기 추가**를 누릅니다.
|
||||
2. **어디서나**를 선택하고(휴대폰을 집에서만 쓸 거라면 **집 네트워크 전용**) **QR 코드 만들기**를 누릅니다.
|
||||
3. 모바일 앱에서 **QR 코드 스캔**을 탭하고 카메라를 코드에 향하게 합니다.
|
||||
|
||||
앱이 연결되고 서버를 기억합니다. QR 코드는 일회용이며 기기마다 해지 가능한 고유 토큰을 받습니다. 페어링이 안전한 이유는 [기기 연결](/ko/connect-devices/)을 참고하세요.
|
||||
|
||||
앱을 여러 서버와 페어링하고 인스턴스 목록에서 전환할 수 있습니다. 앱은 각 서버가 접근 가능한지, 로컬 네트워크와 릴레이 중 어느 경로로 연결되어 있는지 표시합니다.
|
||||
|
||||
## PWA (브라우저 설치)
|
||||
|
||||
앱 스토어를 전혀 거치고 싶지 않다면? 웹 앱을 브라우저에서 바로 설치할 수 있습니다:
|
||||
|
||||
- **데스크톱 브라우저** — 주소창의 **설치** 옵션을 사용하세요
|
||||
- **iPhone/iPad (Safari)** — 공유 → **홈 화면에 추가**
|
||||
- **Android (Chrome)** — 메뉴 → **앱 설치** / **홈 화면에 추가**
|
||||
|
||||
설치되면 브라우저 크롬 없이 자체 창에서 열립니다.
|
||||
|
||||
## 휴대폰에서 접근하기
|
||||
|
||||
서버가 사용자의 컴퓨터에서 실행될 때 휴대폰에서 OpenChamber를 열려면 [터널](/ko/tunnels/)을 시작하고 휴대폰에서 링크를 열거나 QR 코드를 스캔합니다. 이렇게 할 때는 항상 강력한 [UI 비밀번호](/ko/security/)를 사용하세요.
|
||||
네트워크 밖에서 PWA에 접근하려면 [터널](/ko/tunnels/)과 강력한 [UI 비밀번호](/ko/security/)가 필요합니다. 네이티브 앱은 릴레이를 통해 이를 알아서 처리합니다.
|
||||
|
||||
## 모바일 설정
|
||||
|
||||
**Settings → OpenChamber** 아래의 몇 가지 옵션은 모바일 및 설치된 경험을 조정합니다. 앱의 설치 이름, 화면 방향, 화면 키보드의 동작 방식이 해당됩니다.
|
||||
**Settings → OpenChamber**에서 몇 가지 옵션으로 모바일 및 설치된 앱 경험을 조정할 수 있습니다. 앱의 설치된 이름, 화면 방향, 화면 키보드 동작 등입니다.
|
||||
|
||||
## 관련 항목
|
||||
|
||||
- [Tunnels](/ko/tunnels/) — 다른 네트워크에서 인스턴스에 접근하세요
|
||||
- [Security](/ko/security/) — 노출하기 전에 UI를 보호하세요
|
||||
- [기기 연결](/ko/connect-devices/) — 페어링, 일회용 QR 코드, 기기 관리
|
||||
- [Private Relay](/ko/private-relay/) — "어디서나" 접속의 작동 방식
|
||||
- [보안](/ko/security/) — 노출하기 전에 UI를 보호하세요
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
---
|
||||
title: Private Relay
|
||||
description: 포트도, 터널도, 설정도 없이 종단 간 암호화 릴레이로 어디서든 OpenChamber 서버에 접속하세요.
|
||||
---
|
||||
|
||||
# Private Relay
|
||||
|
||||
OpenChamber Private Relay를 사용하면 페어링된 기기가 셀룰러, 카페 네트워크, 다른 도시 등 어디서든 서버에 접속할 수 있습니다. 포트를 열거나 터널을 설정하거나 컴퓨터를 인터넷에 노출할 필요가 없습니다. 릴레이는 스스로 관리됩니다. [기기 연결](/ko/connect-devices/)에서 **어디서나**로 기기를 페어링하기만 하면 됩니다.
|
||||
|
||||
## 작동 방식
|
||||
|
||||
서버가 OpenChamber 릴레이 인프라로 아웃바운드 연결을 열고 유지합니다. 기기가 네트워크 밖에 있으면 기기도 릴레이에 연결되고, 릴레이가 둘 사이의 암호화된 트래픽을 전달합니다. 컴퓨터에서 인터넷의 인바운드 연결을 수신 대기하는 것은 아무것도 없습니다.
|
||||
|
||||
직접 연결이 가능하면(같은 Wi-Fi로 집에 돌아왔을 때) 기기가 직접 연결을 우선하고 릴레이는 완전히 건너뜁니다.
|
||||
|
||||
## 릴레이가 볼 수 있는 것과 없는 것
|
||||
|
||||
릴레이는 중개자가 아니라 내용을 볼 수 없는 배달부입니다:
|
||||
|
||||
- **종단 간 암호화.** 기기와 서버가 서로 직접 암호화 키를 합의합니다. 릴레이는 키가 없는 봉인된 트래픽을 전달할 뿐이며, 코드도 프롬프트도 비밀번호도 읽을 수 없습니다.
|
||||
- **사용자의 기기만 연결할 수 있습니다.** 기기는 [일회용 페어링](/ko/connect-devices/)을 통해 *사용자의* 서버가 발급한 토큰을 가지고 있어야 합니다. 누구도 릴레이를 통해 서버를 발견하거나 사용자가 만든 토큰 없이 연결할 수 없으며, 어떤 토큰이든 언제든 해지할 수 있습니다.
|
||||
- **페어링 링크는 일회용입니다.** 페어링 QR 코드는 정확히 한 번만 작동하고 사용되지 않으면 만료되므로, 유출된 오래된 링크는 쓸모가 없습니다.
|
||||
- **직접 켜기 전까지는 아무것도 공유되지 않습니다.** 릴레이는 사용자가 켜거나 릴레이로 기기를 페어링하기 전까지 꺼져 있으며, 언제든 끌 수 있습니다. 끄면 릴레이를 통해 연결된 기기가 즉시 차단됩니다.
|
||||
|
||||
## 언제 실행되나요
|
||||
|
||||
릴레이는 자체적으로 수명 주기를 관리하므로 신경 써야 할 스위치가 없습니다:
|
||||
|
||||
- **필요할 때 시작됩니다.** **어디서나** 페어링을 만들면 릴레이가 켜지고, 페어링된 기기가 하나라도 릴레이에 의존하는 한 재시작 후에도 다시 올라옵니다.
|
||||
- **스스로 멈춥니다.** 릴레이를 사용하는 기기나 대기 중인 페어링이 없어지면(예: 릴레이로 페어링된 마지막 기기를 해지한 뒤) 자동으로 종료됩니다.
|
||||
|
||||
**Settings → Remote Instances → OpenChamber Relay**에는 실시간 상태(연결됨, 재연결 중, …)와 현재 릴레이를 통해 연결된 기기 수가 표시됩니다. 같은 곳에서 **끄기**를 눌러 릴레이 접근을 즉시 차단할 수도 있으며, 로컬 네트워크의 기기는 영향을 받지 않습니다.
|
||||
|
||||
## 릴레이와 터널, 무엇을 쓸까?
|
||||
|
||||
- 페어링된 자신의 기기에서 자신의 서버에 접속하려면 **릴레이**를 사용하세요. 설정이 전혀 필요 없고 아무것도 공개적으로 노출되지 않습니다.
|
||||
- 일반 **공개 URL**이 필요할 때는 [터널](/ko/tunnels/)을 사용하세요. 예를 들어 페어링할 수 없는 컴퓨터의 일반 브라우저에서 OpenChamber를 열거나, [UI 비밀번호](/ko/security/) 뒤에서 접근을 공유할 때입니다.
|
||||
|
||||
## 관련 항목
|
||||
|
||||
- [기기 연결](/ko/connect-devices/) — 일회용 QR 코드로 기기 페어링
|
||||
- [모바일 앱](/ko/mobile/) — iOS 또는 Android 앱 설치
|
||||
- [보안](/ko/security/) — 비밀번호, 패스키, 노출 기본 사항
|
||||
- [원격 접속](/ko/troubleshooting/remote-access/) — 연결이 완료되지 않을 때
|
||||
@@ -24,19 +24,25 @@ OpenChamber가 연결 확인, 원격 설정, 서버 시작, 포트 포워딩 단
|
||||
|
||||
SSH 및 UI 비밀번호를 저장할지, 매번 입력할지 결정합니다. 연결이 끊기면 OpenChamber가 어느 단계가 실패했는지 알려주므로 고칠 수 있습니다. [Remote access](/ko/troubleshooting/remote-access/)를 참고하세요.
|
||||
|
||||
## 직접 연결 링크
|
||||
## 연결 링크
|
||||
|
||||
원격 머신에서 OpenChamber가 이미 실행 중이면 그 머신에서 연결 링크를 만들고 **Settings → Remote Instances → Server links**에서 가져오세요:
|
||||
원격 머신에서 OpenChamber가 이미 실행 중이라면 데스크톱 앱을 연결하는 가장 쉬운 방법은 페어링 링크입니다. 원격 서버의 UI에서 **Settings → Remote Instances → 이 서버에 연결 → 기기 추가**를 열어 링크를 만들고, 데스크톱의 **Settings → Remote Instances → 다른 OpenChamber 서버 → 링크 가져오기**에서 가져오세요. 전체 흐름은 [기기 연결](/ko/connect-devices/)을 참고하세요.
|
||||
|
||||
**어디서나**로 만든 링크에는 직접 주소와 [Private Relay](/ko/private-relay/) 경로가 모두 들어 있습니다. 데스크톱이 서버에 도달할 수 있으면(같은 네트워크) 직접 연결하고, 밖에 있으면 종단 간 암호화 릴레이로 대체합니다. 저장된 각 서버 옆의 상태에 어느 경로가 사용 중인지 표시됩니다.
|
||||
|
||||
원격 머신의 터미널에서도 링크를 만들 수 있습니다:
|
||||
|
||||
```bash
|
||||
openchamber connect-url --port 3000 --server http://your-host:3000 --qr
|
||||
```
|
||||
|
||||
해당 포트에 서버가 없으면 `connect-url`이 먼저 서버를 시작합니다. Headless 서버에는 `--api-only`, 시작 시 LAN에 바인딩하려면 `--lan`, 브라우저 접근 보호에는 `--ui-password`, 저장된 연결 이름에는 `--name`을 사용하세요.
|
||||
해당 포트에 서버가 없으면 `connect-url`이 먼저 서버를 시작합니다. Headless 서버에는 `--api-only`, 시작 시 LAN에 바인딩하려면 `--lan`, 브라우저 접근 보호에는 `--ui-password`, 저장된 연결 이름에는 `--name`을 사용하세요. 로컬 네트워크 밖에서도 작동하는 링크가 필요하면 `--relay`를 추가하세요. 기기는 도달 가능할 때 직접 연결을 우선하고, 밖에서는 [Private Relay](/ko/private-relay/)로 대체합니다. 인스턴스가 릴레이를 알아서 올립니다.
|
||||
|
||||
생성된 링크에는 OpenChamber 앱용 client token이 들어 있습니다. 이 token은 브라우저 UI 비밀번호와 별개이며, 취소하거나 삭제하기 전까지 서버 재시작 후에도 유지됩니다.
|
||||
생성된 링크에는 일회용 페어링 시크릿이 들어 있습니다. 한 번 가져오면 기기는 브라우저 UI 비밀번호와 별개인 고유 client token을 갖게 되며, 발급한 서버에서 해지하기 전까지 서버 재시작 후에도 유지됩니다.
|
||||
|
||||
## 관련 항목
|
||||
|
||||
- [기기 연결](/ko/connect-devices/) — 페어링 링크, QR 코드, 기기 관리
|
||||
- [Private Relay](/ko/private-relay/) — "어디서나" 연결의 작동 방식
|
||||
- [OpenCode Server](/ko/opencode-server/) — 웹이나 VS Code에서 원격 서버에 연결하세요
|
||||
- [Remote access](/ko/troubleshooting/remote-access/) — 연결이 완료되지 않을 때
|
||||
|
||||
@@ -20,6 +20,8 @@ description: 일정에 따라 프롬프트를 자동으로 실행하세요.
|
||||
|
||||
**run now**로 작업을 즉시 실행하여 기대대로 동작하는지 확인할 수 있습니다.
|
||||
|
||||
**목표로 실행**을 체크하면 실행이 한 번의 답변에서 멈추지 않고 프롬프트를 완료까지 추진합니다 — [세션 목표](/session-goals/)를 참고하세요.
|
||||
|
||||
## 성공이란 어떤 모습인가
|
||||
|
||||
실행 후 작업에는 마지막 실행 시각, 성공 여부, 생성된 세션으로의 링크가 표시됩니다. 실행이 실패하면 오류도 거기에 표시됩니다.
|
||||
|
||||
@@ -25,13 +25,20 @@ openchamber --ui-password be-creative-here
|
||||
|
||||
패스키는 현재 비밀번호에 연결됩니다. 비밀번호를 변경하거나 제거하면 저장된 패스키가 삭제되며, 다시 추가해야 합니다.
|
||||
|
||||
## 기기 토큰
|
||||
|
||||
[기기 연결](/ko/connect-devices/)로 페어링된 기기는 UI 비밀번호가 아닌 기기별 고유 토큰으로 인증합니다. 페어링 링크는 일회용이며 사용되지 않으면 만료됩니다. 페어링된 모든 기기는 **Settings → Remote Instances → 이 서버에 연결**에 표시되며, 언제든 어떤 기기든 해지할 수 있습니다. 집 밖에서의 연결은 종단 간 암호화되어 트래픽을 읽을 수 없는 [Private Relay](/ko/private-relay/)를 통해 이루어집니다.
|
||||
|
||||
## 노출하기 전에
|
||||
|
||||
- 기본적으로 OpenChamber는 사용자 자신의 컴퓨터(`127.0.0.1`)에서만 수신 대기합니다. 더 넓게 수신 대기하려면 의도적인 변경이 필요하며, 먼저 비밀번호를 설정해야 합니다.
|
||||
- 인터넷에 포트를 여는 것보다 [터널](/ko/tunnels/)이나 사설 네트워크(예: VPN)를 선호하세요.
|
||||
- 자신의 기기라면 [Private Relay](/ko/private-relay/)를 통한 [페어링](/ko/connect-devices/)을 선호하세요. 아무것도 공개적으로 노출되지 않습니다.
|
||||
- 공개 URL이 필요하다면 인터넷에 포트를 여는 것보다 [터널](/ko/tunnels/)이나 사설 네트워크(예: VPN)를 선호하세요.
|
||||
- OpenChamber를 자체 HTTPS 서버 뒤에 둔다면 [Reverse Proxy](/ko/reverse-proxy/)를 참고하세요.
|
||||
|
||||
## 관련 항목
|
||||
|
||||
- [Tunnels](/ko/tunnels/) — 원격으로 인스턴스에 접근하는 권장 방법
|
||||
- [기기 연결](/ko/connect-devices/) — 일회용 페어링과 기기별 토큰
|
||||
- [Private Relay](/ko/private-relay/) — 어디서든 가능한 종단 간 암호화 접속
|
||||
- [Tunnels](/ko/tunnels/) — 필요할 때 공개 URL 노출
|
||||
- [Reverse Proxy](/ko/reverse-proxy/) — 자체 서버 뒤에서 OpenChamber 실행
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
---
|
||||
title: 세션 목표
|
||||
description: 프롬프트를 목표로 바꾸면 에이전트가 자동으로 계속 작업합니다.
|
||||
---
|
||||
|
||||
# 세션 목표
|
||||
|
||||
목표는 하나의 프롬프트를 결승선으로 바꿉니다. 답변이 올 때마다 "계속해"라고 재촉하는 대신 목표를 한 번만 설정하면 — OpenChamber가 세션을 자동으로 목표를 향해 이끌고, 매 턴이 끝날 때마다 독립적인 감사 모델로 진행 상황을 확인합니다. 자리를 비운 동안에도 계속 작동합니다.
|
||||
|
||||
## 목표 시작하기
|
||||
|
||||
1. 컴포저의 타깃 버튼을 누릅니다. 불이 켜지면 목표 모드가 준비된 것입니다.
|
||||
2. 프롬프트를 작성하고 전송합니다. 그 메시지가 목표가 됩니다.
|
||||
|
||||
기존 세션과 새 세션 초안 모두에서 동일하게 작동합니다. 타깃을 켜고 첫 메시지를 작성해 전송하면 — 새 세션이 목표가 이미 활성화된 상태로 시작됩니다.
|
||||
|
||||
### 목표를 시작하는 다른 방법
|
||||
|
||||
- **에이전트의 답변에서**: "Start new session from this answer" 대화 상자에서 **목표로 실행**을 체크 — 답변이 과제로 넘겨져 새 세션이 완료까지 실행합니다(**Create worktree**와 결합하면 격리된 실행이 됩니다).
|
||||
- **계획에서**: 저장된 계획을 새 세션이나 worktree에서 구현할 때 대화 상자의 **목표로 실행**을 체크하세요. 목표에 계획 내용이 담기므로 감사가 실제 계획을 기준으로 진행 상황을 판단합니다.
|
||||
- **일정에 따라**: [예약 작업](/scheduled-tasks/)에서 **목표로 실행**을 체크하면 반복 실행이 프롬프트를 완료까지 추진합니다.
|
||||
|
||||
## 자기 완결적인 목표 작성하기
|
||||
|
||||
진행 감사 모델은 목표와 에이전트의 최신 답변만 봅니다 — 채팅 기록은 보지 않습니다. 따라서 대화 맥락을 모르는 사람도 완료 상태가 어떤 모습인지 이해할 수 있도록 목표 메시지를 작성하세요.
|
||||
|
||||
- 좋은 예: "내보내기 모듈에 테스트를 추가하고 전체 테스트 스위트를 통과시켜."
|
||||
- 좋지 않은 예: "고쳐줘" 또는 "그 아이디어로 계속해."
|
||||
|
||||
작은 맥락적 후속 지시에는 목표가 필요 없습니다 — 그냥 일반 메시지를 보내세요.
|
||||
|
||||
## 작동 방식
|
||||
|
||||
에이전트가 멈추고 세션이 잠시 조용해지면 OpenChamber는:
|
||||
|
||||
1. 작고 저렴한 모델에게 최신 턴을 목표와 대조해 감사하게 합니다: 계속, 완료, 아니면 막힘?
|
||||
2. 판정이 "계속"이면 계속 프롬프트를 보내고 에이전트가 작업을 다시 시작합니다.
|
||||
3. 목표가 검증 가능하게 달성되면 목표가 완료되고 알림이 옵니다.
|
||||
4. 에이전트가 정말로 막혔다면(사용자의 입력이 필요하면) 목표는 차단됨으로 멈춥니다 — 단, 감사가 세 번 연속 그렇게 판정한 후에만요. 한 번의 걸림돌로 목표가 끝나는 일은 없습니다.
|
||||
|
||||
강제 안전장치도 있습니다: 선택적 토큰 예산, 자동 계속 횟수 상한, 턴 오류 시 중지. 작업 도중 세션 컨텍스트가 압축되어도 목표는 그냥 계속됩니다 — 컨텍스트 창에 부딪혔다는 것 자체가 작업이 끝나지 않았다는 증거이기 때문입니다.
|
||||
|
||||
### 중지와 재개
|
||||
|
||||
- **중지 버튼**은 실행 중인 턴을 중단하고 목표를 일시 중지합니다 — 당신의 명시적인 "멈춰"가 항상 루프보다 우선합니다.
|
||||
- 스트립의 **일시 중지**는 반대 방향에서 같은 일을 합니다: 목표를 일시 중지하고 실행 중인 턴을 멈춥니다.
|
||||
- 일시 중지 중에는 평소처럼 채팅하세요 — 루프가 끼어들지 않습니다.
|
||||
- **재개**는 루프를 다시 켭니다: 유휴 세션에서는 계속 프롬프트가 즉시 나가고, 에이전트가 작업 중이라면 다음 멈춤에서 루프가 조용히 다시 붙습니다.
|
||||
|
||||
## 확인 및 관리
|
||||
|
||||
- 컴포저 위의 스트립에 최신 진행 메모, 상태, 토큰 사용량이 표시되며, 일시 중지/재개 버튼이 함께 있습니다. 에이전트가 멈췄는데 목표가 활성 상태라면 스트립에 회전하는 **평가 중…**이 표시됩니다 — 조용한 대기 시간과 감사가 진행 중이라는 뜻입니다.
|
||||
- 타깃 버튼은 목표가 실행 중일 때 켜져 있고(파란색), 완료되면 초록색, 차단되거나 예산이 소진되면 빨간색이 됩니다. 누르면 목표 대화 상자가 열립니다: 목표나 예산을 편집하거나 목표를 제거하세요. 완료된 목표는 읽기 전용입니다 — 제거한 후 새 목표를 시작하세요.
|
||||
- 세션 사이드바에서 세션 날짜 옆에 목표 상태 색상의 작은 타깃이 나타납니다.
|
||||
|
||||
## 알림
|
||||
|
||||
목표가 활성 상태인 동안 턴마다 오는 "에이전트 준비 완료" 알림은 억제됩니다 — 루프 자체의 계속 실행을 되풀이할 뿐이기 때문입니다. 목표가 확정되면(완료, 차단, 예산 도달) 대신 최종 알림 하나가 데스크톱과 모바일 푸시로 옵니다. "완료 시 알림"과 같은 설정을 따릅니다. 권한 요청, 질문, 오류 알림은 평소처럼 계속 작동합니다.
|
||||
|
||||
## 토큰 예산
|
||||
|
||||
**설정 → 채팅 → 목표**에서 새 목표의 기본 토큰 예산을 설정할 수 있습니다. 목표가 예산에 도달하면 더 소비하지 않고 "예산 도달"로 멈춥니다 — 예산을 올리고 목표 대화 상자에서 재개할 수 있습니다.
|
||||
|
||||
## 유의 사항
|
||||
|
||||
- 목표 루프는 브라우저 탭이 아니라 OpenChamber 서버에서 실행됩니다. 탭을 닫든 휴대폰을 잠그든 — 에이전트는 계속 일하고, 목표가 확정되면 알림이 옵니다. 서버(데스크톱 앱 또는 `openchamber` 프로세스)는 계속 실행 중이어야 합니다.
|
||||
- 목표는 감사 호출을 포함해 세션 자체의 프로바이더와 모델을 사용합니다 — 이미 사용 중인 프로바이더 밖으로 나가는 것은 없습니다.
|
||||
- 세션당 목표는 한 번에 하나입니다.
|
||||
|
||||
## 관련
|
||||
|
||||
- [예약 작업](/scheduled-tasks/) — 일정에 따라 프롬프트 실행; "목표로 실행"을 켜면 예약 실행이 프롬프트를 완료까지 추진합니다
|
||||
- [알림](/notifications/) — 완료된 목표를 알게 되는 방법
|
||||
@@ -12,6 +12,15 @@ description: 터널, 원격 인스턴스, 다른 기기에서 OpenChamber에 접
|
||||
- 같은 컴퓨터에서 `http://localhost:3000`을 먼저 엽니다. 이것이 실패하면 원격 문제가 아닙니다. [OpenCode 연결](/ko/troubleshooting/opencode-connection/)을 참고하세요
|
||||
- `openchamber status`로 서버가 실행 중인지 확인합니다
|
||||
|
||||
## 페어링된 기기가 연결되지 않음
|
||||
|
||||
- QR 코드/페어링 링크는 **일회용**입니다. 이미 스캔되었거나 만료되었다면 **기기 추가**에서 새로 만드세요
|
||||
- 기기를 **집 네트워크 전용**으로 페어링했다면 그 네트워크 밖에서는 연결할 수 없습니다. **어디서나**로 다시 페어링하세요
|
||||
- **어디서나** 페어링이라면 서버의 **Settings → Remote Instances → OpenChamber Relay**를 확인하세요. **연결됨**으로 표시되어야 하며, 아니라면 껐다가 다시 켜세요
|
||||
- 기기가 **해지**되었다면 토큰은 영구히 사라진 것입니다. 새 QR 코드로 다시 페어링하세요
|
||||
|
||||
이 연결의 작동 방식은 [기기 연결](/ko/connect-devices/)과 [Private Relay](/ko/private-relay/)를 참고하세요.
|
||||
|
||||
## 터널 링크가 작동하지 않음
|
||||
|
||||
- `openchamber tunnel status --all`을 실행합니다
|
||||
@@ -34,5 +43,5 @@ OpenChamber를 리버스 프록시 뒤에 두었는데 이상하게 로드되거
|
||||
|
||||
## 관련 항목
|
||||
|
||||
- [Tunnels](/ko/tunnels/) · [Remote Instances](/ko/remote-instances/) · [Reverse Proxy](/ko/reverse-proxy/)
|
||||
- [기기 연결](/ko/connect-devices/) · [Private Relay](/ko/private-relay/) · [Tunnels](/ko/tunnels/) · [Remote Instances](/ko/remote-instances/) · [Reverse Proxy](/ko/reverse-proxy/)
|
||||
- [Security](/ko/security/) — 노출하기 전에 UI를 보호하세요
|
||||
|
||||
@@ -5,7 +5,9 @@ description: 원격 및 모바일 접근을 위해 OpenChamber를 안전하게
|
||||
|
||||
# 터널
|
||||
|
||||
터널은 OpenChamber로 연결되는 공개 링크로, 휴대폰이나 다른 네트워크에서 접근할 수 있게 해줍니다. 실행 중인 인스턴스에 터널을 만들려면 `openchamber tunnel`을 사용하세요.
|
||||
터널은 OpenChamber로 연결되는 공개 링크로, 다른 네트워크의 일반 브라우저에서 접근할 수 있게 해줍니다. 실행 중인 인스턴스에 터널을 만들려면 `openchamber tunnel`을 사용하세요.
|
||||
|
||||
> **자신의 기기**(모바일 앱, 다른 데스크톱)를 연결할 때는 보통 터널이 필요 없습니다. 대신 [기기를 페어링](/ko/connect-devices/)하고, 설정이 전혀 필요 없는 종단 간 암호화 [Private Relay](/ko/private-relay/)에 집 밖 접속을 맡기세요.
|
||||
|
||||
## 사전 요구 사항
|
||||
|
||||
@@ -111,6 +113,7 @@ openchamber tunnel stop --port 3000
|
||||
|
||||
## 관련 문서
|
||||
|
||||
- [기기 연결](/ko/connect-devices/) — 자신의 기기는 터널 대신 페어링하세요
|
||||
- [보안](/ko/security/) — 외부에 공개하기 전에 UI를 보호하세요
|
||||
- [데스크톱 터널](/ko/desktop-tunnels/) — CLI 시작 없이 데스크톱 앱에서 터널 설정
|
||||
- [PWA 및 모바일 접속](/ko/mobile/) — 휴대폰에서 OpenChamber에 접속하세요
|
||||
|
||||
@@ -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/) — 스몰 모델이 어디서 오는지
|
||||
@@ -1,25 +1,36 @@
|
||||
---
|
||||
title: PWA & Mobile Access
|
||||
description: Install OpenChamber as an app and use it from your phone.
|
||||
title: Mobile Apps & PWA
|
||||
description: Install the OpenChamber app on iOS or Android and connect it to your server.
|
||||
---
|
||||
|
||||
# PWA & Mobile Access
|
||||
# Mobile Apps & PWA
|
||||
|
||||
The OpenChamber web app installs like a phone app (a PWA), so you can keep it on your home screen and use it full-screen. Pair it with a [tunnel](/tunnels/) and you can check in on a session from anywhere.
|
||||
OpenChamber has native apps for iPhone and Android, so you can watch sessions, reply to agents, and manage work from your phone — at home over Wi-Fi or from anywhere over the [Private Relay](/private-relay/).
|
||||
|
||||
## Install it
|
||||
## Install the app
|
||||
|
||||
OpenChamber uses your browser's built-in install, so there's no separate download:
|
||||
- **iPhone/iPad** — join the [TestFlight beta](https://testflight.apple.com/join/5ek6GU1E)
|
||||
- **Android** — download the APK from the [latest release](https://github.com/openchamber/openchamber/releases/latest)
|
||||
|
||||
## Connect it to your server
|
||||
|
||||
1. On the computer running OpenChamber, open **Settings → Remote Instances → Connect to this server** and press **Add a device**.
|
||||
2. Pick **Anywhere** (or **Home network only** if you'll only use the phone at home) and press **Create QR code**.
|
||||
3. In the mobile app, tap **Scan QR code** and point the camera at it.
|
||||
|
||||
The app connects and remembers the server. The QR code is single-use and each device gets its own revocable token — see [Connect a Device](/connect-devices/) for how pairing stays safe.
|
||||
|
||||
You can pair the app with several servers and switch between them from the instances list; the app shows for each one whether it's reachable and whether you're connected over the local network or the relay.
|
||||
|
||||
## PWA (browser install)
|
||||
|
||||
Prefer no app store at all? The web app installs straight from the browser:
|
||||
|
||||
- **desktop browser** — use the **Install** option in the address bar
|
||||
- **iPhone/iPad (Safari)** — Share → **Add to Home Screen**
|
||||
- **Android (Chrome)** — menu → **Install app** / **Add to Home Screen**
|
||||
|
||||
Once installed, it opens in its own window without browser chrome.
|
||||
|
||||
## Reach it from your phone
|
||||
|
||||
To open OpenChamber on your phone when the server runs on your computer, start a [tunnel](/tunnels/) and open the link (or scan the QR code) on the phone. Use a strong [UI password](/security/) whenever you do this.
|
||||
To reach the PWA from outside your network you'll need a [tunnel](/tunnels/) and a strong [UI password](/security/) — the native apps handle this for you via the relay.
|
||||
|
||||
## Mobile settings
|
||||
|
||||
@@ -27,5 +38,6 @@ Under **Settings → OpenChamber**, a few options tune the mobile and installed
|
||||
|
||||
## Related
|
||||
|
||||
- [Tunnels](/tunnels/) — reach your instance from another network
|
||||
- [Connect a Device](/connect-devices/) — pairing, one-time QR codes, and managing devices
|
||||
- [Private Relay](/private-relay/) — how "Anywhere" access works
|
||||
- [Security](/security/) — protect the UI before exposing it
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
---
|
||||
title: Narzędzie sterowania dla agentów
|
||||
description: Pozwól agentowi zarządzać sesjami, worktree i zaplanowanymi zadaniami OpenChamber z czatu.
|
||||
---
|
||||
|
||||
# Narzędzie sterowania dla agentów
|
||||
|
||||
Użyj narzędzia agenta `openchamber`, aby zarządzać pracą w aplikacji bezpośrednio z czatu. Jest ono domyślnie włączone, gdy OpenChamber uruchamia własny lokalny serwer OpenCode; nie trzeba instalować osobnego narzędzia ani uruchamiać polecenia powłoki.
|
||||
|
||||
## O co możesz poprosić
|
||||
|
||||
Poproś agenta zwykłym językiem. Na przykład:
|
||||
|
||||
- „Utwórz nową sesję OpenChamber w tym projekcie, użyj modelu `openai/gpt-5.6-sol` i wyślij jej prompt: sprawdź proces uwierzytelniania”.
|
||||
- „Utwórz dla tego zadania nową sesję OpenChamber w osobnym worktree i poproś ją o dodanie testów procesu logowania”.
|
||||
- „Użyj OpenChamber, aby wyświetlić 10 moich ostatnich sesji wraz z ich bieżącym stanem”.
|
||||
- „Utwórz w OpenChamber zaplanowane zadanie o nazwie Przegląd w dni robocze, które o 09:00 w każdy dzień roboczy wyśle prompt: sprawdź zmiany od ostatniego uruchomienia”.
|
||||
- „Uruchom teraz zaplanowane zadanie OpenChamber o nazwie Przegląd w dni robocze”.
|
||||
- „Sprawdź sesję OpenChamber o nazwie Przegląd uwierzytelniania i pokaż najnowszą odpowiedź asystenta”.
|
||||
|
||||
Narzędzie może wyświetlać projekty i preferencje modeli, tworzyć i kontynuować sesje, rozwidlać sesję, tworzyć izolowane sesje worktree oraz zarządzać zaplanowanymi zadaniami. Uruchomione w ten sposób sesje pojawiają się w OpenChamber jak każde inne, więc możesz je otworzyć i samodzielnie kontynuować pracę.
|
||||
|
||||
## Pamiętaj
|
||||
|
||||
- Prompty nowych sesji domyślnie zwracają sterowanie od razu. Śledź sesję w OpenChamber lub poproś agenta, aby sprawdził ją później.
|
||||
- Osobny worktree jest tworzony tylko na Twoją prośbę. Niezatwierdzone zmiany z bieżącego worktree nie są do niego kopiowane.
|
||||
- Narzędzie nie może usuwać sesji ani worktree, rejestrować ścieżek projektów, uruchamiać dowolnych poleceń powłoki ani wywoływać dowolnych adresów URL.
|
||||
|
||||
## Włączanie i wyłączanie narzędzia
|
||||
|
||||
Otwórz **Ustawienia → Ogólne → OpenCode CLI**, zmień **Narzędzie sterowania dla agentów**, a następnie wybierz **Save + Reload**. Ustawienie zacznie działać po ponownym uruchomieniu zarządzanego serwera OpenCode.
|
||||
|
||||
Narzędzie nie jest dostępne, gdy OpenChamber łączy się z zewnętrznym serwerem OpenCode przez `OPENCODE_HOST` lub skip-start, ani w rozszerzeniu VS Code. Instalacje desktopowe i webowe korzystające z serwera OpenCode zarządzanego przez OpenChamber obsługują je automatycznie.
|
||||
|
||||
## Powiązane
|
||||
|
||||
- [Zaplanowane zadania](/pl/scheduled-tasks/)
|
||||
- [Sesje worktree](/pl/worktrees/)
|
||||
- [Cele sesji](/pl/session-goals/)
|
||||
@@ -0,0 +1,68 @@
|
||||
---
|
||||
title: Połącz urządzenie
|
||||
description: Sparuj telefon, komputer lub inną przeglądarkę ze swoim serwerem OpenChamber za pomocą jednorazowego kodu QR.
|
||||
---
|
||||
|
||||
# Połącz urządzenie
|
||||
|
||||
Sparuj inne urządzenie — aplikację mobilną, aplikację desktopową lub przeglądarkę na innej maszynie — ze swoim serwerem OpenChamber, skanując jednorazowy kod QR. To zalecany sposób łączenia urządzeń: nie ma portów do otwierania ani adresów do wpisywania.
|
||||
|
||||
## Sparuj urządzenie
|
||||
|
||||
1. Na maszynie z uruchomionym OpenChamber otwórz **Settings → Remote Instances → Połącz z tym serwerem** i naciśnij **Dodaj urządzenie**.
|
||||
2. Nadaj urządzeniu nazwę (np. *Mój iPhone*), by później je rozpoznać.
|
||||
3. Wybierz, gdzie będziesz go używać:
|
||||
- **Tylko ten komputer** — dla aplikacji działających na tej samej maszynie
|
||||
- **Tylko sieć domowa** — łączy się bezpośrednio przez Wi-Fi; nie działa poza tą siecią
|
||||
- **Wszędzie** — działa w domu i poza nim; poza domem ruch przechodzi przez [Private Relay](/pl/private-relay/), szyfrowany end-to-end tunel bez żadnej konfiguracji
|
||||
4. Naciśnij **Utwórz kod QR**.
|
||||
5. Na drugim urządzeniu zeskanuj kod:
|
||||
- **aplikacja mobilna** — stuknij **Skanuj kod QR** na ekranie łączenia (lub na liście instancji)
|
||||
- **aplikacja desktopowa** — zamiast tego skopiuj link połączenia i wklej go w **Settings → Remote Instances → Inne serwery OpenChamber → Importuj link**
|
||||
|
||||
Okno dialogowe zamknie się samo, gdy tylko urządzenie się połączy, a urządzenie pojawi się na liście z bieżącym statusem. To wszystko — jesteście sparowani.
|
||||
|
||||
## Dlaczego parowanie jest bezpieczne
|
||||
|
||||
- **Kod QR jest jednorazowy.** Przestaje działać w momencie, gdy urządzenie go wykorzysta, a jeśli nikt go nie użyje — sam wygasa.
|
||||
- **Każde urządzenie dostaje własny token.** Zeskanowanie kodu nigdy nie ujawnia Twojego hasła UI, a token jednego urządzenia nie pozwala podszyć się pod inne.
|
||||
- **Kontrola zostaje u Ciebie.** Każde sparowane urządzenie jest widoczne na liście z nazwą, platformą i statusem połączenia — możesz unieważnić dowolne z nich w każdej chwili.
|
||||
- **Ruch poza domem jest szyfrowany end-to-end.** Przy opcji **Wszędzie** ruch spoza Twojej sieci przechodzi przez [Private Relay](/pl/private-relay/), który nie może odczytać tego, co przez niego przepływa.
|
||||
|
||||
## Zarządzaj sparowanymi urządzeniami
|
||||
|
||||
**Settings → Remote Instances → Połącz z tym serwerem** pokazuje każde urządzenie, które może dotrzeć do tego serwera — z zieloną kropką, gdy jest online, oraz informacją, czy łączy się przez sieć lokalną, czy przez relay.
|
||||
|
||||
- **Unieważnij** natychmiast odcina urządzenie. Jeśli zmienisz zdanie, sparuj je ponownie nowym kodem QR.
|
||||
- **Wyczyść unieważnione** porządkuje listę.
|
||||
|
||||
To samo fizyczne urządzenie zachowuje jeden wpis, nawet jeśli zaloguje się ponownie później — duplikaty się nie mnożą.
|
||||
|
||||
## Połącz z wiersza poleceń
|
||||
|
||||
Jeśli serwer działa headless (bez otwartego UI), utwórz link połączenia z terminala na tej maszynie.
|
||||
|
||||
Dla urządzenia w tej samej sieci:
|
||||
|
||||
```bash
|
||||
openchamber connect-url --port 3000 --qr
|
||||
```
|
||||
|
||||
Dla urządzenia, które ma łączyć się **z dowolnego miejsca** — odpowiednik wybrania opcji **Wszędzie** w oknie dialogowym:
|
||||
|
||||
```bash
|
||||
openchamber connect-url --relay --qr
|
||||
```
|
||||
|
||||
Link `--relay` zawiera obie trasy, dokładnie jak okno dialogowe: urządzenie łączy się bezpośrednio przez sieć lokalną, gdy może dotrzeć do serwera, a poza domem przełącza się na [Private Relay](/pl/private-relay/). Relay uruchamia się sam: działająca instancja podejmuje link w ciągu minuty, a zatrzymana — przy następnym starcie.
|
||||
|
||||
> Trasa bezpośrednia działa tylko wtedy, gdy serwer rzeczywiście nasłuchuje w Twojej sieci. Domyślnie OpenChamber nasłuchuje wyłącznie na samej maszynie — uruchom go z `--lan`, aby był osiągalny przez Wi-Fi. Polecenie ostrzega (`[LAN_UNREACHABLE]`), gdy trasa bezpośrednia linku nie będzie użyteczna z innych urządzeń; link `--relay` nadal wtedy działa, tyle że zawsze przez relay.
|
||||
|
||||
Wypisany link i kod QR działają dokładnie tak samo jak te z okna ustawień — są jednorazowe, wygasają i można je unieważnić.
|
||||
|
||||
## Powiązane
|
||||
|
||||
- [Private Relay](/pl/private-relay/) — jak działają połączenia „Wszędzie" i co relay może, a czego nie może zobaczyć
|
||||
- [Aplikacje mobilne](/pl/mobile/) — zainstaluj aplikację na iOS lub Androida
|
||||
- [Zdalne instancje](/pl/remote-instances/) — połącz aplikację desktopową z serwerami przez SSH lub linki
|
||||
- [Dostęp zdalny](/pl/troubleshooting/remote-access/) — gdy urządzenie nie chce się połączyć
|
||||
@@ -1,25 +1,36 @@
|
||||
---
|
||||
title: PWA i dostęp z telefonu
|
||||
description: Zainstaluj OpenChamber jako aplikację i używaj go z telefonu.
|
||||
title: Aplikacje mobilne i PWA
|
||||
description: Zainstaluj aplikację OpenChamber na iOS lub Androidzie i połącz ją ze swoim serwerem.
|
||||
---
|
||||
|
||||
# PWA i dostęp z telefonu
|
||||
# Aplikacje mobilne i PWA
|
||||
|
||||
Aplikacja webowa OpenChamber instaluje się jak aplikacja na telefonie (PWA), więc możesz trzymać ją na ekranie głównym i używać jej na pełnym ekranie. Połącz to z [tunelem](/pl/tunnels/), a będziesz mógł zajrzeć do sesji z dowolnego miejsca.
|
||||
OpenChamber ma natywne aplikacje na iPhone'a i Androida, więc możesz obserwować sesje, odpowiadać agentom i zarządzać pracą z telefonu — w domu przez Wi-Fi lub z dowolnego miejsca przez [Private Relay](/pl/private-relay/).
|
||||
|
||||
## Zainstaluj ją
|
||||
## Zainstaluj aplikację
|
||||
|
||||
OpenChamber korzysta z wbudowanej instalacji Twojej przeglądarki, więc nie ma osobnego pobierania:
|
||||
- **iPhone/iPad** — dołącz do [bety TestFlight](https://testflight.apple.com/join/5ek6GU1E)
|
||||
- **Android** — pobierz APK z [najnowszego wydania](https://github.com/openchamber/openchamber/releases/latest)
|
||||
|
||||
## Połącz ją ze swoim serwerem
|
||||
|
||||
1. Na komputerze z uruchomionym OpenChamber otwórz **Settings → Remote Instances → Połącz z tym serwerem** i naciśnij **Dodaj urządzenie**.
|
||||
2. Wybierz **Wszędzie** (lub **Tylko sieć domowa**, jeśli będziesz używać telefonu tylko w domu) i naciśnij **Utwórz kod QR**.
|
||||
3. W aplikacji mobilnej stuknij **Skanuj kod QR** i skieruj aparat na kod.
|
||||
|
||||
Aplikacja łączy się i zapamiętuje serwer. Kod QR jest jednorazowy, a każde urządzenie dostaje własny, możliwy do unieważnienia token — zobacz [Połącz urządzenie](/pl/connect-devices/), aby dowiedzieć się, dlaczego parowanie jest bezpieczne.
|
||||
|
||||
Możesz sparować aplikację z kilkoma serwerami i przełączać się między nimi z listy instancji; aplikacja pokazuje dla każdego z nich, czy jest osiągalny i czy łączysz się przez sieć lokalną, czy przez relay.
|
||||
|
||||
## PWA (instalacja z przeglądarki)
|
||||
|
||||
Wolisz obejść się bez sklepu z aplikacjami? Aplikacja webowa instaluje się prosto z przeglądarki:
|
||||
|
||||
- **przeglądarka na komputerze** — użyj opcji **Install** w pasku adresu
|
||||
- **iPhone/iPad (Safari)** — Udostępnij → **Dodaj do ekranu początkowego**
|
||||
- **Android (Chrome)** — menu → **Zainstaluj aplikację** / **Dodaj do ekranu głównego**
|
||||
|
||||
Po zainstalowaniu otwiera się we własnym oknie, bez elementów przeglądarki.
|
||||
|
||||
## Dotrzyj do niej z telefonu
|
||||
|
||||
Aby otworzyć OpenChamber na telefonie, gdy serwer działa na Twoim komputerze, uruchom [tunel](/pl/tunnels/) i otwórz link (lub zeskanuj kod QR) na telefonie. Używaj silnego [hasła UI](/pl/security/), gdy tylko to robisz.
|
||||
Aby dotrzeć do PWA spoza swojej sieci, potrzebujesz [tunelu](/pl/tunnels/) i silnego [hasła UI](/pl/security/) — natywne aplikacje załatwiają to za Ciebie przez relay.
|
||||
|
||||
## Ustawienia mobilne
|
||||
|
||||
@@ -27,5 +38,6 @@ W **Settings → OpenChamber** kilka opcji dostraja działanie na telefonie i za
|
||||
|
||||
## Powiązane
|
||||
|
||||
- [Tunele](/pl/tunnels/) — dotrzyj do swojej instancji z innej sieci
|
||||
- [Połącz urządzenie](/pl/connect-devices/) — parowanie, jednorazowe kody QR i zarządzanie urządzeniami
|
||||
- [Private Relay](/pl/private-relay/) — jak działa dostęp „Wszędzie"
|
||||
- [Bezpieczeństwo](/pl/security/) — zabezpiecz UI przed udostępnieniem
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
---
|
||||
title: Private Relay
|
||||
description: Dotrzyj do swojego serwera OpenChamber z dowolnego miejsca przez szyfrowany end-to-end relay — bez portów, tuneli i konfiguracji.
|
||||
---
|
||||
|
||||
# Private Relay
|
||||
|
||||
OpenChamber Private Relay pozwala Twoim sparowanym urządzeniom dotrzeć do serwera z dowolnego miejsca — z sieci komórkowej, kawiarnianego Wi-Fi, innego miasta — bez otwierania portów, konfigurowania tunelu czy wystawiania maszyny do internetu. Zarządza sobą sam: wystarczy sparować urządzenie z opcją **Wszędzie** w [Połącz urządzenie](/pl/connect-devices/).
|
||||
|
||||
## Jak to działa
|
||||
|
||||
Twój serwer otwiera wychodzące połączenie do infrastruktury relay OpenChamber i utrzymuje je aktywne. Gdy jedno z Twoich urządzeń jest poza Twoją siecią, również łączy się z relayem, a relay przekazuje zaszyfrowany ruch między nimi. Nic na Twojej maszynie nie nasłuchuje na połączenia przychodzące z internetu.
|
||||
|
||||
Gdy dostępne jest połączenie bezpośrednie — jesteś z powrotem w domu, w tej samej sieci Wi-Fi — Twoje urządzenia wybierają je i całkowicie pomijają relay.
|
||||
|
||||
## Co relay może, a czego nie może zobaczyć
|
||||
|
||||
Relay to ślepy kurier, a nie pośrednik:
|
||||
|
||||
- **Szyfrowanie end-to-end.** Twoje urządzenie i Twój serwer uzgadniają klucze szyfrujące bezpośrednio między sobą. Relay przekazuje zapieczętowany ruch, do którego nie ma kluczy — nie może odczytać Twojego kodu, promptów ani haseł.
|
||||
- **Połączyć się mogą tylko Twoje urządzenia.** Urządzenie musi mieć token wydany przez *Twój* serwer w ramach [jednorazowego parowania](/pl/connect-devices/). Nikt nie odkryje Twojego serwera przez relay ani nie połączy się bez tokenu, który sam utworzyłeś — a każdy token możesz unieważnić w dowolnej chwili.
|
||||
- **Linki parowania są jednorazowe.** Kod QR do parowania działa dokładnie raz i wygasa, jeśli nie zostanie użyty, więc stary link, który wyciekł, jest bezwartościowy.
|
||||
- **Nic nie jest udostępniane, dopóki się nie zdecydujesz.** Relay pozostaje wyłączony, dopóki go nie włączysz lub nie sparujesz przez niego urządzenia, i możesz wyłączyć go w każdej chwili — urządzenia połączone przez relay są odcinane natychmiast.
|
||||
|
||||
## Kiedy działa
|
||||
|
||||
Relay sam zarządza swoim cyklem życia — nie ma przełącznika, o którym trzeba pamiętać:
|
||||
|
||||
- **Uruchamia się na żądanie.** Utworzenie parowania **Wszędzie** włącza relay, a po restarcie wraca on tak długo, jak długo korzysta z niego jakiekolwiek sparowane urządzenie.
|
||||
- **Zatrzymuje się sam.** Gdy żadne urządzenie ani oczekujące parowanie nie używa relaya — na przykład po unieważnieniu ostatniego sparowanego przez relay urządzenia — wyłącza się automatycznie.
|
||||
|
||||
**Settings → Remote Instances → OpenChamber Relay** pokazuje bieżący stan (Połączono, Ponowne łączenie, …) oraz liczbę aktualnie połączonych przez relay urządzeń. Możesz tam też nacisnąć **Wyłącz**, aby natychmiast odciąć dostęp przez relay; urządzenia w Twojej sieci lokalnej pozostają bez zmian.
|
||||
|
||||
## Relay czy tunel?
|
||||
|
||||
- Użyj **relaya**, aby docierać do własnego serwera z własnych sparowanych urządzeń. Zero konfiguracji i nic nie jest wystawione publicznie.
|
||||
- Użyj [tunelu](/pl/tunnels/), gdy potrzebujesz zwykłego **publicznego adresu URL** — na przykład by otworzyć OpenChamber w zwykłej przeglądarce na maszynie, której nie możesz sparować, albo udostępnić dostęp za [hasłem UI](/pl/security/).
|
||||
|
||||
## Powiązane
|
||||
|
||||
- [Połącz urządzenie](/pl/connect-devices/) — sparuj urządzenie jednorazowym kodem QR
|
||||
- [Aplikacje mobilne](/pl/mobile/) — zainstaluj aplikację na iOS lub Androida
|
||||
- [Bezpieczeństwo](/pl/security/) — hasła, klucze dostępu i podstawy udostępniania
|
||||
- [Dostęp zdalny](/pl/troubleshooting/remote-access/) — gdy połączenie nie chce się nawiązać
|
||||
@@ -24,19 +24,25 @@ OpenChamber przeprowadza przez kolejne kroki — sprawdzenie połączenia, skonf
|
||||
|
||||
Sam decydujesz, czy zapisać hasła SSH i UI, czy wpisywać je za każdym razem. Jeśli połączenie zostanie zerwane, OpenChamber zgłasza, który krok zawiódł, byś mógł to naprawić — zobacz [Dostęp zdalny](/pl/troubleshooting/remote-access/).
|
||||
|
||||
## Bezpośrednie linki połączenia
|
||||
## Linki połączenia
|
||||
|
||||
Jeśli zdalna maszyna już uruchamia OpenChamber, utwórz tam link połączenia i zaimportuj go w **Settings → Remote Instances → Server links**:
|
||||
Jeśli zdalna maszyna już uruchamia OpenChamber, najprostszym sposobem połączenia aplikacji desktopowej jest link parowania. W UI zdalnego serwera otwórz **Settings → Remote Instances → Połącz z tym serwerem → Dodaj urządzenie**, utwórz link i zaimportuj go na swoim komputerze w **Settings → Remote Instances → Inne serwery OpenChamber → Importuj link**. Pełny opis znajdziesz w [Połącz urządzenie](/pl/connect-devices/).
|
||||
|
||||
Link utworzony z opcją **Wszędzie** zawiera zarówno adres bezpośredni, jak i trasę przez [Private Relay](/pl/private-relay/): aplikacja desktopowa łączy się bezpośrednio, gdy może dotrzeć do serwera (ta sama sieć), a poza domem przełącza się na szyfrowany end-to-end relay. Status obok każdego zapisanego serwera pokazuje, która trasa jest używana.
|
||||
|
||||
Link możesz też utworzyć z terminala na zdalnej maszynie:
|
||||
|
||||
```bash
|
||||
openchamber connect-url --port 3000 --server http://your-host:3000 --qr
|
||||
```
|
||||
|
||||
`connect-url` najpierw uruchamia serwer, jeśli nic nie działa na tym porcie. Dodaj `--api-only` dla serwera headless, `--lan` aby nasłuchiwać w LAN przy starcie, `--ui-password` aby chronić dostęp z przeglądarki oraz `--name` aby nazwać zapisane połączenie.
|
||||
`connect-url` najpierw uruchamia serwer, jeśli nic nie działa na tym porcie. Dodaj `--api-only` dla serwera headless, `--lan` aby nasłuchiwać w LAN przy starcie, `--ui-password` aby chronić dostęp z przeglądarki oraz `--name` aby nazwać zapisane połączenie. Dodaj `--relay`, aby link działał także poza siecią lokalną: urządzenie preferuje połączenie bezpośrednie, gdy serwer jest osiągalny, a w przeciwnym razie przełącza się na [Private Relay](/pl/private-relay/) — instancja sama uruchomi relay.
|
||||
|
||||
Wygenerowany link zawiera token klienta dla aplikacji OpenChamber. Ten token jest osobny od hasła UI w przeglądarce i przetrwa restarty, dopóki go nie unieważnisz lub usuniesz.
|
||||
Wygenerowany link zawiera jednorazowy sekret parowania. Po zaimportowaniu urządzenie ma własny token klienta — osobny od hasła UI w przeglądarce — który przetrwa restarty serwera, dopóki nie unieważnisz go na serwerze, który go wydał.
|
||||
|
||||
## Powiązane
|
||||
|
||||
- [Połącz urządzenie](/pl/connect-devices/) — linki parowania, kody QR i zarządzanie urządzeniami
|
||||
- [Private Relay](/pl/private-relay/) — jak działają połączenia „Wszędzie"
|
||||
- [OpenCode Server](/pl/opencode-server/) — połącz się ze zdalnym serwerem w wersji webowej lub VS Code
|
||||
- [Dostęp zdalny](/pl/troubleshooting/remote-access/) — gdy połączenie nie chce się nawiązać
|
||||
|
||||
@@ -20,6 +20,8 @@ Zaplanowane zadanie uruchamia za Ciebie prompt według harmonogramu — na przyk
|
||||
|
||||
Dowolne zadanie możesz uruchomić natychmiast za pomocą **run now**, aby sprawdzić, czy robi to, czego oczekujesz.
|
||||
|
||||
Zaznacz **Uruchom jako cel**, aby uruchomienie doprowadziło prompt do końca zamiast zatrzymywać się po jednej odpowiedzi — zobacz [Cele sesji](/session-goals/).
|
||||
|
||||
## Jak wygląda sukces
|
||||
|
||||
Po uruchomieniu zadanie pokazuje, kiedy ostatnio się wykonało, czy się powiodło, oraz link do utworzonej sesji. Jeśli uruchomienie się nie powiedzie, błąd również jest tam pokazany.
|
||||
|
||||
@@ -25,13 +25,20 @@ Po ustawieniu hasła możesz dodać klucze dostępu (Face ID, Touch ID, klucz be
|
||||
|
||||
Klucze dostępu są powiązane z bieżącym hasłem. Jeśli zmienisz lub usuniesz hasło, zapisane klucze dostępu zostaną wyczyszczone i będziesz je dodawać ponownie.
|
||||
|
||||
## Tokeny urządzeń
|
||||
|
||||
Urządzenia sparowane przez [Połącz urządzenie](/pl/connect-devices/) uwierzytelniają się własnymi tokenami per urządzenie, a nie hasłem UI. Linki parowania są jednorazowe i wygasają, jeśli nie zostaną użyte; każde sparowane urządzenie jest widoczne w **Settings → Remote Instances → Połącz z tym serwerem**, gdzie w każdej chwili możesz unieważnić dowolne z nich. Połączenia spoza domu przechodzą przez [Private Relay](/pl/private-relay/), który jest szyfrowany end-to-end i nie może odczytać Twojego ruchu.
|
||||
|
||||
## Zanim ją udostępnisz
|
||||
|
||||
- Domyślnie OpenChamber nasłuchuje tylko na Twojej własnej maszynie (`127.0.0.1`). Nasłuchiwanie szerzej wymaga celowej zmiany i najpierw powinieneś ustawić hasło.
|
||||
- Preferuj [tunel](/pl/tunnels/) lub sieć prywatną (jak VPN) zamiast otwierania portu do internetu.
|
||||
- Dla własnych urządzeń preferuj [parowanie](/pl/connect-devices/) z [Private Relay](/pl/private-relay/) — nic nie jest wtedy wystawione publicznie.
|
||||
- Jeśli potrzebujesz publicznego adresu URL, preferuj [tunel](/pl/tunnels/) lub sieć prywatną (jak VPN) zamiast otwierania portu do internetu.
|
||||
- Jeśli umieszczasz OpenChamber za własnym serwerem HTTPS, zobacz [Reverse Proxy](/pl/reverse-proxy/).
|
||||
|
||||
## Powiązane
|
||||
|
||||
- [Tunele](/pl/tunnels/) — zalecany sposób na zdalne dotarcie do instancji
|
||||
- [Połącz urządzenie](/pl/connect-devices/) — jednorazowe parowanie i tokeny per urządzenie
|
||||
- [Private Relay](/pl/private-relay/) — szyfrowany end-to-end dostęp z dowolnego miejsca
|
||||
- [Tunele](/pl/tunnels/) — udostępnij publiczny URL, gdy go potrzebujesz
|
||||
- [Reverse Proxy](/pl/reverse-proxy/) — uruchom OpenChamber za własnym serwerem
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user