What Is NVIDIA SkillSpector? Skill Security Scanner: Setup, Commands, Risk Score, License and Data
Before installing a skill, you hand it to SkillSpector (a Git repo, URL, zip, folder or single file); it runs fast static checks, optionally adds semantic analysis with an AI model, and gives a 0–100 risk score with a recommendation on "should this skill be installed?" It is NVIDIA's open-source (Apache 2.0) security scanner for Claude Code, Codex and MCP skills. It is a command-line tool (Python 3.12 or later), installed from GitHub rather than PyPI. AI analysis is on by default and sends file contents to the provider you choose; use --no-llm to keep everything local. It is not a sandbox.
- What it does
- Scans an agent skill for security issues before you install it
- Free
- Yes, Apache 2.0; if you use an LLM, the provider's fees are yours
- No-code
- No; command line
- Requires
- Python 3.12–3.14, uv or pip
- Data
- With the LLM on, file contents go to the provider
- Version
- 2.12.0 (September 23, 2026)
- Turkish
- May miss issues in non-English content
What is SkillSpector and what is it for? Can I use it without code?
AI agents (such as Claude Code, Codex and Gemini CLI) use packages called skills: an instruction file and often scripts. The README says these skills run “with implicit trust and minimal vetting” and, citing a research dataset, reports that of 31,132 skills examined, 26.1% contained security vulnerabilities and 5.2% showed likely malicious intent (the README's own research citation). SkillSpector asks exactly this: “Is this skill safe to install?” The skill is scanned before installation and is never executed.
No. SkillSpector is a command-line tool and Python library; no GUI or cloud version is listed in the official sources. If you don't want to install Python, the README shows how to run the same commands with Docker (still from the terminal). It can also be called from inside an agent (MCP server).
Who it helps: developers who download agent skills or MCP servers from the internet; people who want to check their own skill before publishing it; teams auditing an internal skill catalog. SkillSpector is part of NVIDIA's “Verified Skills” pipeline; the NVIDIA documentation also says it is the first layer of SkillEvaluator, the pre-release evaluation tool.
How do I install SkillSpector? What hardware and software do I need?
› uv tool install git+https://github.com/NVIDIA/skillspector.git› uv tool install 'skillspector[mcp] @ git+https://github.com/NVIDIA/skillspector.git'› uv tool update skillspector› git clone https://github.com/NVIDIA/skillspector.git
cd skillspector
uv venv .venv && source .venv/bin/activate
make installThe README uses make targets (uv if available, otherwise pip). On Windows you activate the virtual environment with .venv\Scripts\activate (a note in the development guide); make is not available on Windows by default.
› docker build -t skillspector .› docker run --rm -v "$PWD:/scan" skillspector scan ./my-skill/ --no-llm- Python: 3.12, 3.13 or 3.14 (package spec
>=3.12,<3.15). - Version: 2.12.0 according to pyproject; the latest release tag on GitHub is v2.12.0, September 23, 2026. The package classifier says “Alpha”.
- PyPI:
pip install skillspectordoes not work; there is no package with this name on PyPI (as of October 15, 2026). Install from GitHub. - Hardware: no official minimum RAM/CPU; no GPU needed. If you use a local model (Ollama), its requirements apply.
!The README warns that installation will also download and install third-party open-source software; review their licenses before use.
How do I use SkillSpector? Commands and risk score
› skillspector scan ./my-skill/ --no-llm| What you want to do | Command (README) |
|---|---|
| Scan a folder | skillspector scan ./my-skill/ |
| Scan a single file | skillspector scan ./SKILL.md |
| Scan a Git repository | skillspector scan https://github.com/user/my-skill |
| Scan a zip | skillspector scan ./my-skill.zip |
| Write the report as JSON | skillspector scan ./my-skill/ --format json --output report.json |
| Markdown / SARIF report | --format markdown --output report.md or --format sarif --output report.sarif (for CI and IDE tools) |
| Accept known findings (baseline) | skillspector baseline ./my-skill/ -o .skillspector-baseline.yaml, then scan ... --baseline .skillspector-baseline.yaml |
| Exclude some files from the scan | skillspector scan ./my-skill --exclude 'tests/*' |
| Call it from inside an agent (MCP) | claude mcp add skillspector -- skillspector mcp |
| Score | Level | Recommendation |
|---|---|---|
| 0–20 | LOW | SAFE |
| 21–50 | MEDIUM | CAUTION |
| 51–80 | HIGH | DO NOT INSTALL |
| 81–100 | CRITICAL | DO NOT INSTALL |
The score is computed from the weight of the findings: critical +50, high +25, medium +10, low +5; ×1.3 if there is an executable script. The exit code is a fixed contract for CI: 0 the scan finished and the score is 50 or lower; 1 the score is above 50 or one of the strict gates you chose (--fail-on-findings, --fail-on-incomplete, --min-coverage) was triggered; 2 error (bad input, unreadable source). By default both SAFE and CAUTION return 0; for a strict gate, use these flags or the recommendation field in the JSON.
The MCP server exposes a single tool: scan_skill. The “initialize” hang over the stdio transport noted in the README (issue #199) still applies; the HTTP transport runs without authentication and only on a local (loopback) address. For remote access, you need to put an authenticating proxy in front of it.
How do I set up AI analysis? Where does my data go?
SkillSpector works in two stages: first fast, deterministic static checks (pattern matching, Python AST, YARA); then an optional AI model compares what the skill says with what it does (semantic analysis). According to the README, LLM analysis is on by default; turn it off with --no-llm.
README “Trust model”: with LLM analysis on, eligible file contents are sent to the SKILLSPECTOR_PROVIDER endpoint you choose. To keep content local, use --no-llm (static analysis only) or a local model (Ollama).
The supply-chain check (SC4) queries OSV.dev for known vulnerabilities in the package names and versions the skill declares; it also runs with --no-llm. Dependency names are sent, not file contents. Without access, it falls back to a small built-in list.
The tool is free; if you use a cloud provider, you pay that provider's API fees. Whether the provider uses the data for training depends on that provider's terms; the README says nothing on this.
| `SKILLSPECTOR_PROVIDER` value | Required (README) |
|---|---|
| openai | OPENAI_API_KEY (optional OPENAI_BASE_URL) |
| anthropic | ANTHROPIC_API_KEY |
| bedrock | AWS credentials (AWS_PROFILE, AWS_REGION) |
| nv_build | NVIDIA_INFERENCE_KEY (build.nvidia.com) |
| gemini | GOOGLE_CLOUD_PROJECT and Google Cloud authentication |
| azure_openai | AZURE_OPENAI_API_KEY and AZURE_OPENAI_ENDPOINT |
| ollama | No key; local server (OLLAMA_BASE_URL) |
| openai_compatible | SKILLSPECTOR_COMPAT_API_KEY and SKILLSPECTOR_COMPAT_BASE_URL (vLLM, llama.cpp, etc.) |
| claude_cli, gemini_cli, opencode_cli | Your local CLI authentication; no key needed |
› export SKILLSPECTOR_PROVIDER=anthropic
export ANTHROPIC_API_KEY=your-key
skillspector scan ./my-skill/Each provider's default model is listed in the README and changes often; override it with SKILLSPECTOR_MODEL. The codex_cli provider is disabled because its read-only sandbox allows reading host files. The commands are for bash; the Windows PowerShell equivalent is $env:NAME = "value".
Is SkillSpector free? License and commercial use
- Commercial use, modification, copying and distribution (Apache 2.0)
- Patent license from the contributor granting the license (Apache 2.0 section 3)
- Scanning inside your own organization or in a CI pipeline (the license sets no quota)
- Removing copyright and license notices (they must be kept when distributing copies)
- Using the NVIDIA name and trademarks without permission (Apache 2.0 section 6)
- Expecting a warranty: the software is provided “as is”
Cost: the software is free. Money can only go to the LLM provider you choose (per token if it's in the cloud); with --no-llm there is no cost at all. No account or sign-up is needed for the tool (apart from the LLM provider's own key). Updates are up to you: uv tool update skillspector.
The license summary is taken from the Apache License 2.0 text and is not legal advice. The scanned skills' own licenses also apply.
What does SkillSpector miss? Turkish content and limits
| Scanning without running the skillYes | The analysis is static (pattern matching, Python AST, YARA) plus an optional LLM; the skill's code is never executed. |
|---|---|
| Turkish or other non-English contentPartly | The README's limitations list says it “may miss patterns in non-English content”. The bulk scanner lists multilingual detection for Chinese, Japanese and Korean; Turkish is not mentioned. For Turkish skills, LLM analysis may add a layer of assurance, but its performance has not been measured. |
| Text inside imagesNo | README: it cannot analyze image-based attacks. |
| Encrypted or compiled codeNo | Compiled or encrypted content cannot be analyzed. |
| Runtime behaviorNo | Static analysis only; no dynamic execution. |
| Protection / isolationNo | “Defense-in-depth, not a sandbox”: it does not isolate a skill you decide to install. |
| Windows supportUnclear | The README does not state operating system support explicitly; the development guide shows the Windows activation command. |
The score in the report is not a guarantee: SAFE means “the scanner found nothing”. If selected files were excluded or the analysis was incomplete, coverage counts as “partial” and SAFE is not given; for a strict gate, use --fail-on-incomplete. For false positives there is a baseline (accepting known findings).
The pattern count varies by source: the GitHub README says 71 patterns in 17 categories, the NVIDIA documentation page says 68 patterns. The tool is classified as “Alpha” and updated often (v2.11.0 on August 28, v2.12.0 on September 23, 2026); the rule set changes from version to version.
Frequently asked questions
What is SkillSpector and what is it for?
NVIDIA's open-source security scanner. It scans AI agent skills, such as those for Claude Code, Codex and MCP, before you install them, and gives a 0–100 risk score with a SAFE, CAUTION or DO NOT INSTALL recommendation.
How do I install SkillSpector?
It is not on PyPI; install it from GitHub: uv tool install git+https://github.com/NVIDIA/skillspector.git. It needs Python 3.12 to 3.14. If you don't want Python, it also runs with Docker.
Is SkillSpector free?
Yes, it is open source under the Apache 2.0 license. If you use a cloud provider for AI analysis, its API fees are yours; with --no-llm there is no cost.
Does SkillSpector send my data anywhere?
With LLM analysis on, eligible file contents go to the provider you choose; with --no-llm the contents stay local. Dependency names and versions are queried against OSV.dev in every case.
If SkillSpector says SAFE, is the skill definitely safe?
No. The tool is not a sandbox; it only does static analysis plus an optional LLM, and it may miss non-English content and text inside images. SAFE means nothing was found.
How do I use SkillSpector from Claude Code?
As an MCP server: install it with the [mcp] extra and add it with the command claude mcp add skillspector -- skillspector mcp. The server exposes the scan_skill tool.
Related guides
Sources
- SkillSpector GitHub repository (README)
- NVIDIA: scanning skills before installation
- License (Apache 2.0)
- pyproject.toml (version, Python requirement)
- Releases
- Development guide
Not clear in the official sources: An official statement of Windows and macOS support · performance on Turkish skills · official minimum hardware · the pattern count (71 or 68) · whether the LLM provider uses your data for training (depends on the provider; the README does not say) · any plan for a PyPI release. Each is covered in the relevant section along with what you can do.




