Skip to content

Häufig gestellte Fragen: Leistung, Datenschutz & Kompatibilität

Was Sie nach diesem Kurs können werden

  • Den Leistungseinfluss und die Ressourcennutzung des Plugins verstehen
  • Datenschutz- und Sicherheitsgarantien kennen
  • Benachrichtigungsstrategien und Konfigurationstechniken beherrschen
  • Plattformunterschiede und Kompatibilität verstehen

Leistungsbezogene Fragen

Erhöht es den KI-Kontext?

Nein. Das Plugin verwendet einen ereignisgesteuerten Modus und fügt dem KI-Dialog keine Tools oder Prompts hinzu.

Aus der Quellcode-Implementierung:

KomponenteTypImplementierungEinfluss auf Kontext
Event-ListenerEventÜberwacht session.idle, session.error, permission.updated Events✅ Kein Einfluss
Tool-HookHookÜberwacht question-Tool über tool.execute.before✅ Kein Einfluss
Dialoginhalt-Liest, modifiziert oder injiziert keine Dialoginhalte✅ Kein Einfluss

Das Plugin ist im Quellcode nur für Überwachung und Benachrichtigung zuständig, der KI-Dialogkontext bleibt vollständig unbeeinflusst.

Wie viele Systemressourcen werden verbraucht?

Sehr wenig. Das Plugin verwendet ein "Startup-Cache + Event-Trigger"-Design:

  1. Konfigurationsladen: Plugin liest beim Start einmal die Konfigurationsdatei (~/.config/opencode/kdco-notify.json), danach keine weiteren Lesevorgänge
  2. Terminal-Erkennung: Erkennt beim Start den Terminal-Typ und cached Informationen (Name, Bundle ID, Prozessname), nachfolgende Events verwenden den Cache direkt
  3. Ereignisgesteuert: Nur wenn die KI bestimmte Events auslöst, führt das Plugin Benachrichtigungslogik aus

Ressourcennutzungsmerkmale:

RessourcentypNutzungBeschreibung
CPUFast 0Läuft nur kurz bei Event-Auslösung
Speicher< 5 MBGeht nach Start in Standby-Modus
Festplatte< 100 KBKonfigurationsdatei und Code selbst
Netzwerk0Keine Netzwerkanfragen

Datenschutz & Sicherheit

Werden Daten auf Server hochgeladen?

Nein. Das Plugin läuft vollständig lokal und führt keine Daten-Uploads durch.

Datenschutzgarantien:

DatentypVerarbeitungUpload
KI-DialoginhalteNicht gelesen, nicht gespeichert❌ Nein
Sitzungsinformationen (Titel)Nur für Benachrichtigungstext verwendet❌ Nein
FehlerinformationenNur für Benachrichtigungstext (max. 100 Zeichen)❌ Nein
Terminal-InformationenLokal erkannt und gecached❌ Nein
KonfigurationsinformationenLokale Datei (~/.config/opencode/)❌ Nein
BenachrichtigungsinhalteÜber native System-Benachrichtigungs-API gesendet❌ Nein

Technische Implementierung:

Das Plugin verwendet native System-Benachrichtigungen:

  • macOS: Ruft NSUserNotificationCenter über node-notifier auf
  • Windows: Ruft SnoreToast über node-notifier auf
  • Linux: Ruft notify-send über node-notifier auf

Alle Benachrichtigungen werden lokal ausgelöst und nicht über OpenCode-Cloud-Services gesendet.

Stiehlt das Plugin meine Sitzungsinhalte?

Nein. Das Plugin liest nur notwendige Metadaten:

Gelesene DatenVerwendungszweckEinschränkung
Sitzungstitel (title)BenachrichtigungstextNur erste 50 Zeichen
Fehlerinformation (error)BenachrichtigungstextNur erste 100 Zeichen
Terminal-InformationenFokuserkennung und Klick-FokussierungLiest keine Terminal-Inhalte
KonfigurationsdateiBenutzerdefinierte EinstellungenLokale Datei

Im Quellcode gibt es keine Logik zum Lesen von Dialognachrichten (messages) oder Benutzereingaben (user input).


Benachrichtigungsstrategie

Werde ich mit Benachrichtigungen bombardiert?

Nein. Das Plugin verfügt über mehrere intelligente Filtermechanismen, um Benachrichtigungsbombardement zu vermeiden.

