Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 12 additions & 1 deletion src/skillspector/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -524,7 +524,9 @@ def scan(

SKILLSPECTOR_PROVIDER Active LLM provider: openai | anthropic |
anthropic_proxy | bedrock | nv_build |
nv_inference. Defaults to the NVIDIA path
nv_inference | ollama | azure_openai |
openai_compatible | claude_cli | codex_cli |
gemini_cli. Defaults to the NVIDIA path
(nv_inference, falling back to nv_build in
OSS builds).
SKILLSPECTOR_MODEL Override the active provider's default
Expand All @@ -535,10 +537,19 @@ def scan(

OPENAI_API_KEY [+ OPENAI_BASE_URL] for SKILLSPECTOR_PROVIDER=openai
ANTHROPIC_API_KEY for SKILLSPECTOR_PROVIDER=anthropic
ANTHROPIC_PROXY_API_KEY +
ANTHROPIC_PROXY_ENDPOINT_URL for anthropic_proxy
AWS_PROFILE (optional) + AWS_REGION for SKILLSPECTOR_PROVIDER=bedrock
(AWS_PROFILE: standard boto3 credential
chain when unset; AWS_REGION default: us-west-2)
NVIDIA_INFERENCE_KEY for the NVIDIA providers
AZURE_OPENAI_API_KEY +
AZURE_OPENAI_ENDPOINT for azure_openai
SKILLSPECTOR_COMPAT_API_KEY +
SKILLSPECTOR_COMPAT_BASE_URL for openai_compatible

ollama uses the local Ollama service. claude_cli, codex_cli, and
gemini_cli use their CLI's existing local authentication session.
"""
if mcp_registry:
if recursive or baseline is not None or show_suppressed or yara_rules_dir is not None:
Expand Down
22 changes: 22 additions & 0 deletions tests/unit/test_cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,28 @@ def test_cli_version() -> None:
assert "v" in result.output


def test_cli_scan_help_lists_every_available_provider() -> None:
"""Built-in help names every provider accepted by the selector."""
result = runner.invoke(app, ["scan", "--help"])

assert result.exit_code == 0
for provider in (
"openai",
"anthropic",
"anthropic_proxy",
"bedrock",
"nv_build",
"nv_inference",
"ollama",
"azure_openai",
"openai_compatible",
"claude_cli",
"codex_cli",
"gemini_cli",
):
assert provider in result.output


def test_cli_scan_local_directory(tmp_path: Path) -> None:
"""scan with local directory runs graph and prints report."""
(tmp_path / "SKILL.md").write_text("---\nname: scan-test\n---\n# Safe", encoding="utf-8")
Expand Down
Loading