Was OAR offenlegt und was nicht
Diese Seite fasst an einer Stelle zusammen, was OAR offenlegt und was nicht. Jede Tatsache hat ihren eigentlichen Platz auf einer anderen Seite; jeder Abschnitt endet mit einem Link dorthin. Die Kurzfassung: Ein Relay handelt als du, das Zugriffstoken bedeutet volle Kontrolle darüber, und ein paar Links, die du erstellst, sind absichtlich öffentlich.
Das Vertrauensmodell #
Ein Relay läuft als Betriebssystembenutzer, und seine Agents laufen als dieser Benutzer mit dessen Rechten. Was immer du auf dem Rechner tun kannst, kann man einen Agent tun lassen. Nichts sperrt die Shell eines Agents ein. Ein Agent kann die Config-Datei lesen (und damit das Zugriffstoken), die Datenbank (mit den Provider-Keys und den Tokens gekoppelter Relays) und die Anmeldedateien der Provider. Das Zugriffstoken gibt die volle Kontrolle über das Relay und damit über das, was seine Agents tun können: Wer es hat, kann einen Agent Befehle auf dem Host ausführen lassen. OAR erweitert die Reichweite dieser Agents. Eine Sandbox fügt es nicht hinzu.
Die einzige Ausnahme ist Claude Cloud, dessen Agent auf einem Klon eines GitHub-Repositorys in einer Sandbox bei Anthropic arbeitet, nicht auf deinem Rechner (siehe Was deinen Rechner verlässt).
Was ein Agent anfassen darf #
Der Arbeitsordner ist der Ort, an dem ein Agent arbeitet. Er ist keine Mauer. Das erzwingt OAR und das nicht:
| OAR erzwingt | OAR erzwingt nicht |
|---|---|
workspace begrenzt, in welchen Ordnern eine Konversation gestartet werden kann und wohin sie mit Change CWD (Arbeitsordner ändern) wechseln kann. Ohne den Key ist jeder vorhandene Ordner erlaubt. |
Nichts sperrt die Shell eines Agents in den Arbeitsordner ein. Sie kann lesen und schreiben, wo immer der Benutzer des Relays das kann. |
| Relay-Modi sagen dem Agent, wie frei er handeln soll. Manche Provider erzwingen einen Teil davon: Die SDK-Engine von GitHub Copilot und OpenAI lehnt in plan alles ab, was nicht nur liest, und fragt in ask zuerst dich. | Claude und Neu in 0.9.17 DeepSeek führen in allen Modi jedes Tool aus, ohne dich zu fragen. Die Berechtigungsanfragen von Grok werden alle genehmigt. Auf der Extension-Engine prüft OAR keine Berechtigungen. Ein Modus ist dort eine Anweisung, der der Agent folgt. |
| Eine statische Preview kann nur einen Ordner innerhalb des Arbeitsordners ausliefern. | Die Allow-Liste prüft den Ordner Default (Standard) nicht, und sie begrenzt nicht, was du durchsuchen kannst. |
Details: Begrenzen, wo Chats starten dürfen, Relay-Modi und Agents und das Token.
Ohne Anmeldung erreichbar #
Alles, was deine Konversationen, Dateien, Einstellungen oder Agents liest oder ändert, braucht das Zugriffstoken. Das sind die Ausnahmen:
| Was | Was es offenlegt | Wie du es abschaltest |
|---|---|---|
| Die Anmeldeseite und die statische App | Die Web-App und ihr Anmeldefeld. Sie enthält keine deiner Daten. | Lässt sich nicht abschalten. Halte das Relay vom Internet fern (localhost) oder stell Zugriffsregeln davor. |
Ein geteilter Link (/) |
Der Verlauf der Konversation, nur lesend, mit dem Modell jeder Nachricht. Die Pfade des Relay-Hosts werden gefiltert (standardmäßig nur Dateinamen), und Nachrichten, die du ausgeblendet hast, werden nicht gesendet. Jedes Öffnen wird protokolliert. | Stop sharing (Teilen beenden) oder Renew link (Link erneuern) unter Settings → Sharing (Einstellungen → Teilen), oder lösch die Konversation. Die alte Adresse antwortet dann mit einem einfachen 404. Ein Link läuft nie ab. |
| Ein Preview-Link | Der Dev-Server oder Ordner in der Preview. Das zufällige Token des Links ist sein einziger Schutz. | Close (Schließen) für die Preview oder /. Die Lane ist aus, bis du sie einrichtest. Eine Preview übersteht einen Relay-Neustart und endet, wenn du sie schließt oder ihre Konversation löschst. |
Eine Cloudflare-Access-Anwendung vor dem Relay hält auch Betrachter eines
geteilten Links auf, sofern / und / nicht durchgelassen
werden; damit sind diese beiden Pfade absichtlich öffentlich
(Cloudflare Access).
Details: Deine geteilten Links, was ein Betrachter sieht, Previews und Was das Token braucht.
Was ein angemeldeter Browser erreicht #
Ein Browser mit dem Token kann jede Konversation auf dem Relay öffnen und hat den Dateibrowser. Unter Linux und macOS liefert die Laufwerkswurzel jede Datei aus, die der Benutzer des Relays lesen kann, ob im Arbeitsordner oder nicht. Umbenennen und Löschen wirken überall, wo dieser Benutzer schreiben darf, und Gelöschtes landet nicht in einem Papierkorb. Unter Windows ist der Browser auf die Laufwerke begrenzt, die das Relay auflistet. Die Medienroute, die die Bilder eines Agents zeigt, funktioniert genauso: Sie liefert jeden absoluten Pfad aus, den der Benutzer des Relays lesen kann, aber nur an eine Anfrage, die das Token trägt.
Details: Der Dateibrowser, Bilder und Medien.
Geheimnisse #
| Geheimnis | Wo es liegt |
|---|---|
| Das Zugriffstoken | config., im Klartext. Das Relay hält die Datei nur für den Besitzer lesbar. Ein Browser hat es ebenfalls, als Anmelde-Cookie. |
| Ein Token eines Cloudflare Tunnels | config. (cloudflared) oder die Umgebung. |
| API-Keys für OpenAI, Cursor, Neu in 0.9.17 DeepSeek und Neu in 0.9.18 Claude API | Die Datenbank. Sie werden nie an Browser gesendet. Jeder erreicht nur die Worker seines eigenen Providers; der DeepSeek-Key verlässt den Rechner nur zur DeepSeek-Basis-URL, der Claude-API-Key nur zu https://. |
| Das Token eines gekoppelten Relays | Die Datenbank. Es wird nie an Browser oder Agents gesendet. |
| Tokens geteilter Links, Push-Keys | Die Datenbank. |
| Anmeldungen bei Claude, Grok und GitHub Copilot | Die eigenen Ordner der Provider auf dem Rechner (~/., ~/., die Anmeldung der Copilot CLI). OAR speichert keine davon. DeepSeek-Chats nutzen keine davon. Neu in 0.9.18 Claude-API-Chats teilen den Claude-Ordner, laufen aber mit dem gespeicherten Key, nicht mit der Anmeldung. |
Ein Claude-Anmeldetoken in der Umgebung des Relays (CLAUDE_) |
Neu in 0.9.17 Wird auf jeder Plattform nur an Claude- und Claude-Cloud-Worker übergeben. Vorher konnten es auch andere Worker bekommen. |
Ein Anthropic-Key oder -Token in der Umgebung des Relays (ANTHROPIC_, ANTHROPIC_) |
Neu in 0.9.17 Wird an keinen Worker übergeben. Vorher bekam ihn jeder Worker, und ein Claude-Chat lief damit statt mit der Claude-Anmeldung. Neu in 0.9.18 Ein Claude-Chat im Abo, der mit einem API-Key aus den eigenen Einstellungen von Claude Code startet, wird ebenfalls gestoppt; siehe Claude. |
Agents laufen als derselbe Benutzer wie das Relay. Dateirechte, die „nur
Besitzer“ sagen, halten einen Agent daher nicht draußen: Er kann config.,
die Datenbank und die Provider-Ordner lesen. Nichts in OAR verbirgt sie vor ihm.
Die eigenen Worker des Relays und die Tools, mit denen Agents das Relay
erreichen, lesen das Zugriffstoken aus config.. relay_ gibt einem
Agent nie das Token eines anderen Relays: Der Aufruf läuft über dein Relay, das
das Token hinzufügt. Ein Agent könnte dieses Token trotzdem aus der Datenbank
lesen. Ein Backup der Datenbank enthält die Keys und Tokens oben, also halte es
so privat wie den Zustandsordner.
Neu in 0.9.17 Der Agent eines DeepSeek-Chats kann den DeepSeek-Key aus seiner
Umgebung lesen. Das Relay ersetzt den Key durch [redacted] in allem, was ein
Session-Worker schickt, bevor es das speichert oder anzeigt; das hält ihn aus
dem Verlauf heraus, hält aber keinen Agent auf, der den Key haben will. Siehe
Wo der Key aufbewahrt wird.
Neu in 0.9.18 Dasselbe gilt für den Claude-API-Key in einem Claude-API-Chat. Dieser Chat teilt den Claude-Ordner, in dem deine Claude-Anmeldung liegt; deshalb setzt das Relay den gespeicherten Key fest über alle Zugangsdaten in dessen Einstellungen und stoppt einen Turn, dessen Claude Code eine andere Quelle für seinen Key meldet. Claude Code schickt seine erste Modellanfrage einen Moment nach dieser Meldung, also kann eine Modellanfrage vor dem Stopp schon mit den anderen Zugangsdaten hinausgegangen sein: Die Prüfung begrenzt falsche Zugangsdaten auf diese eine Modellanfrage, verhindert sie aber nicht. Siehe Claude API → Sicherheit.
Neu in 0.9.18 In DeepSeek- und Claude-API-Chats, die mit einem Key laufen, den das Relay hält, startet Claude Code mit allen Hooks und der Statuszeile abgeschaltet, deinen und denen des Chat-Ordners, damit sie nicht mit dem Key in ihrer Umgebung laufen können. Hooks in verwalteten Einstellungen laufen weiterhin. Chats mit deiner Claude-Anmeldung behalten ihre.
Neu in 0.9.17 Ein Relay, das aus einer Claude-Code-Session heraus gestartet wurde (etwa aus der Shell eines Agents), gibt die Variablen dieser Session, darunter ihre Session-ID, ihren Messaging-Socket und ihr Token, nicht mehr an seine Worker weiter. Siehe Ein Relay, das aus Claude Code heraus gestartet wurde.
Details: Wo Geheimnisse liegen, Welche Variablen die Worker der Agents erreichen.
Zwischen Relays #
Die Kopplung kann ein Token übergeben: Braucht das andere Relay ein anderes Token, um deins zurückzurufen, trägt die Vorstellung deins mit, und das Entfernen der Kopplung widerruft es nicht. Die Stufe Agents may (Agents dürfen) und Accept prompts from other relays' agents (Prompts von Agents anderer Relays annehmen) begrenzen, was Agents über das Tool tun, nicht, was ein Token-Inhaber direkt tut. Die Stufen sind Read only (Nur lesen), Read and prompt (Lesen und Prompts senden) und Full (Vollzugriff); neue Kopplungen beginnen mit Full. Ein gekoppeltes Relay ist in einer Konversation gesperrt, bis du es erwähnst. Ein Prompt, der zwei Relays durchlaufen hat, wird nicht an ein drittes weitergegeben, und nach 30 Prompts ohne eine Nachricht von dir fragt dich der nächste auf einer Karte.
Details: Remote-Relays und Kopplung.
Zwischen Agents auf einem Relay #
Agent-Sessions sind standardmäßig aus. Schaltest du sie ein, muss ein Agent dich fragen, bevor er seine erste Session in einer Konversation startet, höchstens 4 seiner Sessions dürfen gleichzeitig arbeiten, und eine Session, die ein Agent gestartet hat, kann selbst keine Sessions starten. In den Modi ask und plan fragt jede Schreibaktion zuerst.
Beantworte Freigabekarten mit ihren Buttons. Auf den eigenen Freigabekarten von
OAR genehmigt nur das Wort Allow, in beliebiger Groß- und Kleinschreibung.
Jeder andere Text, den du tippst, lehnt ab, und der Agent bekommt daraus keine
Begründung.
Details: Agent-Sessions und Freigabekarten.
Netzwerk #
- Wer sich verbinden kann.
localhostist standardmäßigOnly trueund bindet das Relay an127.. Jeder andere Wert bindet alle Schnittstellen, und das Relay prüft nicht, woher eine Anfrage kommt. LAN-Zugriff ist einfaches0. 0. 1 http, das Token geht also unverschlüsselt durch dein Netzwerk (Wer sich verbinden kann). - Tunnel. Außerhalb deines Netzwerks nimm HTTPS über einen Tunnel oder Proxy: SSH-Tunnel, Cloudflare Tunnel, Reverse Proxy.
- Anmeldung. Neu in 0.9.11 Zehn falsche Tokens von einer Adresse innerhalb
einer Minute sperren diese Adresse für den Rest der Minute (
429), und die Ablehnung wird protokolliert. Anfragen vom eigenen Rechner des Relays, die nichts weitergeleitet hat, werden nie gesperrt. Die Sperre bremst das Raten; der Schutz bleibt ein langes, zufälliges Token. Das Cookie ist HttpOnly und gilt 30 Tage (Schutz). - Ein Token in einer Adresse.
?token=funktioniert nur bei der Seitenadresse; die Seite meldet sich mit einem Header an und entfernt es. Diese erste Adresse kann trotzdem im Browserverlauf und in den Logs eines Proxys oder Tunnels landen (Wege, es vorzulegen). - Die Live-Verbindung. Neu in 0.9.11 Sie nimmt einen Browser nur vom
eigenen Origin des Relays an, sodass eine Seite auf einer anderen Website
dein Anmelde-Cookie nicht dafür nutzen kann. Hinter einem Proxy, der den
Header
Hostumschreibt, trag den öffentlichen Origin inallowedein.Origins - Weitergeleitete Header. Neu in 0.9.11
X-,Forwarded- For X-,Forwarded- Host X-undForwarded- Proto X-zählen nur von einem Proxy, dem das Relay überReal- IP trustvertraut, standardmäßig einem auf Loopback. Die Client-Adresse (Sperre, Rate-Limits, das Zugriffsprotokoll geteilter Links) sowie Host und Schema neuer geteilter Links werden darüber gelesen, sodass ein direkter Client sie nicht wählen kann.Proxy - Neustart und Queue leeren. Der Neustart, das Abbrechen eines Neustarts und Empty queue (Queue leeren) brauchen nur das Token, von jedem Gerät aus. Wenn Nutzer aus der Ferne sie nicht nutzen dürfen, lehne sie am Proxy ab (Endpunkte, die nur der Rechner des Relays nutzen darf).
- Der Pfadschutz des Session-Workers. Der Pfad, den die Worker deiner
Agents nutzen, und das Ausführen von Bildoperationen antworten nur einem
Loopback-Peer, dessen Anfrage keinen Tunnel-Marker (
cf-oder einen ausray tunnel) und keinMarker Headers X-,Forwarded- For ForwardedoderX-trägt. Ein Weiterleiter, der nichts davon hinzufügt, etwa ein SSH-Reverse-Tunnel, sieht lokal aus; dann schützt nur das Token den Pfad (Pfadschutz).Real- IP - Das Token des Cloudflare Tunnels. Es wird
cloudflaredin der Befehlszeile übergeben, also können andere Benutzer des Rechners es in der Prozessliste sehen (Cloudflare Tunnel). - Aufräumen beim SSH-Tunnel.
auto(standardmäßig an) beendet den Prozess deiner SSH-Anmeldung, der den Remote-Port hält;Reclaim Port reclaimbeendet dort außerdem deine untätigen SSH-Sessions (Remote-Port belegt).Stale Ssh Sessions
Was deinen Rechner verlässt #
OAR hat keine Telemetrie. Das Relay sendet keine Nutzungsdaten an OAR oder an irgendwen sonst. Es kontaktiert diese Hosts, und nur aus diesen Gründen:
- oar.sh, nur wenn du zustimmst. Check for updates automatically
(Automatisch nach Updates suchen) unter Settings → General (Einstellungen
→ Allgemein) ist standardmäßig aus. Schaltest du es ein, fragt das Relay
https://sofort ab, bei jedem Start und dann etwa alle 12 Stunden. Die Anfrage ist ein einfachesoar. sh/ latest. json GETmitAccept: application/und, sobald es eine Antwort gibt,json If-. Sie trägt keine Version, kein Token, kein Konto und keine Informationen über den Rechner. Der Button Check for updates (Nach Updates suchen) undNone- Match oar updateohne--tolesen dieselbe Datei.OAR_in der Umgebung des Relays stoppt das alles. Siehe Die Update-Prüfung.NO_ UPDATE_ CHECK= 1 - npm, wenn du aktualisierst.
npm install -gspricht mit der npm-Registry. - Jeder Provider, bei jedem Turn. Deine Nachrichten und alles, was der Agent für die Aufgabe liest, gehen an den Provider hinter der Konversation: GitHub Copilot, OpenAI (oder die Basis-URL, die du setzt), Claude, Claude API, Cursor, Grok oder DeepSeek (oder die Basis-URL, die du setzt). Es gelten deren Bedingungen, nicht die von OAR.
- DeepSeek. Neu in 0.9.17 Das Relay sendet den DeepSeek-Key an
https://oder an die Basis-URL, die unter Advanced (Erweitert) in Settings → Providers → DeepSeek (Einstellungen → Provider → DeepSeek) gesetzt ist (api. deepseek. com httpsoderhttpnur auf demselben Rechner), und an keinen anderen Host: um die Modelle aufzulisten, wenn du den Key oder die Basis-URL speicherst oder die Liste in 🤗 Select Models (Modelle auswählen) aktualisierst, und um das Guthaben zu lesen (unten). Das Claude Code eines DeepSeek-Chats schickt seine Turns an/unter dieser Adresse, mit demselben Session-Kontext wie jeder Claude-Code-Chat. OAR schaltet den eigenen Verkehr von Claude Code zu Anthropic ab (Updates, Telemetrie). Siehe DeepSeek.anthropic - Claude API. Neu in 0.9.18 Das Relay sendet den Claude-API-Key an
https://und an keinen anderen Host: um die Modelle des Keys aufzulisten, wenn du ihn speicherst, Claude API einschaltest oder die Liste aktualisierst. Das Claude Code eines Claude-API-Chats schickt seine Turns mit dem Key dorthin. Siehe Claude API.api. anthropic. com - Claude Cloud. Der Agent läuft bei Anthropic, auf einem Klon deines
Repositorys. Das Relay sendet das Claude-Anmeldetoken an
https://und an keinen anderen Host. Siehe Claude Cloud.api. anthropic. com - Plan-Verbrauch, wenn du Check Usage öffnest. Das Relay liest deine Konten
mit den Anmeldungen, die es auf dem Rechner findet: GitHub
(
api., mitgithub. com GH_,TOKEN GITHUB_oder der Anmeldung vonTOKEN gh), Grok (cli-, mit der Anmeldung der Grok CLI), Anthropic (bei eingeschaltetem Claude Cloud), Neu in 0.9.17 DeepSeek (das Guthaben, an der DeepSeek-Basis-URL mit dem gespeicherten Key, solange DeepSeek an ist) und, nur wenn du ein Dashboard-Session-Token eingegeben hast,chat- proxy. grok. com cursor.. Siehe Check Usage.com - GitHub Actions. Für die Prüfung vor dem Ruhezustand führt das Relay
gh run listfür die Repositorys deiner Arbeitsordner aus (Host-Ruhezustand). - Gekoppelte Relays. Was ein Agent über
relay_schickt, geht an die Adresse jenes Relays, mit dessen Token (Remote-Relays).tool - Installer der Provider, wenn du bestätigst. Install (Installieren)
für Claude oder Grok führt das eigene Installer-Skript des Providers
(
claude.,ai x.) als Benutzer des Relays aus (Claude, Grok).ai - Push-Benachrichtigungen. Sie laufen über den Push-Dienst des Herstellers deines Browsers, und der Text ist allgemein gehalten, sofern du nichts anderes wählst (Was eine Benachrichtigung zeigt).
Dein Browser, nicht das Relay, lädt die Bibliotheken für Markdown, Mathematik
und Syntaxhervorhebung von cdn. (Markdown, Mathematik, Terminal)
und cdnjs. (Hervorhebung), jedes Mal, wenn er die App öffnet.
Die Terminalansicht einer tmux-Session lädt ihre Terminal-Bibliothek von
unpkg., wenn cdn. fehlschlägt. Diese Hosts sehen die Anfrage
jedes Browsers, der die App öffnet. Siehe
Bilder, Medien und Formeln.
Logs #
Das Relay kopiert seine Konsole nach logs/ im
Zustandsordner, mit einem Zeitstempel pro Zeile. Die Datei rotiert bei 5 MB,
und drei ältere Dateien bleiben erhalten. Bevor eine Zeile geschrieben wird,
ersetzt das Relay dein Zugriffstoken und jeden Wert nach ?token= oder
&token= durch [token]. OAR_ schaltet die Datei ab. Ein
einzelnes falsches Token wird nicht protokolliert; eine gesperrte Adresse
schon, mit einer Zeile, die mit [auth] beginnt. Eine Preview wird mit einem
kurzen Hash benannt, nie mit ihrem Token. Ein Lesezugriff auf einen geteilten Link
wird mit der Adresse des Betrachters protokolliert oder mit not stored, wenn
Store viewer IP addresses (IP-Adressen der Betrachter speichern) aus ist.
Die Worker-Logs (worker-<session>.) enthalten die Ausgabe jedes
Session-Workers und werden von den Workern geschrieben, nicht über diese
Maskierung. Dateien gelöschter Konversationen bleiben. Ein Reverse Proxy oder
Tunnel vor dem Relay führt eigene Logs, die ?token=-Adressen enthalten
können, und der verwaltete Cloudflare Tunnel zeigt sein Token als
<redacted>. Behandle alle Logs als privat und lies sie, bevor du sie irgendwo
postest.
Details: Logs.
Bevor du ein Relay offenlegst #
- Halte das Token zufällig und aus Adressen heraus, die du teilst. Ist es
durchgesickert, führ
oar setup --new-aus; das meldet jedes Gerät ab und sperrt gekoppelte Relays aus.token - Erreiche das Relay über HTTPS: einen Tunnel oder einen Reverse Proxy. Lass
localhostan, wenn der Proxy oder Tunnel auf demselben Rechner läuft.Only - Hinter einem Proxy auf einem anderen Rechner setz
trustauf ihn undProxy allowed, wenn erOrigins Hostumschreibt (Ein Proxy auf einem anderen Rechner). Ein Weiterleiter, der gar keinen Header hinzufügt, braucht einen Marker-Header intunnel. Wenn Nutzer aus der Ferne das Relay nicht neu starten dürfen, lass den Proxy diese Endpunkte ablehnen.Marker Headers - Lass das Relay als Benutzer laufen, dessen Rechte, Dateien und Anmeldungen
du den Agents geben würdest. Setz
workspace, wenn Konversationen nur in bestimmten Ordnern starten sollen, und denk daran, dass das keine Shell einsperrt.Root Allow List - Teile eine Konversation erst, nachdem du sie mit Preview as shared (Ansicht wie geteilt) gelesen hast, und blende aus, was nicht hinein darf. Das Filtern von Pfaden ist in freiem Text nur ein bestmöglicher Versuch. Beende Links, die du nicht mehr brauchst, unter Settings → Sharing.
- Veröffentliche eine Preview nur für etwas, das du jedem mit dem Link zeigen kannst, und schließ sie, wenn du fertig bist. Sie übersteht einen Relay-Neustart.
- Lass Agent-Sessions aus, solange du sie nicht brauchst. Wähl für gekoppelte Relays die Stufe Agents may bewusst und schalte Accept prompts from other relays' agents ab, wo du es nicht brauchst.
- Klick auf die Buttons der Freigabekarten.
- Wenn du gar keinen Kontakt zu oar.sh willst, setz
OAR_.NO_ UPDATE_ CHECK= 1