Communitygithub.com

xyz-rainbow/xyz-windows-notify

🦄 Compétence universelle pour agents IA permettant d'envoyer des notifications toast natives Windows (10 & 11) avec résolution intelligente d'icônes, pourcentage de progression en temps réel et alertes sonores.

Qu'est-ce que xyz-windows-notify ?

Cette compétence permet à tout agent IA (Antigravity, Claude, GPT, Cursor, Trae, Pi, Grok, etc.) de déclencher des notifications toast natives Windows (10 & 11) via PowerShell `BurntToast`. Elle intègre un système de résolution d'icônes hiérarchique : icône explicite, icône intégrée, héritée, utilisateur personnalisée, puis fallback gracieux. Elle supporte les pourcentages de progression en temps réel, les alertes sonores et la génération d'icônes contextuelles (base de données, déploiement, erreur…). La compétence fournit des exemples d'intégration PowerShell et Python, ainsi qu'une configuration multi-agent pour être partagée entre tous les agents IA sur la machine.

Compatible avec✓Claude Code~Codex CLI✓Cursor✓Antigravity✓Gemini CLI
npx skills add xyz-rainbow/xyz-windows-notify

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Notification Windows XYZ — Compétence Universelle pour Agent IA

Cette compétence permet à tout agent IA (Antigravity, Claude, GPT, Cursor, Trae, Pi, Grok, etc.) de déclencher des Notifications Toast Windows natives (compatibles Windows 10 & Windows 11) à l'aide de PowerShell BurntToast avec image de marque personnalisée, jalons de pourcentage et gestion dynamique des icônes.


🚀 Installation via l'interface en ligne de commande Skills

npx skills add xyz-rainbow/xyz-windows-notify

🦄 Ressources fournies et résolution intelligente des icônes

Cette compétence fournit des images de marque par défaut dans son répertoire assets/icons/ (assets/icons/unicorn.jpg et assets/icons/icon.jpg).

Lors de l'envoi d'une notification, suivez cette Hiérarchie de Résolution Intelligente :

  1. Paramètre explicite : Chemin fourni via -AppLogo "chemin/vers/icone_personnalisee.png".
  2. Icône intégrée à la compétence : Chemin local dans le répertoire de la compétence (p. ex. <repertoire_competence>/assets/icons/unicorn.jpg).
  3. Icône intégrée héritée : <repertoire_competence>/assets/unicorn.jpg (pour la rétrocompatibilité).
  4. Répertoire d'icônes personnalisées utilisateur : Chemin d'environnement utilisateur (p. ex. $env:USERPROFILE\Pictures\Icons\custom.png s'il existe).
  5. Fallback gracieux : Notification Windows native sans -AppLogo si aucun fichier image n'existe.

🤖 Recommandations aux agents IA pour les icônes personnalisées et leur génération

Les agents IA utilisant cette compétence doivent gérer activement le retour visuel :

1. Sélection contextuelle d'icône

  • Général / Par défaut : Utiliser assets/icons/unicorn.jpg ou assets/icons/icon.jpg.
  • Base de données / Sauvegardes : Si des icônes spécialisées existent (p. ex. assets/icons/backup.png ou assets/icons/database.png), les privilégier.
  • Déploiements / Serveurs : Icônes fusée / serveur.
  • Erreurs / Alertes critiques : Icônes avertissement / bouclier.

2. Suggestion et génération de nouvelles icônes

  • Où stocker les icônes : Stocker les nouvelles icônes dans assets/icons/<nom>.png (dans le répertoire de la compétence ou du dépôt) ou dans le répertoire d'icônes utilisateur ($env:USERPROFILE\Pictures\Icons\).
  • Spécifications de l'icône :
    • Format : PNG ou JPG (rapport d'aspect carré 1:1).
    • Dimensions recommandées : 256x256 ou 512x512 pixels.
    • Fond transparent ou uni propre.
  • Protocole IA proactif :
    • Lors du démarrage d'un nouveau flux de travail récurrent (p. ex., un nouveau moniteur de serveur de jeu, un pipeline de rendu vidéo ou une synchronisation de données), vérifier si une icône correspondante existe dans assets/icons/.
    • Si aucune icône thématique n'existe, proposer :

      « J'ai remarqué que nous n'avons pas d'icône de notification spécifique pour [Nom de la tâche]. Souhaitez-vous que je génère une icône personnalisée 256x256 et que je l'enregistre dans assets/icons/[nom].png ? »

    • Utiliser des outils de génération d'images (p. ex., generate_image) ou récupérer les ressources appropriées après approbation de l'utilisateur.

💻 Intégration PowerShell

Import-Module BurntToast

# Résoudre l'icône par défaut/intégrée (avec rétrocompatibilité)
$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

# Envoyer la notification avec fallback
if ($AppLogo) {
    New-BurntToastNotification `
        -Text "🦄 Jalon de tâche : 50%", "Traité 1 024 Mo sur 2 048 Mo" `
        -AppLogo $AppLogo `
        -Sound 'Default'
} else {
    New-BurntToastNotification `
        -Text "📊 Jalon de tâche : 50%", "Traité 1 024 Mo sur 2 048 Mo" `
        -Sound 'Default'
}

🐍 Modèle d'intégration Python

import subprocess
import os

def send_toast(title: str, message: str, icon_path: str = None):
    # Chemins d'icônes candidats avec rétrocompatibilité
    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)

# Exemple d'utilisation sur l'ensemble du cycle de vie
send_toast("🚀 Tâche démarrée", "Analyse des fichiers de l'espace de travail et calcul des sommes de contrôle...")
send_toast("📊 Progression : 50%", "Traité 1 024 Mo sur 2 048 Mo")
send_toast("✅ Tâche terminée (100%)", "2 100 fichiers traités avec succès !")

🌐 Configuration globale multi-agent

Pour rendre cette compétence accessible à tous les agents sur la machine, assurez-vous que ce dossier est lié symboliquement ou copié dans :

  • Antigravity / Gemini : ~/.gemini/config/skills/windows-notify/
  • Claude Desktop / Code : ~/.claude/skills/windows-notify/
  • Cursor / Trae / Agents globaux : ~/.agents/skills/windows-notify/

Skills associés