Sistema de seguridad para monitoreo y protecciΓ³n de interfaces de lΓnea de comandos con capacidades de IA.
Si usas herramientas de inteligencia artificial en tu terminal (como Gemini, Claude, o Codex), necesitas mantenerlas actualizadas para obtener las ΓΊltimas mejoras. Sin embargo, actualizar software desde internet puede ser riesgoso. AI-CLI-Sentinel es tu "cinturΓ³n de seguridad": automatiza la actualizaciΓ³n de tus agentes favoritos asegurΓ‘ndose de que, si algo sale mal o el paquete contiene errores, tu computadora y tus llaves de acceso (API Keys) estΓ©n protegidas.
ΒΏQuΓ© hace este script por mΓ?
- β No toca tus archivos personales: Solo respalda configuraciones de IA.
- β Es reversible: Crea un punto de restauraciΓ³n para que puedas "volver atrΓ‘s".
- β Es silencioso: Hace el trabajo pesado en segundos sin pedirte configuraciones complejas.
- β Solo actualiza lo que tΓΊ apruebas: Trabaja con una lista blanca estricta de agentes confiables.
- β Protege tus secretos: Respalda automΓ‘ticamente tus llaves de acceso antes de cualquier cambio.
AI-CLI-Sentinel gestiona de forma segura los siguientes agentes de IA:
| Agente | Desarrollador | PropΓ³sito |
|---|---|---|
| Gemini CLI | Asistente multimodal y generaciΓ³n de cΓ³digo. | |
| Claude Code | Anthropic | ProgramaciΓ³n en pareja (Pair programming) avanzada. |
| Codex CLI | OpenAI | GeneraciΓ³n de comandos y lΓ³gica de programaciΓ³n. |
| Qwen Code | Alibaba | Modelos de lenguaje especializados en cΓ³digo. |
Nota: Puedes agregar mΓ‘s agentes editando el archivo
src/agents.allowlist.json. Solo se actualizarΓ‘n los agentes que estΓ©n explΓcitamente en tu lista blanca.
- Seguridad primero: Solo actualiza agentes que tΓΊ explΓcitamente apruebas en tu lista blanca
- ProtecciΓ³n automΓ‘tica: Crea puntos de restauraciΓ³n antes de cualquier cambio
- Respaldo de secretos: Guarda automΓ‘ticamente tus llaves de acceso antes de actualizar
- Modo descubrimiento: Encuentra agentes instalados que no estΓ‘n en tu lista blanca (sin hacer cambios)
- PrevenciΓ³n de malware: Usa tΓ©cnicas avanzadas para evitar la ejecuciΓ³n de cΓ³digo malicioso durante instalaciones
- Registro completo: Mantiene un log detallado de todas las operaciones para tu revisiΓ³n
- PowerShell 5.1 o superior (recomendado: PowerShell 7.4+)
- Windows 10/11 o Windows Server 2016+
- Privilegios de Administrador (requeridos para VSS y actualizaciones globales)
- Node.js y npm instalados (para gestiΓ³n de paquetes NPM)
- Winget instalado (para gestiΓ³n de aplicaciones Windows)
# Clonar el repositorio
git clone https://github.com/datanicaragua/ai-cli-sentinel.git
cd ai-cli-sentinel
# Verificar estructura
Get-ChildItem -Recurse-
Revisar configuraciΓ³n:
Get-Content src\agents.allowlist.json -
Personalizar lista de permitidos: Edita
src\agents.allowlist.jsonpara agregar tus agentes permitidos en los arraysnpmywinget. -
Verificar permisos:
Get-ExecutionPolicy # Si es necesario: Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Actualiza solo los agentes en la lista blanca con respaldo de secretos:
# Ejecutar como Administrador
.\src\AI-CLI-Sentinel.ps1 -BackupSecretsVer quΓ© harΓa el script sin realizar cambios:
.\src\AI-CLI-Sentinel.ps1 -WhatIfBuscar agentes de IA instalados que NO estΓ‘n en la lista blanca:
.\src\AI-CLI-Sentinel.ps1 -DiscoverEste modo NO realiza cambios, solo reporta candidatos detectados.
Imagina que tienes varios asistentes de IA instalados en tu computadora (como Gemini, Claude, Codex). Cada cierto tiempo, estos asistentes reciben actualizaciones con nuevas funciones y correcciones de errores. AI-CLI-Sentinel es como un asistente personal que:
- Verifica quΓ© asistentes tienes instalados (modo Discover)
- Actualiza solo los que tΓΊ apruebas (lista blanca)
- Crea una copia de seguridad antes de hacer cambios (punto de restauraciΓ³n)
- Protege tus llaves de acceso (respaldo de secretos)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 1. Inicio: Verificas que tienes permisos de administrador β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 2. PreparaciΓ³n: Se crea un punto de restauraciΓ³n del sistemaβ
β (por si necesitas "volver atrΓ‘s") β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 3. Respaldo: Se guardan tus llaves de acceso (.ssh, .config)β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 4. ActualizaciΓ³n: Se actualizan solo los agentes aprobados β
β en tu lista blanca β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 5. FinalizaciΓ³n: Todo listo. Tus agentes estΓ‘n actualizados β
β y protegidos β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Antes de ejecutar el script por primera vez, usa el modo simulaciΓ³n para ver quΓ© harΓa sin hacer cambios reales:
.\src\AI-CLI-Sentinel.ps1 -WhatIfVerΓ‘s mensajes como:
What if: Performing the operation 'Crear Punto de RestauraciΓ³n (VSS)'...What if: Performing the operation 'Actualizar NPM'...
Esto te permite entender exactamente quΓ© harΓ‘ el script antes de ejecutarlo realmente.
.\src\AI-CLI-Sentinel.ps1 -ConfigFile "ruta\personalizada\agents.allowlist.json" -BackupSecrets.\src\AI-CLI-Sentinel.ps1 -LogPath "C:\Logs\sentinel.log" -BackupSecretsai-cli-sentinel/
βββ .github/
β βββ workflows/
β β βββ ci-lint.yml # CI: ValidaciΓ³n automΓ‘tica
β βββ ISSUE_TEMPLATE/
β βββ bug_report.md
β βββ feature_request.md
β βββ security_report.md
βββ src/
β βββ AI-CLI-Sentinel.ps1 # Script principal
β βββ agents.allowlist.json # ConfiguraciΓ³n
βββ tests/
β βββ AI-CLI-Sentinel.tests.ps1 # Pruebas unitarias
βββ docs/
β βββ architecture.md # Arquitectura del sistema
β βββ recovery.md # GuΓa de recuperaciΓ³n
βββ .gitignore
βββ CONTRIBUTING.md
βββ LICENSE
βββ README.md
βββ SECURITY.md
flowchart TD
A[Inicio: AI-CLI-Sentinel] --> B{ΒΏPrivilegios<br/>Admin?}
B -->|No| C[Error: Se requieren privilegios]
B -->|SΓ| D[Cargar agents.allowlist.json]
D --> E{ΒΏModo<br/>Discover?}
E -->|SΓ| F[Buscar agentes instalados]
F --> G[Reportar candidatos]
G --> H[Fin: Solo reporte]
E -->|No| I{ΒΏWhatIf?}
I -->|SΓ| J[Mostrar acciones simuladas]
J --> H
I -->|No| K[Crear punto VSS]
K --> L{ΒΏBackup<br/>Secrets?}
L -->|SΓ| M[Respaldar .ssh, .config, .npmrc]
L -->|No| N[Actualizar agentes NPM]
M --> N
N --> O[Actualizar aplicaciones Winget]
O --> P[Fin: ActualizaciΓ³n completa]
style A fill:#e1f5ff
style C fill:#ffcccc
style H fill:#ccffcc
style P fill:#ccffcc
Ejecutar tests con Pester:
# Instalar Pester si es necesario
Install-Module -Name Pester -Force -SkipPublisherCheck
# Ejecutar tests
Invoke-Pester tests/Para reportar vulnerabilidades de seguridad, por favor usa el formulario de seguridad o consulta SECURITY.md.
Este proyecto implementa prΓ‘cticas de seguridad basadas en estΓ‘ndares reconocidos:
-
OWASP Top 10 para LLM (2024-2025)
- Mitiga riesgos de "Insecure Output Handling" mediante validaciΓ³n estricta de entrada.
- Previene ataques de inyecciΓ³n indirecta mediante lista blanca de agentes.
- Referencia: OWASP LLM Top 10
-
Node.js Security Best Practices
- Utiliza
--ignore-scriptspara prevenir la ejecuciΓ³n de malware durante la instalaciΓ³n de paquetes npm. - Referencia: npm Security Best Practices
- Utiliza
-
Microsoft Volume Shadow Copy Service (VSS)
- Implementa puntos de restauraciΓ³n del sistema antes de realizar cambios crΓticos.
- Referencia: Windows System Restore
-
Repositorios Oficiales
- Solo interactΓΊa con repositorios oficiales y verificados:
- npm Registry - Para paquetes Node.js
- Microsoft Winget - Para aplicaciones Windows
- OpenAI Codex - DocumentaciΓ³n oficial de Codex CLI
- Qwen Code - Repositorio oficial de Qwen Code
- Solo interactΓΊa con repositorios oficiales y verificados:
Las contribuciones son bienvenidas! Por favor lee CONTRIBUTING.md para mΓ‘s detalles sobre cΓ³mo contribuir al proyecto.
Este proyecto estΓ‘ licenciado bajo la Licencia MIT - ver el archivo LICENSE para mΓ‘s detalles.
Gustavo Ernesto MartΓnez CΓ‘rdenas Lead Data Scientist & Architect at DataNicaragua
DataNicaragua - OrganizaciΓ³n
Gracias a todos los contribuidores que hacen posible este proyecto.
- Issues: GitHub Issues
- DocumentaciΓ³n: Ver carpeta
docs/
β Si este proyecto te resulta ΓΊtil, considera darle una estrella en GitHub!