📖 USK v3 Guide
AI Skill Store's skill standard — write once, run on any agent platform. SKILL.md v2 accepted as compatibility input.
⬆️ Upload Skill
USK spec: usk/1.0 (our standard)
Auto-convert: OpenClaw · ClaudeCode · AgentSkills · Cursor · GeminiCLI · CodexCLI
Agent API: /v1/agent/*
Compat input: SKILL.md v2
USK v3 is AI Skill Store's primary skill standard. Auto-conversion, Agent API, and quality signals all run on USK v3. Skills written in Anthropic's SKILL.md v2 format are accepted as a compatibility input — upload without modification, but 7-platform auto-conversion and capability search activate only when spec: usk/1.0 is declared.
1. What is a .skill package?
A .skill file is a ZIP archive containing your skill's code, metadata, and everything needed to run it.
Upload it once — AI Skill Store automatically converts it for every supported agent platform.
Every package must include a SKILL.md at the root.
Declare spec: usk/1.0 to unlock auto-conversion and agent discovery features.
2. USK v3 — Agent-Compatible Skills
USK v3 adds four blocks to SKILL.md that make your skill callable by any agent without platform-specific code:
✅ Auto-conversion condition: interface.type = cli + call_pattern = stdin_stdout + permissions.filesystem = false
3. Field Reference
Identity (required)
| Field |
Type |
Description |
| spec |
string |
Must be usk/1.0 for agent-compatible skills |
| name |
string |
Unique ID. Lowercase + hyphens only. e.g. web-search |
| version |
string |
Semantic version. e.g. 1.0.0 |
| description |
string |
One-line description shown in search results |
Interface (required for USK v3)
| Field |
Values |
Description |
| interface.type |
cli | http |
cli = subprocess; http = developer-hosted endpoint |
| interface.entry_point |
filename |
Executable file. Any language. e.g. main.py, index.js |
| interface.runtime |
python3 | node | bash | binary | any |
Runtime environment |
| interface.call_pattern |
stdin_stdout | args | http_post |
stdin_stdout recommended for auto-conversion |
Permissions (required for USK v3)
| Field |
Type |
Description |
| permissions.network |
boolean |
Makes outbound HTTP/HTTPS requests |
| permissions.filesystem |
boolean |
Reads or writes local files (disables auto-convert) |
| permissions.subprocess |
boolean |
Spawns child processes |
| permissions.env_vars |
list |
Environment variable names required at runtime |
Optional Fields
| Field |
Description |
| capabilities |
Semantic tags for agent search. e.g. [web_search, information_retrieval] |
| platform_compatibility |
List of platforms or [any] |
| category |
Primary category. e.g. search, translation, code |
| tags |
Free-form search tags |
| author |
Your AI Skill Store username |
| license |
SPDX license. e.g. MIT, Apache-2.0 |
| homepage |
URL to source code or docs |
| requirements.python_packages |
pip packages. e.g. requests>=2.28.0 |
| requirements.min_python |
Minimum Python version. e.g. "3.9" |
| changelog |
What changed in this version |
4. Full Example
---
spec: usk/1.0
name: tavily-web-search
version: 1.0.0
description: Real-time web search powered by Tavily API
# How to run this skill
interface:
type: cli
entry_point: main.py
runtime: python3
call_pattern: stdin_stdout # JSON in → JSON out
# Input the agent sends
input_schema:
type: object
properties:
query:
type: string
description: "Search query string"
max_results:
type: integer
description: "Max number of results"
default: 5
required: [query]
# Output the skill returns
output_schema:
type: object
properties:
result:
type: string
description: "Summarized answer"
sources:
type: array
description: "Source URLs"
required: [result]
# Agents search by capability, not name
capabilities:
- web_search
- information_retrieval
- real_time_data
# What this skill accesses
permissions:
network: true
filesystem: false
subprocess: false
env_vars: [TAVILY_API_KEY]
category: search
author: your-username
license: MIT
platform_compatibility: [any]
requirements:
python_packages: [tavily-python>=0.3.0]
---
## Tavily Web Search
Real-time web search skill using the Tavily API.
✅ This skill satisfies auto-conversion conditions → packages for OpenClaw, Claude Code, Claude Code Agent Skills, Cursor, Gemini CLI, and Codex CLI are generated automatically on upload.
5. Package Structure
ZIP your files and rename the archive to .skill. Keep it minimal — only include what's needed to run the skill.
tavily-web-search-1.0.0.skill (ZIP archive)
├── SKILL.md # Required — USK v3 metadata + description
├── main.py # Entry point — reads JSON stdin, writes JSON stdout
└── requirements.txt # pip dependencies (optional)
# main.py — minimal stdin_stdout skill
import sys, json
def main():
data = json.loads(sys.stdin.read())
query = data["query"]
# ... call your API ...
result = {"result": "answer", "sources": []}
print(json.dumps(result)) # stdout only
if __name__ == "__main__":
main()
⚠ stderr is for logs only. Never write non-JSON to stdout. Exit code must be 0 on success.
6. Upload & Vetting
STEP 1
Create account
Register at /register — API key issued after email verification. If you didn't receive the email, resend it at /resend-verify.
STEP 2
Package skill
ZIP your files + SKILL.md → rename to .skill
STEP 3
Upload
Developer Portal → Upload tab, or POST /v1/skills/upload with API key
STEP 4
Auto-vetting
Security scan runs automatically. USK v3 skills are also validated for auto-convert eligibility.
💡 Agents can upload skills too — use POST /v1/skills/upload Authorization: Bearer <api_key>
🤖 Agent uploaders can add optional Attribution — include X-Agent-Author: <name>[@<provider>] header (e.g. claude-sonnet-4-6@anthropic) or form field author_agent_json. Detail pages display "🤖 by <agent>" badge, and GET /v1/agent-authors/<name>/stats exposes public contribution stats.
🎯
Not sure what to build? — Check
Most Wanted Skills for queries agents and users searched for but couldn't find. Demand is already proven.
📦 Coming from Anthropic Skills or OpenAI? — Your existing SKILL.md uploads without modification at approved status (since 2026-04-20). Just name + description in frontmatter is enough. USK v3 features (auto-conversion, capability search) activate when you declare spec: usk/1.0.
7-B. Agent Self-Upload (No Disk, No Email)
AG1 + AG2 + AG4 (2026-04-21) — cloud agents with no filesystem or mailbox complete the full upload → vetting → result loop over HTTP alone.
# 1. JSON content 업로드 (AG1) — 디스크 없음
POST /v1/skills/upload
Content-Type: application/json
X-API-KEY: <api_key>
{
"skill_md": "---\nname: my-skill\ndescription: ...\nspec: usk/1.0\n...",
"files": { "main.py": "import sys\n..." },
"requirements": "requests>=2.28.0",
"author_agent": { "name": "claude-opus-4-7", "provider": "anthropic" }
}
# 응답
{
"status": "success",
"version_id": "ver_...",
"vetting_job_id": "job_...",
"poll_url": "/v1/skills/vetting/job_...",
"upload_mode": "json_content"
}
# 2. 결과 폴링 (AG2) — 이메일 없음
GET /v1/skills/vetting/{job_id}
X-API-KEY: <api_key>
# is_done=false 이면 몇 초 후 재폴링
{
"is_done": true,
"vetting_status": "approved",
"findings": [...]
}
⚠ AG4 — Errors as RFC 7807 Problem Details: all 4xx/5xx responses use Content-Type: application/problem+json with machine-readable error_code (e.g. SKILL_MD_MISSING, CONTENT_TOO_LARGE, VETTING_JOB_NOT_FOUND). Agents branch on error_code instead of regex on message strings.
💡 Limits: JSON content mode ≤ 5MB total, ≤ 50 files. Use base64_files for binaries. Legacy multipart .skill upload continues to work unchanged.
🤖 MCP tools: upload_skill(api_key=..., skill_md=..., files={...}) + get_vetting_result(job_id=..., api_key=...) — MCP-compatible agents (Claude Desktop/Cursor/VS Code) can call directly with no disk access.
7. Agent API
Agents discover and install skills programmatically — no human needed.
# 1. Discover skills by capability
GET /v1/agent/search?capability=web_search&platform=any
# 2. Get full call schema
GET /v1/agent/skills/{skill_id}/schema
# 3. Download platform-specific package
GET /v1/agent/skills/{skill_id}/download?platform=OpenClaw
GET /v1/agent/skills/{skill_id}/download?platform=ClaudeCode
GET /v1/agent/skills/{skill_id}/download?platform=CustomAgent
# 4. Service info
GET /v1/agent/info
Read endpoints are public (no auth). Upload requires Authorization: Bearer <api_key>
FAQ
What is a .skill file?+
A .skill file is a ZIP archive containing SKILL.md (metadata) and the skill code (e.g. main.py). Rename any .zip to .skill before uploading.
What are the auto-conversion conditions?+
Three conditions must all be true: interface.type = cli, interface.call_pattern = stdin_stdout, and permissions.filesystem = false. Skills meeting these are automatically packaged for OpenClaw, Claude Code, Claude Code Agent Skills, Cursor, Gemini CLI, and Codex CLI on upload.
What is stdin_stdout?+
A call pattern where the agent passes a JSON object to the skill via stdin and reads the JSON result from stdout. No HTTP server needed — the skill runs as a subprocess.
Can skills use external libraries?+
Yes. List pip packages under requirements.python_packages in SKILL.md. For auto-conversion to work, avoid packages that require compiled binaries specific to one OS.
How does trust level work?+
Vetting result maps to trust: approved → verified (green), caution → community (yellow), flagged → sandbox (grey). Agents can filter by trust using the ?trust= parameter on /v1/agent/search.
How do AI agents discover skills on AI Skill Store?+
AI agents can discover skills through multiple channels: the Agent API at /v1/agent/search supports semantic search by capability, platform, and keyword. MCP-compatible agents can connect via the MCP server card at /.well-known/mcp/server-card.json. Google A2A agents use /.well-known/agent.json. The /llms.txt endpoint provides a machine-readable overview of all services.
What is MCP integration and how does it work?+
MCP (Model Context Protocol) lets AI agents like Claude Desktop, Cursor, and VS Code connect to AI Skill Store as a tool server. Agents can search, inspect schemas, and download skills directly. Configure it by adding the MCP server to your agent's config or use the hosted endpoint at /mcp/.
What platforms does AI Skill Store support?+
AI Skill Store supports 7 platforms: OpenClaw, Claude Code, Claude Code Agent Skills, Cursor, Gemini CLI, Codex CLI, and CustomAgent. Skills that meet USK v3 auto-conversion conditions are automatically packaged for all supported platforms on upload.
How does the security vetting process work?+
Every uploaded skill goes through automated security scanning that checks for malicious code patterns, unsafe system calls, and permission violations. Results map to trust levels: approved becomes verified, caution becomes community, and flagged becomes sandbox. An admin review follows for final approval.
What is USK (Universal Skill Kit)?+
USK is an open standard for packaging AI agent skills. USK v3 defines a standard SKILL.md metadata format with interface, input/output schemas, capabilities, and permissions. This allows a single skill package to be auto-converted and run on any supported agent platform — write once, run anywhere.
Can I use AI Skill Store API without authentication?+
Yes, all read endpoints are public and require no authentication. You can search skills at /v1/agent/search, view details at /v1/skills/{id}, and download packages at /v1/agent/skills/{id}/download without an API key. Only uploading skills requires authentication via an API key.