XYZ Windows-Benachrichtigung — Universelle KI-Agent-Fähigkeit
Diese Fähigkeit ermöglicht es jedem KI-Agenten (Antigravity, Claude, GPT, Cursor, Trae, Pi, Grok usw.), native Windows Toast-Benachrichtigungen (kompatibel mit Windows 10 und Windows 11) auszulösen, und verwendet PowerShell BurntToast mit individuellem Branding, Prozentmeilensteinen und dynamischer Symbolverwaltung.
🚀 Installation via Skills CLI
npx skills add xyz-rainbow/xyz-windows-notify
🦄 Gebündelte Assets und intelligente Symbolauflösung
Diese Fähigkeit bündelt Standard-Branding in ihrem assets/icons/-Verzeichnis (assets/icons/unicorn.jpg und assets/icons/icon.jpg).
Beim Senden einer Benachrichtigung folgen Sie dieser Intelligente Auflösungshierarchie:
- Expliziter Parameter: Pfad, der über
-AppLogo "path/to/custom_icon.png"bereitgestellt wird. - Fähigkeitsgebündeltes Symbol: Lokaler Pfad innerhalb des Fähigkeitsverzeichnisses (z.B.
<skill_dir>/assets/icons/unicorn.jpg). - Altes gebündeltes Symbol:
<skill_dir>/assets/unicorn.jpg(für Abwärtskompatibilität). - Benutzerdefiniertes Symbolverzeichnis: Benutzerumgebungspfad (z.B.
$env:USERPROFILE\Pictures\Icons\custom.pngfalls vorhanden). - Anmutiger Fallback: Native Windows-Benachrichtigung ohne
-AppLogo, wenn keine Bilddatei existiert.
🤖 KI-Agent-Richtlinien für benutzerdefinierte Symbole und Generierung
KI-Agenten, die mit dieser Fähigkeit arbeiten, sollten aktiv visuelles Feedback verwalten:
1. Kontextbezogene Symbolauswahl
- Allgemein / Standard: Verwenden Sie
assets/icons/unicorn.jpgoderassets/icons/icon.jpg. - Datenbanken / Backups: Wenn spezielle Symbole existieren (z.B.
assets/icons/backup.pngoderassets/icons/database.png), priorisieren Sie diese. - Bereitstellungen / Server: Raketen-/Server-Symbole.
- Fehler / Kritische Warnungen: Warn-/Schild-Symbole.
2. Vorschlagen und Generieren neuer Symbole
- Wo Symbole speichern: Speichern Sie neue Symbole in
assets/icons/<name>.png(innerhalb des Fähigkeits- oder Repository-Ordners) oder im Benutzersymbolverzeichnis ($env:USERPROFILE\Pictures\Icons\). - Symbolspezifikationen:
- Format:
PNGoderJPG(quadratisches 1:1-Seitenverhältnis). - Empfohlene Abmessungen:
256x256oder512x512Pixel. - Transparenter oder sauberer, einfarbiger Hintergrund.
- Format:
- Proaktives KI-Protokoll:
- Wenn ein neuer wiederkehrender Arbeitsablauf gestartet wird (z.B. ein neuer Spielserver-Monitor, Videorendering-Pipeline oder Datensynchronisation), überprüfen Sie, ob ein passendes Symbol in
assets/icons/existiert. - Wenn kein thematisches Symbol existiert, schlagen Sie vor:
"Ich habe festgestellt, dass wir kein spezifisches Toast-Symbol für [Aufgabenname] haben. Möchten Sie, dass ich ein benutzerdefiniertes 256x256-Symbol erstelle und es unter
assets/icons/[name].pngspeichere?" - Verwenden Sie Bildgenerierungswerkzeuge (z.B.
generate_image) oder holen Sie entsprechende Assets nach Benutzerfreigabe ein.
- Wenn ein neuer wiederkehrender Arbeitsablauf gestartet wird (z.B. ein neuer Spielserver-Monitor, Videorendering-Pipeline oder Datensynchronisation), überprüfen Sie, ob ein passendes Symbol in
💻 PowerShell-Integration
Import-Module BurntToast
# Standard-/Gebündeltes Symbol auflösen (mit Abwärtskompatibilität)
$CandidateIcons = @(
"$PSScriptRoot\assets\icons\unicorn.jpg",
"$PSScriptRoot\assets\unicorn.jpg",
"$env:USERPROFILE\Pictures\Icons\custom.png"
)
$AppLogo = $CandidateIcons | Where-Object { Test-Path $_ } | Select-Object -First 1
# Benachrichtigung mit Fallback senden
if ($AppLogo) {
New-BurntToastNotification `
-Text "🦄 Aufgabenmeilenstein: 50%", "1.024 MB von 2.048 MB verarbeitet" `
-AppLogo $AppLogo `
-Sound 'Default'
} else {
New-BurntToastNotification `
-Text "📊 Aufgabenmeilenstein: 50%", "1.024 MB von 2.048 MB verarbeitet" `
-Sound 'Default'
}
🐍 Python-Integrationsmuster
import subprocess
import os
def send_toast(title: str, message: str, icon_path: str = None):
# Kandidaten-Symbolpfade mit Abwärtskompatibilität
base_dir = os.path.dirname(__file__)
user_icon = os.path.expanduser("~/Pictures/Icons/custom.png")
candidates = [
icon_path,
os.path.join(base_dir, "assets", "icons", "unicorn.jpg"),
os.path.join(base_dir, "assets", "unicorn.jpg"),
user_icon
]
selected_icon = next((c for c in candidates if c and os.path.exists(c)), None)
if selected_icon:
ps_cmd = f"Import-Module BurntToast; New-BurntToastNotification -Text '{title}', '{message}' -AppLogo '{selected_icon}' -Sound 'Default'"
else:
ps_cmd = f"Import-Module BurntToast; New-BurntToastNotification -Text '{title}', '{message}' -Sound 'Default'"
subprocess.run(["powershell", "-NoProfile", "-ExecutionPolicy", "Bypass", "-Command", ps_cmd], capture_output=True)
# Beispielverwendung über den Lebenszyklus
send_toast("🚀 Aufgabe gestartet", "Arbeitsbereichsdateien scannen und Prüfsummen berechnen...")
send_toast("📊 Fortschritt: 50%", "1.024 MB von 2.048 MB verarbeitet")
send_toast("✅ Aufgabe abgeschlossen (100%)", "2.100 Dateien erfolgreich verarbeitet!")
🌐 Multi-Agent-Globale Konfiguration
Um diese Fähigkeit maschinenweit für alle Agenten zugänglich zu machen, stellen Sie sicher, dass dieser Ordner in folgende Verzeichnisse verlinkt oder kopiert wird:
- Antigravity / Gemini:
~/.gemini/config/skills/windows-notify/ - Claude Desktop / Code:
~/.claude/skills/windows-notify/ - Cursor / Trae / Globale Agenten:
~/.agents/skills/windows-notify/