Dinoer

Was Dinoer nicht hinter Ihrem Rücken tut

Fünf Zusagen, jede mit der Code-Datei, die sie einhält, und mit dem, was sie jeweils nicht abdeckt.

Sie sind dabei, einer Recherchekette Zugriff auf Ihre Zugangsdaten und auf den ausgehenden Verkehr Ihres Rechners zu geben. Hier steht, worauf das beruht, mit der Datei, die jeden Punkt durchsetzt.

Dinoer legt Ihre Zugangsdaten nie in ein Terminal

Sie gehen nie durch Ihre Shell, Ihren Befehlsverlauf oder Dinoers Protokolle: Der Wert wird im Prozess, der den Browser steuert, aus dem verschlüsselten Verzeichnis gelesen, in dem Moment, in dem ein Feld ausgefüllt wird.

→ lib/repertoire_chiffre.py. Wie Zugangsdaten in ein Formular gelangen →

Ein Szenario, das ein Geheimnis im Klartext enthält, wird vor dem Start des Browsers abgelehnt: ein remplir auf einem Feld, dessen Selektor sensibel aussieht (password, token, otp, cvv und andere), mit einem anderen Wert als depuis_secrets, oder ein evaluer-Skript, das ein Token oder einen Schlüssel mit hoher Entropie enthält.

Was Dinoer schreibt, wird standardmäßig gefiltert: Rückgabewerte von evaluer, URLs und Fehlermeldungen, die in die Ausgabe oder ins Betriebsjournal gehen, werden neutralisiert. --no-filtre-evaluer schaltet das ab, und die Ausgabe sagt es dann (boussole.filtre_evaluer_actif: false).

→ lib/sanitisation.py

Was das nicht abdeckt: Der Agent, der Dinoer steuert, hat seinen eigenen Zugang zu Ihrem Rechner. Mit einem Terminal kann er Ihr eingehängtes Verzeichnis lesen wie jede andere Datei. Dinoer schützt den Weg, den es kontrolliert, nicht einen, den Sie daneben öffnen.

Das Modell, das den Bericht schreibt, bleibt dem Web fern

Bei jedem Aufruf von OpenCode setzt invoquer_opencode() websearch und webfetch in OPENCODE_CONFIG_CONTENT auf deny, zusammengeführt mit einem Wert, den Sie bereits gesetzt hatten. Das Verbot gilt also unabhängig davon, aus welchem Verzeichnis Dinoer gestartet wird; die opencode.jsonc im Stammverzeichnis des Repositorys sagt dasselbe für einen Start von dort. Gemessen am 25. September 2026 mit opencode debug config (OpenCode 1.18.32), gestartet aus /tmp: Mit diesem Wert stehen websearch und webfetch auf deny, ohne ihn auf allow.

→ lib/modeles.py::invoquer_opencode()

Das Verbot gibt es, weil am 14. August 2026 eine Kampagne das Modell dabei ertappte, wie es beim Schreiben des Berichts zwölf Websuchen startete. Sie waren nur in der Aufzeichnung aller Ereignisse des Modells zu sehen, nicht im zurückgegebenen Text.

Was das nicht abdeckt: bash bleibt erlaubt, weil manche Szenarien das Modell eine Benachrichtigung mit curl senden lassen. Ein Modell ohne websearch erreichte bei einem Testlauf das Web über bash curl. Von den Zusagen auf dieser Seite ist das die einzige unvollständige.

Dinoer meldet, es entscheidet nicht

pret_a_agir: false bedeutet, dass etwas bemerkt wurde: eine WAF-Signatur, eine Sitzungsabweichung, eine erreichte Navigationsgrenze, JavaScript-Fehler. Der Lauf geht weiter: Dinoer meldet, Sie entscheiden.

Die WAF-Erkennung arbeitet mit Schlüsselwörtern und kann sich irren. Sie erscheint als Zähler, nie als Fehler, der die Ausführung abbricht, und --ignorer-waf gibt es für den Fall, dass Sie nachgesehen haben.

Der Browserkern tut nur, was das Szenario auflistet, mit einer Ausnahme

Jeder Klick, jeder Tastendruck und jede Navigation des Browserkerns ist eine Zeile einer Szenario-Datei, die vor dem Start des Browsers gegen ein Schema geprüft wird.

→ scenarios/schema.json

Die Recherchekette ist anders: campagne.py lässt ein Modell beurteilen, ob eine Seite eine offene Frage beantwortet oder ob zwei Seiten dasselbe Ereignis beschreiben. Diese Zusage gilt für den Browserkern, nicht für dieses Urteil.

Sie können alles nachträglich prüfen

Jeder Lauf wird in einem Betriebsjournal festgehalten, das nur ergänzt wird: was versucht wurde, wo, mit welchem Ergebnis und mit welcher angegebenen Absicht. journal.py liest es.

→ journal.py, /var/log/dinoer/operations.jsonl

Was Ihren Rechner verlässt

Neben den Abrufen der Seiten selbst können drei Dinge hinausgehen, jedes nach Ihrer Wahl: die Anfragen an Ihre SearXNG-Instanz, der erfasste Text an das OpenCode-Modell und eine Benachrichtigung an einen ntfy-Server (ntfy.sh, sofern Sie keinen anderen angeben). Ihre Zugangsdaten nicht. Die vollständige Tabelle mit der Datei hinter jeder Zeile steht auf der Architekturseite.

Was Dinoer nicht behauptet

Es ist nicht vorsichtiger als das Szenario oder das Manifest, das Sie ihm geben. Ein falsches richtet echten Schaden an, in Maschinengeschwindigkeit. Und die Zusage zum Korpus betrifft die Herkunft einer Antwort, nicht die Frage, ob die Frage die richtige war.