Open infrastructure for discovering, evaluating, analyzing, and routing reusable AI agent skills.
Website · Python SDK · Examples · Experiments · Paper
SkillNet provides unified infrastructure for the agent skill lifecycle:
- Discovery: search a public skill library by keyword or semantic intent.
- Installation: download skill folders from GitHub into local agent workspaces.
- Creation: generate structured skills from repositories, documents, prompts, or execution traces.
- Evaluation: assess skills for safety, completeness, executability, maintainability, and cost awareness.
- Analysis: extract capabilities and usage scenarios, and infer relationships between local skills.
- Routing: select skills for a task from your local library, with selection reasons.
-
[2026-08-20] The updated SkillNet report presents SkillNet-Gym, with executable benchmarks for skill construction, retrieval, and composition, and SkillNet-Fabric, which routes tasks through a Wiki built for each task.
-
[2026-07-11] The SkillNet library now indexes 500K+ GitHub skills, with improved deduplication and broader coverage of scientific research and data analysis. This update also adds local scenario graphs and orchestration.
-
[2026-03-26] JiuwenClaw integrates SkillNet as a built-in skill marketplace, bringing skill discovery and installation into its agent workflow.
-
[2026-03-12] The SkillNet MCP server, maintained by CycleChain, makes SkillNet tools available to MCP-compatible agents.
-
[2026-03-04] SkillNet: Create, Evaluate, and Connect AI Skills is now available on arXiv, describing the project's approach to reusable agent skills.
-
[2026-02-23] OpenClaw now includes SkillNet as a built-in skill for discovering and reusing agent capabilities.
Explore the public skill library on skillnet.openkg.cn.
- Find skills: search the skill library by keyword or semantic intent, and filter by category.
- Review skills: inspect descriptions, evaluation ratings, and GitHub sources, with download links for reuse.
- Explore collections: browse curated skill collections for specific domains and tasks, and inspect the relationships between their skills.
The site also introduces SkillNet-Gym for skill graph construction and lifecycle benchmarking, and SkillNet-Fabric for Wiki-based skill routing, including research results and a guided routing demo.
skillnet.mp4
Requires Python 3.10 or newer.
pip install skillnet-aiInstall optional dependencies for analysis and routing:
pip install "skillnet-ai[graph]" # scenario analysis
pip install "skillnet-ai[graph,claude]" # analysis and routing via Claude
pip install "skillnet-ai[graph,codex]" # analysis and routing via Codexfrom skillnet_ai import SkillNetClient
client = SkillNetClient()The client reads environment variables and saved settings. See Configuration to set up model endpoints or GitHub authentication.
Search the hosted SkillNet catalog by keyword or semantic intent. Keyword search defaults to sorting by stars; vector search uses the search service's embeddings.
results = client.search(
q="analyze financial PDF reports",
mode="vector",
threshold=0.85,
limit=10,
)
for skill in results:
print(skill.skill_name, skill.stars, skill.skill_url)Download a GitHub skill folder and its resources, check its structure, and return
the installed path. Use overwrite=True to replace an existing folder.
local_path = client.download(
url="https://github.com/anthropics/skills/tree/main/skills/pdf",
target_dir="./my_skills",
)
print(local_path)Generate skill packages from a prompt, repository, document, or execution trace. Choose one source per call; the result is a list of generated directory paths.
paths = client.create(
prompt=(
"Create a csv-quality-checker skill that checks CSV files for missing "
"values and duplicate rows without modifying the input."
),
output_dir="./my_skills",
)
print(paths)
client.create(
github_url="https://github.com/zjunlp/DeepKE",
output_dir="./my_skills",
)
client.create(
office_file="./guide.pdf",
output_dir="./my_skills",
)Assess a local skill or GitHub skill URL across five quality dimensions. Each
dimension contains a level (Good, Average, or Poor) and a reason.
Evaluation reviews the skill's instructions and supporting files without executing
its scripts.
report = client.evaluate("./my_skills/pdf")
print(report["safety"]["level"], report["safety"]["reason"])
print(report["maintainability"]["level"], report["maintainability"]["reason"])Extract scenarios and capabilities from local skills, then build a reusable relationship graph, retrieval index and Wiki for routing.
analysis = client.analyze("./my_skills", output_dir="./skillnet_index")
print(analysis.index_dir)
print(analysis.skill_count, analysis.relation_counts)The graph has two relations: directed compose_with for an output or state from
one skill that supports another, and undirected similar_to for comparable
capabilities. Both are tied to specific scenarios.
analyze reads direct child folders containing SKILL.md. Its default output is
<skills_dir>/.skillnet; pass output_dir to choose another location. Reanalyze
after editing skills to update the snapshot used by routing.
See analysis options and index details.
Select up to k skills for a task using an index created by analyze. Hybrid
search and graph expansion identify candidates; a Claude or Codex Agent SDK
compares them in a task Wiki containing skill profiles, relationships, and source text.
result = client.route(
"Extract tables from my PDF report and check the resulting CSV "
"for missing values and duplicate rows.",
index_dir="./skillnet_index",
k=5,
)
for skill in result.skills:
print(skill.skill_id, skill.name, skill.path, skill.reason)Relations guide candidate exploration; the task and each skill's constraints determine the final selection.
route returns skills (skill_id, name, path, reason) and available SDK
usage. It selects up to k skills, possibly none. The selected set may cover
only part of a task, and its order does not specify execution order.
See routing options and endpoint configuration.
The CLI exposes the same six operations. Use python -m skillnet_ai wherever
the skillnet command is unavailable on your PATH.
| Command | What it does | Example |
|---|---|---|
search |
Search SkillNet | skillnet search "pdf" --mode vector |
download |
Install a skill | skillnet download <url> -d ./my_skills |
create |
Create a skill package | skillnet create --prompt "A skill for table extraction" |
evaluate |
Evaluate a local or remote skill | skillnet evaluate ./my_skill |
analyze |
Build a local scenario graph and index | skillnet analyze ./my_skills --output-dir ./skillnet_index |
route |
Select local skills for a task | skillnet route "analyze my CSV" --index-dir ./skillnet_index |
Use skillnet <command> --help for full options, or see the
CLI examples. Add --json for a structured
{ok, data, error} response on stdout; logs go to stderr.
create checks the generated package structure; add --evaluate to request a
model assessment as well. Use skillnet validate <skill_dir> for a local structure
check without a model call.
Search and public downloads need no API key. Create, evaluate, and analyze use an OpenAI-compatible Chat Completions endpoint. Analyze also needs an embedding endpoint; route uses that same embedding endpoint and a separately configured Claude or Codex Agent SDK.
Settings resolve in this order: explicit arguments → environment variables →
user configuration → defaults. Load any .env file into your environment before
calling the SDK; it does not load one automatically.
| Variable | Purpose | Default |
|---|---|---|
API_KEY |
create, evaluate, analyze |
unset |
BASE_URL |
Chat Completions endpoint for create, evaluate and analyze | https://api.openai.com/v1 |
SKILLNET_MODEL |
Model for create, evaluate, and analyze | gpt-4o |
GITHUB_TOKEN |
Private repos or higher GitHub rate limits | unset |
GITHUB_MIRROR |
Public download fallback; disabled with GitHub authentication | unset |
SKILLNET_API_URL |
Hosted search service URL | http://api-skillnet.openkg.cn |
EMBEDDING_API_KEY |
analyze and route |
unset |
EMBEDDING_BASE_URL |
analyze and route |
unset |
EMBEDDING_MODEL |
analyze and route |
unset |
SKILLNET_EXPLORER_BACKEND |
route: claude or codex |
claude |
SKILLNET_EXPLORER_API_KEY |
route SDK credential |
unset |
SKILLNET_EXPLORER_BASE_URL |
route SDK-compatible base URL |
unset |
SKILLNET_EXPLORER_MODEL |
route SDK model |
unset |
Linux and macOS:
export API_KEY="your-api-key"
export BASE_URL="https://api.openai.com/v1"
export SKILLNET_MODEL="gpt-4o"Windows PowerShell:
$env:API_KEY = "your-api-key"
$env:BASE_URL = "https://api.openai.com/v1"
$env:SKILLNET_MODEL = "gpt-4o"Analysis and routing require additional settings from the table above. See
endpoint configuration
for complete examples. skillnet configure --interactive saves settings locally;
skillnet doctor --json checks configuration and optional dependencies.
The SkillNet search API is public and requires no authentication.
curl "http://api-skillnet.openkg.cn/v1/search?q=pdf&sort_by=stars&limit=5"
curl "http://api-skillnet.openkg.cn/v1/search?q=reading%20charts&mode=vector&threshold=0.8"Search API parameters
Endpoint: GET http://api-skillnet.openkg.cn/v1/search
| Parameter | Type | Default | Description |
|---|---|---|---|
q |
string | required | Search query, keywords or natural language |
mode |
string | keyword |
keyword or vector |
category |
string | unset | Filter by category |
limit |
int | 10 |
Results per page, max 50 |
page |
int | 1 |
Page number, keyword mode only |
min_stars |
int | 0 |
Minimum star count, keyword mode only |
sort_by |
string | stars |
stars or recent, keyword mode only |
sort_order |
string | desc |
desc or asc, keyword mode only; REST API only |
threshold |
float | 0.8 |
Similarity threshold, vector mode only |
Install the SkillNet skill to give your agent access to all six operations. See installation and configuration and agent setup for instructions.
The demo below shows Claude Code using the SkillNet skill.
claudecode-skillnet.mp4
The community SkillNet MCP server,
maintained by CycleChain, wraps the SkillNet CLI.
It requires Python, Node.js, and an installed skillnet-ai package.
git clone https://github.com/CycleChain/skillnet-mcp
cd skillnet-mcp
npm installDocker:
docker pull fmdogancan/skillnet-mcp:latestFollow the MCP setup guide to register the server with your agent and check its available tools and configuration requirements.
OpenClaw includes SkillNet as a built-in skill; JiuwenClaw integrates it into its skill marketplace. See the JiuwenClaw guide.
The demo below shows SkillNet running inside OpenClaw to discover and use reusable skills.
openclaw-skillnet.mp4
The scientific workflow notebook illustrates skill discovery and reuse for scRNA-seq analysis, pathway lookup, and target validation. It uses a predefined plan and simulated data for parts of the demonstration.
Open the scientific workflow notebook.
examples/: SDK demos and notebook workflows.experiments/: reproduction scripts for ALFWorld, WebShop, and ScienceWorld.
Complete the benchmark environment setup before running the experiments. Each benchmark has separate environment and data dependencies.
cd experiments
python alfworld_run.py --model o4-mini --split dev --max_workers 10 --exp_name alf_test --use_skill
python scienceworld_run.py --model o4-mini --split test --max_workers 5 --exp_name sci_test --use_skill
python webshop_run.py --model o4-mini --max_workers 3 --exp_name web_test --use_skill- Broader evaluation of task routing across local skill libraries.
- More curated skill collections and routing Wikis.
- Stronger skill evaluation and regression testing.
- Extend SkillNet-Fabric routing across skill collections.
- Expand SkillNet-Gym lifecycle evaluation and training environments.
Contributions are welcome: bug fixes, documentation, examples, integrations, and new skills all help. Please keep pull requests focused and include reproduction steps or examples when possible.
See the SDK development guide for code organization and local checks.
If SkillNet is useful in your research or agent system, please cite:
@article{liang2026skillnet,
title={{SkillNet}: Create, Evaluate, and Connect {AI} Skills},
author={Liang, Yuan and Zhong, Ruobin and Xu, Haoming and Jiang, Chen and Zhong, Yi and Fang, Runnan and Gu, Jia-Chen and Deng, Shumin and Yao, Yunzhi and Wang, Mengru and others},
journal={arXiv preprint arXiv:2603.04448},
year={2026}
}SkillNet is licensed under MIT. Skills from external repositories retain their own licenses.