Standard-Benachrichtigungsstrategie:

TypEvent/ToolBenachrichtigungGrund
EventEltern-Sitzung abgeschlossen (session.idle)✅ JaHauptaufgabe abgeschlossen
EventUnter-Sitzung abgeschlossen (session.idle)❌ NeinEltern-Sitzung benachrichtigt einheitlich
EventSitzungsfehler (session.error)✅ JaErfordert sofortige Behandlung
EventBerechtigungsanfrage (permission.updated)✅ JaKI wartet blockierend
Tool-HookFrage-Anfrage (tool.execute.before - question)✅ JaKI benötigt Eingabe

Intelligente Filtermechanismen:

  1. Nur Eltern-Sitzungen benachrichtigen

    • Quellcode: notify.ts:256-259
    • Standardkonfiguration: notifyChildSessions: false
    • Vermeidet viele Benachrichtigungen, wenn KI Aufgaben in Unteraufgaben aufteilt
  2. Terminal-Fokus-Unterdrückung (macOS)

    • Quellcode: notify.ts:265
    • Logik: Wenn Terminal im Vordergrund ist, keine Benachrichtigung senden (eingebautes Verhalten, keine Konfiguration erforderlich)
    • Vermeidet "Benachrichtigung während man Terminal ansieht"-Wiederholungen
    • Hinweis: Diese Funktion ist nur auf macOS verfügbar (benötigt Terminal-Informationen zur Erkennung)
  3. Ruhezeiten

    • Quellcode: notify.ts:262, notify.ts:181-199
    • Standardkonfiguration: quietHours: { enabled: false, start: "22:00", end: "08:00" }
    • Konfigurierbar, vermeidet nächtliche Störungen
  4. Berechtigungsanfragen immer benachrichtigen

    • Quellcode: notify.ts:319
    • Grund: KI wartet blockierend auf Benutzerautorisierung, muss rechtzeitig benachrichtigt werden
    • Keine Eltern-Sitzungs-Prüfung

Kann ich nur bestimmte Benachrichtigungstypen empfangen?

Ja. Obwohl das Plugin keine separaten Benachrichtigungsschalter hat, können Sie dies über Ruhezeiten und Terminal-Fokuserkennung erreichen:

  • Nur dringende Benachrichtigungen empfangen: Terminal-Fokuserkennung ist eingebautes Verhalten, wenn Sie im Terminal sind, erhalten Sie keine Benachrichtigungen (macOS)
  • Nur nächtliche Benachrichtigungen empfangen: Aktivieren Sie Ruhezeiten (z.B. 09:00-18:00), umgekehrte Nutzung

Wenn Sie feinere Kontrolle benötigen, können Sie ein Feature Request einreichen.


Plugin-Kompatibilität

Kollidiert es mit anderen OpenCode-Plugins?

Nein. Das Plugin integriert sich über die Standard-OpenCode-Plugin-API und modifiziert weder KI-Verhalten noch stört es andere Plugins.

Integrationsmethode:

KomponenteIntegrationsmethodeKollisionsrisiko
Event-ListenerOpenCode SDK event-Hook❌ Keine Kollision
Tool-HookOpenCode Plugin API tool.execute.before-Hook❌ Keine Kollision (überwacht nur question-Tool)
SitzungsabfrageOpenCode SDK client.session.get()❌ Keine Kollision (nur lesen, nicht schreiben)
Benachrichtigungssendungnode-notifier separater Prozess❌ Keine Kollision

Mögliche koexistierende Plugins:

  • Offizielle OpenCode-Plugins (wie opencode-coder)
  • Drittanbieter-Plugins (wie opencode-db, opencode-browser)
  • Benutzerdefinierte Plugins

Alle Plugins laufen parallel über die Standard-Plugin-API, ohne sich gegenseitig zu stören.

Welche Plattformen werden unterstützt? Gibt es Funktionsunterschiede?

Unterstützt macOS, Windows, Linux drei Hauptplattformen, aber mit Funktionsunterschieden.

