security · verified 2026-08-28 ✓ Verified

skillspector

Verified2026-08-28: pre-install vulnerability/malicious-pattern scan verified; NVIDIA skill security scanner.

Scans skills before install for vulnerabilities, malicious patterns and unsafe configurations.

Category: security Complete entry Security: Security reviewed Domain: Security & Governance Verified 2026-08-28 v2.10.0~2.10.0 Conflicts: none Source: Trove (independent adaptation, unofficial)

Install: curl -sL -o skillspector-2.10.0-py3-none-any.whl https://gh-proxy.com/https://github.com/NVIDIA/SkillSpector/releases/download/v2.10.0/skillspector-2.10.0-py3-none-any.whl && pip install -i https://pypi.tuna.tsinghua.edu.cn/simple skillspector-2.10.0-py3-none-any.whl && skillspector --version

What you will run into

What this tool solves: a security check before installing skills. SkillSpector (by NVIDIA) scans skills (SKILL.md/directories/repos) for vulnerabilities, malicious patterns and unsafe configurations — before enabling a skill package like agent-skills or superpowers, scan it first. When to use it:

  • You download skills from the internet to install into your Agent (scan before install, peace of mind after);
  • You want a static scan (no API key, --no-llm);
  • You want to wire the scanner into your Agent flow as an MCP server (official form).

When not to use it: you only trust your own skills and never install external ones — the scanner itself is read-only, just install it and keep it around. Boundary with neighboring tools: complementary to agentshield (Claude Code config audit) — it scans skill content, agentshield scans Agent config; both are read-only with no background process.

Path: Quick fix (30s, one command) -> Step by step (skimmable) -> How to confirm it works (success criteria). In a hurry? Jump to Quick fix.

Why this happens

How it works: pip package skillspector (or release wheel). skillspector scan <target> --no-llm does a static scan (no key) and outputs a SkillSpector Security Report (Score/Severity/Components/Issues list, including detections like SC2 external script fetching, TM2 toolchain abuse); without --no-llm it tries LLM semantic analysis (needs OPENAI_API_KEY or SKILLSPECTOR_PROVIDER, skips with a warning when no key). Supports scanning directories/files, Git repos/URLs/zips (officially supported, not tested); skillspector mcp starts an MCP server (official form, not tested). Key concepts:

  • --no-llm: static mode (no API key);
  • Report: structured report with Score/Severity/Components/Issues;
  • mcp: MCP server form (for agent tool calls).

Where it writes: zero write surface (read-only scanner, no background process).

Quick fix (skip the explanation, just run it)

note: verified path in this environment: skillspector is NOT on PyPI (evidence — 404 on both the official index and the Tsinghua mirror); the distribution channel is the GitHub Release wheel — download via gh-proxy on mainland, pip deps via the Tsinghua mirror
curl -sL -o skillspector-2.10.0-py3-none-any.whl https://gh-proxy.com/https://github.com/NVIDIA/SkillSpector/releases/download/v2.10.0/skillspector-2.10.0-py3-none-any.whl && pip install -i https://pypi.tuna.tsinghua.edu.cn/simple skillspector-2.10.0-py3-none-any.whl
skillspector --version

Expected output: 2.10.0(无 --version 标志时以 --help 为准)

Step by step

Step 1: Install (why the version is locked: 2.10.0 is the verified collection version)

Why: skillspector is not on PyPI; the distribution channel is the GitHub Release wheel — download the wheel first (gh-proxy on mainland), pip only installs the wheel and its dependencies (deps via the Tsinghua mirror). After install verify the version (2.10.0; if the package has no --version flag, go by --help).

curl -sL -o skillspector-2.10.0-py3-none-any.whl https://gh-proxy.com/https://github.com/NVIDIA/SkillSpector/releases/download/v2.10.0/skillspector-2.10.0-py3-none-any.whl && pip install -i https://pypi.tuna.tsinghua.edu.cn/simple skillspector-2.10.0-py3-none-any.whl
skillspector --version

Expected output: 2.10.0(无 --version 标志时以 --help 为准) After install, confirm:

  • version output or --help works.

Stuck? How to recover:

  • wheel download slow → switch gh-proxy mirrors (gh-proxy.com / gh-proxy.llyke.com race, the latter measured faster 2026-08-28); pip deps slow → confirm the Tsinghua mirror prefix;
  • command not found → activate the venv first in venv setups.

Step 2: Statically scan your first skill directory (verified in this environment, no API key)

Why: --no-llm is static mode and needs no key. Scan your skill directory (e.g. ./skills/my-skill) and get the security report.

skillspector scan ./skills/my-skill --no-llm

Expected output: SkillSpector Security Report(Score/Severity/Components/Issues 清单,含 SC2 外部脚本拉取、TM2 工具链滥用等检出) After install, confirm:

  • the report has Score/Severity/Issues;
  • no error without a key (--no-llm mode).

Stuck? How to recover:

  • missing key error → confirm you used --no-llm (without it, it tries LLM analysis; no key auto-skips with a warning, which is not an error).

Step 3: LLM semantic analysis / remote scan / MCP (as needed)

Why: without --no-llm it runs static + semantic analysis (needs OPENAI_API_KEY or SKILLSPECTOR_PROVIDER); scanning Git repos/URLs/zips is officially supported (not tested); MCP server form (not tested).

