Self-Hosted Agent Skills Registry
Deploy your own private skill management platform for AI coding agents
skify is a private skill registry you can deploy in minutes. Host your own skill packages for AI coding agents β keep proprietary workflows private, ensure team consistency, and maintain full control.
# Deploy to Cloudflare (personal profile, default)
cd deploy/cloudflare && bash deploy.sh all personal
# Or self-host with Docker (team profile)
cd deploy/docker && bash deploy.sh teamAI coding agents need domain-specific knowledge. Skills provide reusable instructions, templates, and workflows β but public repositories aren't always an option.
skify gives you:
| π Private by default | Your skills stay in your infrastructure |
| β‘ One-click deploy | Cloudflare Workers (free) or Docker |
| π¦ Full registry | Publish, version, search, and install skills |
| π οΈ CLI included | npx skify add/publish/sync |
| π Web UI | Browse and search skills visually |
Free tier, global edge, zero server management.
cd deploy/cloudflare
bash deploy.sh all personal
# or strict team profile:
# bash deploy.sh all teamThe script will:
- Create D1 database and R2 storage
- Deploy the Worker
- Generate and display your API token
β Deployed to https://skify-api.your-account.workers.dev
β API Token: sk_xxxxxxxxxxxx
Full control, runs anywhere, air-gapped support.
cd deploy/docker
bash deploy.sh personal
# or strict team profile:
# bash deploy.sh teamOr with docker-compose:
cd deploy/docker
docker-compose up -dAfter deployment, point the CLI to your registry:
skify config set registry https://your-registry-url
skify config set token <your-api-token># 1) API health
curl -sS https://your-registry-url/api/health
# expected: {"status":"ok"}
# 2) list skills (default onboarding mode)
curl -sS https://your-registry-url/api/skills
# 3) CLI connectivity
skify config set registry https://your-registry-url
skify config set token <admin-token>
skify browseIf you run team profile (ALLOW_ANONYMOUS_READ=false), step 2 should include a read/admin token:
curl -sS https://your-registry-url/api/skills \
-H "Authorization: Bearer <read-or-admin-token>"skify supports role-based API tokens:
read: browse/search/download/installpublish: includesread, plus publish/update skill contentadmin: includespublish, plus delete/sync/token management
Access behavior:
personalprofile: anonymous read enabled (smooth onboarding)teamprofile: anonymous read disabled (ALLOW_ANONYMOUS_READ=false)
Quick start (personal):
# set registry/admin token for CLI
skify config set registry https://your-registry-url
skify config set token <admin-token>
# publish then browse immediately (web/cli read works without extra token)
skify publish ./my-skillStrict mode (team):
# deploy with team profile
cd deploy/cloudflare && bash deploy.sh all team
# or
cd deploy/docker && bash deploy.sh team
# create a read-only token for users/services
skify token create team-read --permissions read# list existing tokens (admin token required)
skify token list
# create publish token
skify token create ci-publisher --permissions publish
# create read token for Web UI
skify token create web-read --permissions read
# revoke token by id
skify token revoke <token-id># Run directly with npx
npx skify <command>
# Or install globally
npm install -g @skify/cli| Command | Description |
|---|---|
skify add <skill> |
Install a skill |
skify remove <name> |
Remove a skill |
skify list |
List installed skills |
skify update [name] |
Update skills |
skify sync |
Generate AGENTS.md |
skify publish <dir> |
Publish skill to registry |
skify search <query> |
Search for skills |
skify read <name> |
Output skill content |
skify token ... |
Manage registry RBAC tokens |
skify config |
Manage configuration |
# Publish a skill to your registry
skify publish ./my-skill
# Install from your registry
skify add my-skill
# Install from GitHub (public or private with token)
skify add owner/repo/skill-name
skify add owner/repo/skill-name --token ghp_xxx
# Install to specific agent directory
skify add my-skill --agent cursor # .cursor/skills/
skify add my-skill --agent claude # .claude/skills/
# Generate AGENTS.md for AI agents
skify syncβββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 1. DEPLOY β
β β
β bash deploy.sh βββΊ Your Private Registry β
β (Cloudflare or Docker) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 2. PUBLISH β
β β
β skify publish ./my-skill βββΊ Registry stores skill β
β with version tracking β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 3. INSTALL β
β β
β skify add my-skill βββΊ Downloads to .agent/skills/ β
β skify sync βββΊ Generates AGENTS.md β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 4. USE β
β β
β AI Agent reads AGENTS.md β
β β β
β Sees available skills β
β β β
β Runs: npx skify read my-skill β
β β β
β Receives instructions and executes β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
your-project/
βββ .agent/
β βββ skills/
β β βββ my-skill/
β β β βββ SKILL.md
β β β βββ templates/
β β βββ another-skill/
β β βββ SKILL.md
β βββ skify.lock.json
βββ AGENTS.md # Auto-generated skill manifest
βββ ...
<skills_system priority="1">
<usage>
Invoke skills: `npx skify read <skill-name>`
</usage>
<available_skills>
<skill>
<name>my-skill</name>
<description>What this skill does</description>
</skill>
</available_skills>
</skills_system>my-skill/
βββ SKILL.md # Required: Instructions for the agent
βββ templates/ # Optional: Template files
βββ examples/ # Optional: Example code
βββ resources/ # Optional: Other resources
---
name: my-skill
description: Brief description of what this skill does
version: 1.0.0
---
# My Skill
Instructions for the AI agent.
## When to Use
Describe when this skill applies.
## How to Use
Step-by-step instructions.# Set up registry (one time)
skify config set registry https://your-registry
skify config set token <token>
# Publish
cd my-skill
skify publish .
# Version updates
# Edit SKILL.md, bump version, publish again
skify publish .βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β skify Registry β
β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
β β REST API β β Storage β β Database β β
β β β β β β β β
β β - publish β β Cloudflare: β β Cloudflare: β β
β β - download β β R2 β β D1 β β
β β - search β β β β β β
β β - list β β Docker: β β Docker: β β
β β β β Filesystemβ β SQLite β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β skify CLI β
β β
β @skify/cli β
β βββ add/remove/update # Manage installed skills β
β βββ publish # Upload to registry β
β βββ search/list # Discover skills β
β βββ sync # Generate AGENTS.md β
β βββ read # Output skill for agent β
β β
β @skify/core β
β βββ GitHub API # Fetch from GitHub repos β
β βββ Parser # Parse SKILL.md files β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β skify Web UI β
β β
β Browse, search, and preview skills in your browser β
β Deploy alongside registry or standalone β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
| Cloudflare | Docker | |
|---|---|---|
| Setup | One script | One script |
| Cost | Free tier (100k req/day) | Your infrastructure |
| Scaling | Automatic, global edge | Manual |
| Storage | R2 (S3-compatible) | Filesystem |
| Database | D1 (SQLite) | SQLite |
| Best for | Most users | Air-gapped, on-premise |
- Node.js >= 20.6.0
- pnpm >= 9.0.0
git clone https://github.com/lynnzc/skify.git
cd skify
pnpm install
pnpm buildskify/
βββ packages/
β βββ core/ # Shared library
β βββ cli/ # CLI tool
β βββ web/ # Web UI
β βββ worker/ # Cloudflare Worker
βββ deploy/
β βββ cloudflare/ # CF deployment script
β βββ docker/ # Docker deployment
βββ scripts/
# CLI
cd packages/cli && npm link
skify --help
# Web UI
pnpm --filter @skify/web dev
# http://localhost:5173
# Worker (local)
pnpm --filter @skify/worker devWorks with any AI coding agent that can read markdown and run shell commands:
- Cursor
- Claude Code
- GitHub Copilot
- Codex
- Windsurf
- And more...
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a Pull Request
Apache License 2.0 β see LICENSE