FunktionmacOSWindowsLinux
Native Benachrichtigungen✅ Unterstützt✅ Unterstützt✅ Unterstützt
Benutzerdefinierte Sounds✅ Unterstützt❌ Nicht unterstützt❌ Nicht unterstützt
Terminal-Fokuserkennung✅ Unterstützt❌ Nicht unterstützt❌ Nicht unterstützt
Klick-Benachrichtigung-Fokussierung✅ Unterstützt❌ Nicht unterstützt❌ Nicht unterstützt
Automatische Terminal-Erkennung✅ Unterstützt✅ Unterstützt✅ Unterstützt
Ruhezeiten✅ Unterstützt✅ Unterstützt✅ Unterstützt

Gründe für Plattformunterschiede:

PlattformUnterschiedserklärung
macOSSystem bietet umfangreiche Benachrichtigungs-APIs und Anwendungsverwaltungsschnittstellen (wie osascript), unterstützt Sounds, Fokuserkennung, Klick-Fokussierung
WindowsSystem-Benachrichtigungs-API hat begrenzte Funktionen, unterstützt keine Anwendungsebenen-Vordergrunderkennung und Sound-Anpassung
LinuxAbhängig von notify-send-Standard, Funktionen ähnlich wie Windows

Plattformübergreifende Kernfunktionen:

Unabhängig von der verwendeten Plattform sind folgende Kernfunktionen verfügbar:

  • Aufgabenabschluss-Benachrichtigungen (session.idle)
  • Fehlerbenachrichtigungen (session.error)
  • Berechtigungsanfrage-Benachrichtigungen (permission.updated)
  • Frage-Anfrage-Benachrichtigungen (tool.execute.before)
  • Ruhezeiten-Konfiguration

Terminal & System

Welche Terminals werden unterstützt? Wie wird erkannt?

Unterstützt 37+ Terminal-Emulatoren.

Das Plugin verwendet die detect-terminal-Bibliothek zur automatischen Terminal-Erkennung, unterstützte Terminals umfassen:

macOS-Terminals:

  • Ghostty, Kitty, iTerm2, WezTerm, Alacritty
  • macOS Terminal, Hyper, Warp
  • VS Code integriertes Terminal (Code / Code - Insiders)

Windows-Terminals:

  • Windows Terminal, Git Bash, ConEmu, Cmder
  • PowerShell, CMD (über Standard-Erkennung)

Linux-Terminals:

  • gnome-terminal, konsole, xterm, lxterminal
  • terminator, tilix, alacritty, kitty

Erkennungsmechanismus:

  1. Automatische Erkennung: Plugin ruft beim Start detectTerminal()-Bibliothek auf
  2. Manuelle Überschreibung: Benutzer kann im Konfigurationsfeld terminal angeben, um automatische Erkennung zu überschreiben
  3. macOS-Mapping: Terminal-Name wird auf Prozessname gemappt (z.B. ghosttyGhostty), für Fokuserkennung verwendet

Konfigurationsbeispiel:

json
{
  "terminal": "ghostty"
}

Was passiert, wenn Terminal-Erkennung fehlschlägt?

Das Plugin funktioniert weiterhin normal, nur die Fokuserkennungsfunktion ist deaktiviert.

Fehlerbehandlungslogik:

FehlerszenarioVerhaltenAuswirkung
detectTerminal() gibt null zurückTerminal-Informationen sind { name: null, bundleId: null, processName: null }Keine Fokuserkennung, aber Benachrichtigungen werden normal gesendet
macOS osascript-Ausführung schlägt fehlBundle ID-Abruf schlägt fehlmacOS Klick-Fokussierungsfunktion deaktiviert, aber Benachrichtigungen normal
terminal-Wert in Konfigurationsdatei ungültigVerwendet automatisches ErkennungsergebnisWenn automatische Erkennung auch fehlschlägt, keine Fokuserkennung

Relevante Logik im Quellcode (notify.ts:149-150):

typescript
if (!terminalName) {
  return { name: null, bundleId: null, processName: null }
}

Lösungsmethode:

Wenn Terminal-Erkennung fehlschlägt, können Sie den Terminal-Typ manuell angeben:

json
{
  "terminal": "iterm2"
}

Konfiguration & Fehlerbehebung

Wo ist die Konfigurationsdatei? Wie wird sie geändert?

Konfigurationsdateipfad: ~/.config/opencode/kdco-notify.json

Vollständiges Konfigurationsbeispiel:

json
{
  "notifyChildSessions": false,
  "sounds": {
    "idle": "Glass",
    "error": "Basso",
    "permission": "Submarine",
    "question": "Submarine"
  },
  "quietHours": {
    "enabled": true,
    "start": "22:00",
    "end": "08:00"
  },
  "terminal": "ghostty"
}

