
Escáner de seguridad estático para paquetes de habilidades de agentes de IA. Detecta archivos SKILL.md maliciosos y scripts empaquetados antes de que se ejecuten.
Si SkillsGuard protege tu pipeline, considera apoyar la investigación continua y las nuevas reglas de detección.
Billetera de donación ETH
0x11282eE5726B3370c8B480e321b3B2aA13686582
Escanea el código QR o copia la dirección de la billetera de arriba.
Escáner de seguridad estático para paquetes de habilidades de agentes de IA. Detecta archivos SKILL.md maliciosos y scripts empaquetados antes de que se ejecuten.
curl -s --data-binary @SKILL.md
https://skillsguard.apiskillsguard.workers.dev/scan | jq .
### Opción B — Compilar desde el código fuente y enlazar globalmente
> **Nota:** SkillsGuard no está publicado actualmente en el registro de npm. Instálelo clonando y compilando desde el código fuente.```bash
# 1. Clone, install, build, and link
git clone https://github.com/Teycir/SkillsGuard.git
cd SkillsGuard
npm install
npm run build
npm link
# 2. Scan any skill directory or file
skillsguard /path/to/skill
Eso es todo. SkillsGuard imprime resultados codificados por colores en la terminal (o --json para CI).
Código de salida 0 = limpio · 1 = hallazgos · 2 = error de uso.
¿Quieres que Claude llame al escáner automáticamente dentro de tu flujo de trabajo de agente? Consulta Flujo de trabajo local → Ruta B para la configuración completa de habilidad + MCP.
flowchart TD A([Folder, file, or Git diff target]) --> B[Load config\nskillsguard.config.json] B --> C[File discovery\nFilter JS, PY, PS1, Docker, Ruby...] C --> D{For each file} D --> E[Raw text scan\nApply 100+ rules] D --> F[decode.ts\nExtract encoded blobs] F --> G[Recursive decode\nbase64, hex, URL] G --> H[Scan decoded content] E & H --> I{Findings?} I -->|no| J([✅ Clean — exit 0]) I -->|yes| K[Deduplicate findings] K --> L[Compute Risk Score\n0 - 100] L --> M{Output mode} M -->|CLI| N[ANSI colored report] M -->|--json| O[JSON output] M -->|--sarif| P[SARIF output] M -->|MCP| Q[MCP response] N & O & P & Q --> R{Risk > max-risk?} R -->|yes| S([❌ Exit 1]) R -->|no| J
style A fill:#0d1117,stroke:#00ff88,color:#c3f5dc
style J fill:#0d1117,stroke:#00ff88,color:#00ff88
style S fill:#0d1117,stroke:#ff4444,color:#ff8888
style G fill:#0d1117,stroke:#f0a500,color:#f0c060
style K fill:#0d1117,stroke:#00ff88,color:#c3f5dc
> **Información clave:** SkillsGuard decodifica cargas ofuscadas *antes* de analizar, por lo que una reverse shell envuelta en base64 no puede escapar. Cada hallazgo se desduplica: cada regla se activa como máximo una vez por archivo y por línea.
---
## Tabla de Contenidos
- [Cómo se compara SkillsGuard](#how-skillsguard-compares)
- [Por qué SkillsGuard](#why-skillsguard)
- [Características](#features)
- [Cobertura de amenazas](#threat-coverage)
- [Inicio rápido](#quick-start)
- [Flujo de trabajo local](#local-workflow)
- [Kiro CLI — Ejemplo completo](#kiro-cli--complete-example)
- [Ejemplo del mundo real — Auto‑auditoría de habilidades instaladas](#real-world-example--self-auditing-installed-skills)
- [Uso de CLI](#cli-usage)
- [Modo Git Diff](#git-diff-mode)
- [Archivo de configuración](#configuration-file)
- [Puntuación de riesgo y control](#risk-scoring--gating)
- [Salida SARIF](#sarif-output)
- [Reglas específicas de modelo](#model-specific-rules)
- [Explorador de reglas y ajuste](#rule-explorer--tuning)
- [Modo de vigilancia](#watch-mode)
- [Flujo de trabajo de línea base](#baseline-workflow)
- [Hook Pre-commit](#pre-commit-hook)
- [Servidor MCP](#mcp-server)
- [Servidor HTTP](#http-server)
- [API en la nube (Gratuita)](#cloud-api-free)
- [Demo en vivo](#live-demo)
- [API de librería](#library-api)
- [Referencia de reglas](#rules-reference)
- [Detección de ofuscación](#obfuscation-detection)
- [Fixtures de prueba](#test-fixtures)
- [Estructura del proyecto](#project-structure)
- [Limitaciones](#limitations)
- [Contribuciones](#contributing)
- [Licencia](#license)
- [Atribución](#attribution)
- [Proyectos relacionados](#related-projects)
- [Apoyo al desarrollo](#support-development)
---
## Cómo se compara SkillsGuard
El espacio de seguridad de habilidades para agentes se llenó rápidamente en 2026 — NVIDIA, Cisco, Snyk y Mondoo han lanzado escáneres para este mismo problema. Vale la pena conocer el campo antes de elegir una herramienta, incluyendo esta.
### De un vistazo
| Herramienta | Respaldo | ¿Requiere cuenta/token? | ¿Requiere llamada LLM para escaneo principal? | Enfoque de detección | Extra notable |
|---|---|---|---|---|---|
| **SkillsGuard** | Independiente, MIT | No | No | Expresiones regulares estáticas, decodificación primero (desenvolvimiento recursivo de base64/hex/URL/Unicode) | Hook pre‑commit + modo git‑diff; API curl gratuita |
| **[NVIDIA SkillSpector](https://github.com/NVIDIA/SkillSpector)** | NVIDIA, Apache 2.0 | No | No (opcional, para etapa semántica) | Estática + paso semántico opcional con LLM | Búsqueda en vivo de CVE de dependencias con OSV.dev |
| **[Cisco AI Defense Skill Scanner](https://github.com/cisco-ai-defense/skill-scanner)** | Cisco | No | No (opcional, para etapa semántica) | Multi‑motor: estática + flujo de datos comportamental + LLM semántico + nube | Flujo de trabajo GitHub Actions integrado |
| **[Snyk Agent Scan](https://github.com/snyk/agent-scan)** (antes mcp-scan) | Snyk, comercial | **Sí** — se requiere `SNYK_TOKEN` | Sí — reglas deterministas combinadas con jueces LLM | Descubrimiento automático en Claude/Cursor/Windsurf/Gemini CLI + servidores MCP | Alimenta el escaneo de habilidades al instalarlas de Vercel |
| **[SkillScan](https://github.com/NMitchem/SkillScan)** | Independiente | No | Solo para modo `predict` (opcional) | Motor de reglas YAML + ejecución en seco comportamental opcional con LLM + sandbox Docker opcional | Detección de activación retardada/temporal mediante juego de roles con LLM |
| **Mondoo Skill Check** | Mondoo, comercial | No (nivel gratuito, no comercial) | No está claro en la documentación pública | Estática, mapea a OWASP LLM Top 10 | Panel alojado + API REST |