agentsclimarketplace

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

Install
npx -y skills add onfire7777/universal-ai-skills-library --skill skill-deployer

Assembled 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:

  1. Packages each skill directory into a .zip (SKILL.md + scripts/references at root)
  2. Authenticates with the provider gRPC-web API using a JWT from the browser session
  3. Uploads zips to specific projects via UploadProjectSkill endpoint
  4. 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

FlagDefaultDescription
--api-basenoneProvider API base URL; required for API calls unless SKILL_DEPLOYER_API_BASE is set
--skills-dir/home/ubuntu/skillsSource skills directory
--zip-dir/tmp/skill_zipsDirectory for packaged zips
--rate-limit0.15Seconds between API calls
--max-retries3Retries on 429 rate limit errors
--dry-runoffPreview 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

ErrorFix
401 UnauthorizedToken expired. Re-extract from browser.
Missing API basePass --api-base https://provider.example or set SKILL_DEPLOYER_API_BASE.
429 Rate LimitedIncrease --rate-limit to 0.3+.
500 SKILL_MD_INVALID_FORMATFix SKILL.md YAML frontmatter in the source skill.
Project limit reachedMax 500. Use curation to select only the best skills.
Skills not showing in UIRefresh 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/

scripts/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.