Skill deployer
Skill onfire7777/universal-ai-skills-library/skills/skill-deployer
Hosted project-UI compatibility adapter for deploying skills through a provider gRPC-web API. Packages skills as zips, uploads/deletes/syncs per-project skill sets, and curates domain-relevant skills using LLM analysis. Use only when filesystem skills must be visible in a hosted project UI sidebar or synchronized across hosted projects.From its SKILL.md
npx -y skills add onfire7777/universal-ai-skills-library --skill skill-deployerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 14 stars14 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as Unspecified. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
5.7 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it
Skill Deployer
Deploy skills from the sandbox filesystem into a hosted project UI - making them visible in the project sidebar, available as slash commands, and persistent across tasks. This is a compatibility adapter; universal cross-AI setups should use skill-router skill <name> and OpenSkills-style sync instead.
How It Works
Skills in /home/ubuntu/skills/ are invisible in many hosted project UIs by default. This skill bridges that gap:
- Packages each skill directory into a
.zip(SKILL.md + scripts/references at root) - Authenticates with the provider gRPC-web API using a JWT from the browser session
- Uploads zips to specific projects via
UploadProjectSkillendpoint - Skills then appear in the project sidebar under "Skills" and as slash commands in new tasks
Prerequisites
Before deploying, two things are needed:
1. JWT Token — Extract from the browser while the user is logged into the target provider web app:
// Run via browser_console_exec tool:
(document.cookie.split(';').find(c => c.trim().startsWith('session_id=')) || '').split('=').slice(1).join('=') || 'TOKEN_NOT_FOUND'
Save to file: echo "TOKEN" > /tmp/skill_deployer_token.txt
2. Project UIDs — Found in the URL when viewing a project:
/app/project/<PROJECT_UID>
Extract from sidebar via browser_console_exec or by clicking each project.
Commands
Package Skills (No Upload)
Create zip files from all skills in the skills directory:
python3 /home/ubuntu/skills/skill-deployer/scripts/deploy_skills.py \
--token "$(cat /tmp/skill_deployer_token.txt)" --package
List Skills in a Project
See what's currently in a project's UI:
python3 /home/ubuntu/skills/skill-deployer/scripts/deploy_skills.py \
--token "$(cat /tmp/skill_deployer_token.txt)" --project-uid UID --list
Upload a Single Skill to UI
Package and upload one skill by name:
python3 /home/ubuntu/skills/skill-deployer/scripts/deploy_skills.py \
--token "$(cat /tmp/skill_deployer_token.txt)" --project-uid UID --upload-skill skill-name
Upload All Skills from Zip Directory
python3 /home/ubuntu/skills/skill-deployer/scripts/deploy_skills.py \
--token "$(cat /tmp/skill_deployer_token.txt)" --project-uid UID --upload-dir /tmp/skill_zips
Delete a Skill from UI
python3 /home/ubuntu/skills/skill-deployer/scripts/deploy_skills.py \
--token "$(cat /tmp/skill_deployer_token.txt)" --project-uid UID --delete-name skill-name
Sync Project to Exact Skill Set
Deletes skills not in the list, uploads missing ones:
python3 /home/ubuntu/skills/skill-deployer/scripts/deploy_skills.py \
--token "$(cat /tmp/skill_deployer_token.txt)" --project-uid UID \
--sync skill-a skill-b skill-c
Multi-Project Deployment with LLM Curation
For deploying curated, domain-relevant skills to multiple projects at once.
Step A — Create projects file (projects.json):
{
"projects": [
{
"name": "My Web App",
"uid": "abc123",
"context": "Full-stack React + Node web app with auth and database",
"tasks": ["frontend dev", "API design", "database queries"],
"max_skills": 300
}
]
}
Step B — Run LLM curation (selects universal + domain-specific skills):
python3 /home/ubuntu/skills/skill-deployer/scripts/curate_for_project.py \
--projects projects.json --output deployment_plan.json
Step C — Preview the plan:
python3 /home/ubuntu/skills/skill-deployer/scripts/deploy_skills.py \
--token "$(cat /tmp/skill_deployer_token.txt)" --plan deployment_plan.json --dry-run
Step D — Deploy to all projects:
python3 /home/ubuntu/skills/skill-deployer/scripts/deploy_skills.py \
--token "$(cat /tmp/skill_deployer_token.txt)" --plan deployment_plan.json
Options
| Flag | Default | Description |
|---|---|---|
--api-base | none | Provider API base URL; required for API calls unless SKILL_DEPLOYER_API_BASE is set |
--skills-dir | /home/ubuntu/skills | Source skills directory |
--zip-dir | /tmp/skill_zips | Directory for packaged zips |
--rate-limit | 0.15 | Seconds between API calls |
--max-retries | 3 | Retries on 429 rate limit errors |
--dry-run | off | Preview changes without executing |
Limits and Constraints
- 500 skills per project — common provider-enforced hard limit
- Rate limiting — 429 errors handled with exponential backoff
- Token expiry — JWT tokens last ~24 hours; re-extract if 401 errors occur
- SKILL.md required — Zips must contain valid SKILL.md with YAML frontmatter at root
Troubleshooting
| Error | Fix |
|---|---|
| 401 Unauthorized | Token expired. Re-extract from browser. |
| Missing API base | Pass --api-base https://provider.example or set SKILL_DEPLOYER_API_BASE. |
| 429 Rate Limited | Increase --rate-limit to 0.3+. |
| 500 SKILL_MD_INVALID_FORMAT | Fix SKILL.md YAML frontmatter in the source skill. |
| Project limit reached | Max 500. Use curation to select only the best skills. |
| Skills not showing in UI | Refresh the project page in browser. Skills appear in sidebar. |
API Reference
Provider endpoint details vary by hosted UI. Use the provider's gRPC-web project-skill API reference when setting --api-base.
What ships with it: 4 files
34.4 KB alongside SKILL.md, 3 of them executable
references/
- provider-grpc-web-api.md2.2 KB
scripts/
- curate_for_project.pyruns10.0 KB
- deploy_skills.pyruns18.1 KB
- extract_token.pyruns4.0 KB