Schritte zur Konfigurationsänderung:

  1. Terminal öffnen, Konfigurationsdatei bearbeiten:

    bash
    # macOS/Linux
    nano ~/.config/opencode/kdco-notify.json
    
    # Windows
    notepad %USERPROFILE%\.config\opencode\kdco-notify.json
  2. Konfigurationsoptionen ändern (siehe obiges Beispiel)

  3. Datei speichern, Konfiguration wird automatisch wirksam (kein Neustart erforderlich)

Was passiert, wenn die Konfigurationsdatei beschädigt ist?

Das Plugin verwendet die Standardkonfiguration und behandelt Fehler stillschweigend.

Fehlerbehandlungslogik (notify.ts:110-113):

typescript
} catch {
  // Config doesn't exist or is invalid, use defaults
  return DEFAULT_CONFIG
}

Lösungsmethode:

Wenn die Konfigurationsdatei beschädigt ist (JSON-Formatfehler), fällt das Plugin auf die Standardkonfiguration zurück. Reparaturschritte:

  1. Beschädigte Konfigurationsdatei löschen:

    bash
    rm ~/.config/opencode/kdco-notify.json
  2. Plugin arbeitet mit Standardkonfiguration weiter

  3. Wenn benutzerdefinierte Konfiguration benötigt wird, Konfigurationsdatei neu erstellen


Zusammenfassung dieser Lektion

Diese Lektion beantwortet die häufigsten Benutzerfragen:

  • Leistungseinfluss: Plugin erhöht nicht den KI-Kontext, Ressourcennutzung sehr gering (CPU fast 0, Speicher < 5 MB)
  • Datenschutz & Sicherheit: Läuft vollständig lokal, lädt keine Daten hoch, liest nur notwendige Metadaten
  • Benachrichtigungsstrategie: Intelligente Filtermechanismen (nur Eltern-Sitzungen benachrichtigen, macOS Terminal-Fokus-Unterdrückung, Ruhezeiten)
  • Plugin-Kompatibilität: Keine Kollision mit anderen Plugins, unterstützt drei Hauptplattformen mit Funktionsunterschieden
  • Terminal-Unterstützung: Unterstützt 37+ Terminals, funktioniert weiterhin normal bei Erkennungsfehlern

Vorschau auf die nächste Lektion

In der nächsten Lektion lernen wir Event-Typen-Erklärung kennen.

Sie werden lernen:

  • Die vier OpenCode-Event-Typen, die das Plugin überwacht
  • Auslösezeitpunkt und Benachrichtigungsinhalt jedes Events
  • Event-Filterregeln (Eltern-Sitzungs-Prüfung, Ruhezeiten, Terminal-Fokus)
  • Event-Verarbeitungsunterschiede zwischen verschiedenen Plattformen

Anhang: Quellcode-Referenz

Klicken zum Anzeigen der Quellcode-Positionen

Aktualisiert: 2026-01-27

FunktionDateipfadZeilen
Plugin-Start & Konfigurationsladensrc/notify.ts357-364
Event-Listener-Logiksrc/notify.ts372-400
Eltern-Sitzungs-Prüfungsrc/notify.ts256-259
Ruhezeiten-Prüfungsrc/notify.ts262
Terminal-Fokuserkennungsrc/notify.ts265
Konfigurationsdatei-Ladensrc/notify.ts90-114
Terminal-Informationserkennungsrc/notify.ts145-176
Standardkonfigurationsdefinitionsrc/notify.ts56-68

Wichtige Konstanten:

  • DEFAULT_CONFIG: Standardkonfiguration (nur Eltern-Sitzungen benachrichtigen, Glass/Basso/Submarine-Sounds, Ruhezeiten standardmäßig deaktiviert)

Wichtige Funktionen:

  • loadConfig(): Lädt Benutzerkonfiguration und führt mit Standardwerten zusammen
  • detectTerminalInfo(): Erkennt Terminal-Informationen und cached sie
  • isQuietHours(): Prüft, ob aktuelle Zeit in Ruhezeit liegt
  • isTerminalFocused(): Prüft, ob Terminal im Vordergrund ist (macOS)
  • isParentSession(): Prüft, ob Sitzung eine Eltern-Sitzung ist