Official Python SDK for SkillPlus
Project description
SkillPlus Python SDK
Official Python SDK for the hosted SkillPlus API.
SkillPlus provides security intelligence for AI skills and agent-facing software, helping developers, teams, and platforms scan, understand, and trust AI skills before installation, approval, or integration.
Install
pip install skillplus
Requires Python 3.10+.
Basic usage
from skillplus import SkillPlus
client = SkillPlus(api_key="skp_...")
result = client.query("https://www.skills.sh/vercel-labs/skills/find-skills")
# GitHub repositories work the same way: "https://github.com/owner/repo"
if result.status == "found" and result.report:
print(result.report.verdict) # "safe" | "medium" | "high" | "unknown"
Prefer verdict over the legacy rating field — it folds historical values
onto the current three-tier scale (UI labels: safe→Safe, medium→Caution,
high→High Risk, unknown→Unrated).
One call that always ends with a report
When you just want the final answer — scanning first if the skill has never been seen — use the wait helper. It polls internally and returns the completed report:
report = client.wait_for_report("https://www.skills.sh/vercel-labs/skills/find-skills")
print(report.verdict)
print(report.summary.total_issues)
if report.supply_chain:
print(report.supply_chain.blacklist_hits) # poisoned-dependency hits
Advanced options
For repositories containing many skills, or to queue a scan automatically when no report exists yet:
result = client.query(
"https://github.com/owner/repo", # multi-skill repos are usually on GitHub
skill_path="skills/example", # pick one skill in the repo
scan_if_missing=True, # queue a scan if no report exists
)
Client options:
client = SkillPlus(
api_key="skp_...",
base_url="https://skillplus.xyz", # staging / self-hosted override
timeout=30.0, # per-request timeout (seconds)
max_retries=2, # retries on 429/502/503, honoring Retry-After
)
Context manager
from skillplus import SkillPlus
with SkillPlus(api_key="skp_...") as client:
result = client.scan("https://www.skills.sh/vercel-labs/skills/find-skills")
print(result.status)
Methods
| Method | Use case |
|---|---|
query(...) |
Check whether SkillPlus already has a report for a skill. |
scan(...) |
Request a scan when a report is missing or when a fresh check is needed. |
wait_for_report(...) |
Query-and-wait: scans if missing, polls, and returns the completed report. |
get_report(scan_id) |
Retrieve structured report data: verdict, findings, AI audit, supply-chain snapshot. |
get_badge(scan_id) |
Fetch the badge SVG for embedding. |
get_badge_url(scan_id) |
Generate a badge URL for READMEs, marketplaces, or internal portals. |
Error handling
from skillplus import SkillPlus, SkillPlusError
client = SkillPlus(api_key="skp_...")
try:
result = client.query("https://www.skills.sh/vercel-labs/skills/find-skills")
except SkillPlusError as error:
print(error.status_code)
print(error.message)
Development
uv sync --extra dev
uv run pytest
uv build
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file skillplus-0.1.1.tar.gz.
File metadata
- Download URL: skillplus-0.1.1.tar.gz
- Upload date:
- Size: 10.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
118364b70cdcf8e7d8e4780a4cb5c10288c27b243aba66979f29baafcb0f60e9
|
|
| MD5 |
c3955024ac137fe4b8dbc06a0dcd40ba
|
|
| BLAKE2b-256 |
77d850d14e7decb9097a9dff9c879002c434ab092eed3bc16612b714ab671a7d
|
File details
Details for the file skillplus-0.1.1-py3-none-any.whl.
File metadata
- Download URL: skillplus-0.1.1-py3-none-any.whl
- Upload date:
- Size: 9.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.29 {"installer":{"name":"uv","version":"0.11.29","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b42378e3573f75a9d9414afa2d6adbe23be21d8968acb6e6cef3459ff46b59d2
|
|
| MD5 |
e2d95ea35fcae3784b4a52dbcf0dcdea
|
|
| BLAKE2b-256 |
f48884c55aa3532595d6066f26c1f8a92958590ddbbda6b91827a9af6147de43
|