Communitygithub.com

xyz-rainbow/xyz-windows-notify

🦄 Habilidad universal para agentes de IA que permite enviar notificaciones toast nativas en Windows (10 y 11) con resolución inteligente de iconos, progreso en tiempo real y alertas sonoras.

¿Qué es xyz-windows-notify?

Esta habilidad permite que cualquier agente de IA (como Antigravity, Claude, GPT, Cursor, Trae, Pi o Grok) envíe notificaciones toast nativas de Windows (compatible con Windows 10 y 11) utilizando el módulo PowerShell BurntToast. Soporta marca personalizada, hitos de progreso y una gestión dinámica de iconos con resolución inteligente: primero verifica una ruta explícita, luego iconos empaquetados en la habilidad, después rutas de usuario y finalmente falla de forma correcta sin logo. Incluye patrones de integración tanto en PowerShell como en Python, con ejemplos de uso a lo largo del ciclo de vida de una tarea. También ofrece recomendaciones para que los agentes de IA seleccionen o generen iconos contextuales y guarden nuevos iconos en el directorio adecuado, así como una configuración global para que la habilidad esté disponible en múltiples agentes en la misma máquina.

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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

XYZ Windows Notify — Habilidad Universal para Agentes de IA

Esta habilidad permite que cualquier agente de IA (Antigravity, Claude, GPT, Cursor, Trae, Pi, Grok, etc.) active notificaciones toast nativas de Windows (compatible con Windows 10 y Windows 11) usando PowerShell BurntToast con marca personalizada, hitos de porcentaje y gestión dinámica de iconos.


🚀 Instalación mediante la CLI de Skills

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

🦄 Activos incluidos y resolución inteligente de iconos

Esta habilidad incluye marca predeterminada en su directorio assets/icons/ (assets/icons/unicorn.jpg y assets/icons/icon.jpg).

Al enviar una notificación, sigue esta jerarquía de resolución inteligente:

  1. Parámetro explícito: Ruta proporcionada mediante -AppLogo "ruta/al/icono_personalizado.png".
  2. Icono incluido en la habilidad: Ruta local dentro del directorio de la habilidad (ej. <directorio_habilidad>/assets/icons/unicorn.jpg).
  3. Icono incluido heredado: <directorio_habilidad>/assets/unicorn.jpg (para compatibilidad hacia atrás).
  4. Directorio de iconos personalizados del usuario: Ruta de usuario del entorno (ej. $env:USERPROFILE\Pictures\Icons\personalizado.png si existe).
  5. Fallback elegante: Notificación nativa de Windows sin -AppLogo si no existe ningún archivo de imagen.

🤖 Directrices para agentes de IA sobre iconos personalizados y generación

Los agentes de IA que operen con esta habilidad deben gestionar activamente la retroalimentación visual:

1. Selección contextual de iconos

  • General / Predeterminado: Usar assets/icons/unicorn.jpg o assets/icons/icon.jpg.
  • Base de datos / Copias de seguridad: Si existen iconos especializados (ej. assets/icons/backup.png o assets/icons/database.png), priorizarlos.
  • Despliegues / Servidor: Iconos de cohete / servidor.
  • Errores / Alertas críticas: Iconos de advertencia / escudo.

2. Sugerir y generar nuevos iconos

  • Dónde guardar iconos: Almacenar nuevos iconos en assets/icons/<nombre>.png (dentro de la habilidad o carpeta del repositorio) o en el directorio de iconos del usuario ($env:USERPROFILE\Pictures\Icons\).
  • Especificaciones del icono:
    • Formato: PNG o JPG (relación de aspecto cuadrada 1:1).
    • Dimensiones recomendadas: 256x256 o 512x512 píxeles.
    • Fondo transparente o sólido limpio.
  • Protocolo proactivo de IA:
    • Al iniciar un nuevo flujo de trabajo recurrente (ej. un nuevo monitor de servidor de juegos, pipeline de renderizado de video o sincronización de datos), verificar si existe un icono coincidente en assets/icons/.
    • Si no existe un icono temático, proponer:

      "Noté que no tenemos un icono específico para [Nombre de la tarea]. ¿Te gustaría que genere un icono personalizado de 256x256 y lo guarde en assets/icons/[nombre].png?"

    • Usar herramientas de generación de imágenes (ej. generate_image) u obtener activos apropiados tras la aprobación del usuario.

💻 Integración con PowerShell

Import-Module BurntToast

# Resolver icono predeterminado / incluido (con compatibilidad hacia atrás)
$CandidateIcons = @(
    "$PSScriptRoot\assets\icons\unicorn.jpg",
    "$PSScriptRoot\assets\unicorn.jpg",
    "$env:USERPROFILE\Pictures\Icons\personalizado.png"
)

$AppLogo = $CandidateIcons | Where-Object { Test-Path $_ } | Select-Object -First 1

# Enviar notificación con fallback
if ($AppLogo) {
    New-BurntToastNotification `
        -Text "🦄 Hito de tarea: 50%", "Procesados 1,024 MB de 2,048 MB" `
        -AppLogo $AppLogo `
        -Sound 'Default'
} else {
    New-BurntToastNotification `
        -Text "📊 Hito de tarea: 50%", "Procesados 1,024 MB de 2,048 MB" `
        -Sound 'Default'
}

🐍 Patrón de integración con Python

import subprocess
import os

def send_toast(title: str, message: str, icon_path: str = None):
    # Rutas candidatas de icono con compatibilidad hacia atrás
    base_dir = os.path.dirname(__file__)
    user_icon = os.path.expanduser("~/Pictures/Icons/personalizado.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)

# Ejemplo de uso a lo largo del ciclo de vida
send_toast("🚀 Tarea iniciada", "Escaneando archivos del espacio de trabajo y calculando sumas de verificación...")
send_toast("📊 Progreso: 50%", "Procesados 1,024 MB de 2,048 MB")
send_toast("✅ Tarea completada (100%)", "¡2,100 archivos procesados exitosamente!")

🌐 Configuración global multi-agente

Para que esta habilidad sea accesible desde todos los agentes en la máquina, asegúrate de que esta carpeta esté enlazada simbólicamente o copiada en:

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

Skills relacionados