wingman
Wingman es un runtime de automatización personal local-first escrito en Go, que ejecuta plugins mediante un programador central y envía resultados a canales como Telegram. Prioriza la seguridad al aislar la IA en los extremos y evitar inyecciones de prompts entre el núcleo y las extensiones.
Ficha actualizada 25 sept 2026, 21:04 · upstream 25 sept 2026, 20:46 · release sin release detectada
Qué es wingman
Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.
Wingman es una plataforma de automatización personal diseñada para funcionar localmente, priorizando la privacidad y la seguridad mediante un modelo "local-first". El sistema consta de un núcleo central que gestiona una cola de tareas (SQLite), invocando plugins externos a través de suscriptores estándar (stdout/stderr) sin exponer secretos ni permitir inyecciones de prompts. La comunicación con el usuario se realiza principalmente a través de canales como Telegram, aunque la arquitectura permite la extensión de nuevos conectores.
A diferencia de asistentes basados en LLM continuos, Wingman utiliza un programador determinista que consulta una base de datos para tareas pendientes, reduciendo drásticamente el coste de tokens y evitando el consumo excesivo de recursos al verificar constantemente el estado del sistema. Esto lo hace eficiente para automatizaciones repetitivas donde la intervención humana o la IA no es necesaria en cada iteración, sino solo cuando se dispara un evento específico.
La seguridad es un pilar fundamental: el núcleo y los canales operan localmente (localhost) sin autenticación externa por defecto, y los plugins no reciben secretos como parámetros de invocación. Además, el sistema está diseñado para ejecutarse en máquinas siempre encendidas, evitando la pérdida de tareas programadas durante ciclos de sueño o apagado, lo que lo hace ideal para servidores dedicados o estaciones de trabajo permanentes.
- Automatización de notificaciones meteorológicas locales vía Telegram
- Ejecución de scripts personalizados en horarios específicos (cron) sin intervención humana
- Gestión de tareas ad-hoc disparadas desde canales de mensajería
- Orquestación de plugins externos que procesan datos y devuelven resultados estructurados
- Implementación de flujos de trabajo locales que no requieren conexión a la nube para el procesamiento principal
- Arquitectura segura con IA aislada en los extremos, previniendo compromisos sistémicos globales
- Reducción drástica del coste de tokens al usar consultas SQL directas en lugar de polling constante o prompts masivos
- Soporte nativo para plugins que comunican resultados exclusivamente a través de stdout/stderr
- Operación local-first sin dependencia obligatoria de servicios externos para el núcleo lógico
- Protección contra inyecciones de prompts al no exponer el contexto del modelo entre Core y Plugins
- No incluye soporte nativo para contenedores Docker ni archivos Compose, requiriendo gestión manual de dependencias
- Las tareas fallidas no se reintentan automáticamente, eliminándolas permanentemente de la cola tras el fallo
- Requiere ejecución en máquinas siempre encendidas, ya que no gestiona tareas durante ciclos de suspensión del sistema
- La configuración inicial de canales y roles requiere inserción manual directa en las tablas SQLite
- El núcleo escanea la base de datos una sola vez al inicio para leer configuraciones globales como el canal por defecto
Perfil de infraestructura
Estimación inicial derivada del repositorio y de los servicios detectados.
Despliegue detectado
Qué señales reales de instalación hemos encontrado.
Despliegue en servidor físico o VPS siempre encendido. Ejecutar go build y lanzar desde el directorio raíz donde existan config.toml, plugins/, channels/ y wingman.db. Configurar variables de entorno WINGMAN_SECRETS_DIR antes de iniciar Telegram. Insertar manualmente la configuración del canal por defecto en wingman.db tras la primera conexión con el bot. No usar en máquinas que entran en suspensión profunda, ya que se perderán las tareas programadas sin lógica de recuperación automática.
Stack y dependencias
Componentes inferidos a partir de manifests, configuración y documentación.
Puede sustituir a
Relaciones detectadas por el análisis del repositorio y su categoría.
Experiencia real de la comunidad
Ayuda a contrastar la estimación automática con instalaciones reales.
Todavía no hay datos comunitarios para este proyecto.