skillspector scan ./skills/my-skill

Expected output: 静态 + 语义分析报告(semantic_developer_intent/quality_policy/security_discovery 分析器;无 key 时自动跳过并警告)

skillspector scan https://github.com/owner/repo

Expected output: 同报告格式(Source 显示远端地址)

skillspector mcp

Expected output: MCP server 启动(供 agent 工具调用) Stuck? How to recover:

  • remote repo unreachable → confirm the network and repo URL (officially supported form, not tested);
  • MCP won't start → follow the official docs (not tested in this environment).

How to confirm it works

Step 1: Confirm install and static scan (no key)

Why: skillspector --version confirms the version; a --no-llm static scan producing a report with Score/Severity/Issues means the core path works and needs no API key.

skillspector --version
skillspector scan ./skills/my-skill --no-llm

Expected output: 2.10.0;SkillSpector Security Report(Score/Severity/Components/Issues 清单) Stuck? How to recover:

  • missing key error → confirm you used --no-llm (without it, it tries LLM analysis; no key auto-skips with a warning, not an error);
  • command not found → activate the venv first in venv setups.

Step 2: Confirm LLM analysis / MCP form (as needed)

Why: running without --no-llm and getting the semantic analyzers means the LLM path works (needs a key); skillspector mcp starting means the MCP server form is in place (not tested in this environment).

skillspector scan ./skills/my-skill

Expected output: 静态 + 语义分析报告(semantic_developer_intent/quality_policy/security_discovery;无 key 时自动跳过并警告) Stuck? How to recover:

  • semantic section missing without a key → expected behavior (auto-skip with warning); rerun with OPENAI_API_KEY or SKILLSPECTOR_PROVIDER;
  • MCP won't start → follow the official docs (not tested in this environment).

Other environments

  • Python version: >= 3.10; the wheel works on any Python 3 version (verified in collection).
  • Read-only tool: zero write surface, no background process — scanning skill directories or Agent config is read-only, no residue.
  • LLM analysis: optional; without a key, --no-llm static mode covers everyday security checks.
  • Co-install: complementary to agentshield, no conflict (scans skill content vs Agent config, both read-only).

Daily usage

Startup and entry

CLI on demand; no resident service.

Common operations

Operation 1: Statically scan a skill directory (verified in this environment; no API key)

skillspector scan ./skills/my-skill --no-llm

Expected output: SkillSpector Security Report(Score/Severity/Components/Issues 清单,含 SC2 外部脚本拉取、TM2 工具链滥用等检出) Operation 2: LLM semantic analysis (optional; needs OPENAI_API_KEY or SKILLSPECTOR_PROVIDER)

skillspector scan ./skills/my-skill

Expected output: 静态 + 语义分析报告(semantic_developer_intent/quality_policy/security_discovery 分析器;无 key 时自动跳过并警告) Operation 3: Scan a Git repo/URL/zip (officially supported, not tested)

skillspector scan https://github.com/owner/repo

Expected output: 同报告格式(Source 显示远端地址) Operation 4: Wire in as an MCP server (official form, not tested)

skillspector mcp

Expected output: MCP server 启动(供 agent 工具调用)

Data and directories

  • Zero write surface: no config, no cache directory (read-only scanner).

Uninstall & cleanup

note: pip package auto-uninstall (idempotent); zero write surface
pip uninstall -y skillspector 2>/dev/null || true
command -v skillspector >/dev/null 2>&1 && echo '残留: skillspector 仍存在' || echo 'skillspector removed: OK'

Expected output: skillspector removed: OK

Dependency warnings

  • Version: [2.10.0, 2.10.0] locked (verified collection version).
  • Environment: Python >= 3.10; the wheel works on any Python 3 version (verified in collection).
  • Network: NOT on PyPI — wheel is downloaded from the GitHub Release (gh-proxy on mainland, gh-proxy.llyke.com measured faster 2026-08-28); pip deps via the Tsinghua mirror (recommended on mainland).
  • Write surface: zero (read-only scanner, no background process).
  • LLM analysis: optional, needs OPENAI_API_KEY or SKILLSPECTOR_PROVIDER; without a key use --no-llm static mode.
  • Co-install: complementary to agentshield, no conflict (scans skill content vs Agent config, both read-only).

FAQ

  • Q: Can I use it without an API key? A: Yes. --no-llm static mode needs no key (verified in this environment); without --no-llm and no key, it auto-skips LLM analysis with a warning.
  • Q: Will scanning modify my files? A: No. Read-only scanner, zero write surface, no background process.
  • Q: Does it duplicate agentshield? A: No — it scans skill content (SC2/TM2 detections etc.), agentshield scans Claude Code config (secrets/permissions/hooks/MCP); after installing skills, run both.
  • Q: Where to report problems? A: install/uninstall issues on this marketplace go through the entry feedback channel; project issues go to the author's repository.
Verification Evidence
  • Verified: local repro log (2026-08-28, pip install + version/help + static scan smoke).
  • Not tested: LLM semantic analysis (no key); remote repo scanning and the MCP form (commands from official docs).

← Trove | evidence & precheck records kept locally; conclusions and sources published here