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. ghostty → Ghostty), 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