Agent Skills Series (3): How can a small team stand up an AI Skill library in five minutes?

About this series

The first two posts covered why Skills matter and how to write SKILL.md. This one does a single job: how to actually ship Skills to the team. The core tools are skill-base (GitHub · website) and the skb CLI—the goal is to turn “copy-paste the playbook” into a flow that is installable, upgradable, and rollback-friendly.


🤔 Why build this?

Writing a Skill is not the hard part—shipping it to the team and keeping it current is. Once you go live, you usually hit three problems:

  1. People use different AI tools (Cursor, Claude Code, Qoder, OpenCode, Windsurf, Copilot, etc.): disk paths, load behavior, and default folders all differ. You are not syncing one folder—you are syncing a pile of conventions; if you rely on hand-rolled docs, fragmentation is inevitable.
  2. Product, design, QA, and ops also need PRDs, test-case templates, checklist-style Skills. If skills live only in a code repo, you lock out non-engineers. The team wants “publish from a browser”, not “learn Git before you get the rules.”
  3. When you reuse across projects, a “generic auth Skill” polished in project A rarely flows to project B on its own—you still copy-paste, and versions drift for months across repos.

This is less about “how good your prompts are” and more about missing a reliable distribution path.

You can look at the support matrix in vercel-lab/skills—and that list keeps growing as new Agent tools appear:

Expand full Agent and path mapping table
Agent--agentProject PathGlobal Path
Amp, Kimi Code CLI, Replit, Universalamp, kimi-cli, replit, universal.agents/skills/~/.config/agents/skills/
Antigravityantigravity.agents/skills/~/.gemini/antigravity/skills/
Augmentaugment.augment/skills/~/.augment/skills/
IBM Bobbob.bob/skills/~/.bob/skills/
Claude Codeclaude-code.claude/skills/~/.claude/skills/
OpenClawopenclawskills/~/.openclaw/skills/
Cline, Warpcline, warp.agents/skills/~/.agents/skills/
CodeBuddycodebuddy.codebuddy/skills/~/.codebuddy/skills/
Codexcodex.agents/skills/~/.codex/skills/
Command Codecommand-code.commandcode/skills/~/.commandcode/skills/
Continuecontinue.continue/skills/~/.continue/skills/
Cortex Codecortex.cortex/skills/~/.snowflake/cortex/skills/
Crushcrush.crush/skills/~/.config/crush/skills/
Cursorcursor.agents/skills/~/.cursor/skills/
Deep Agentsdeepagents.agents/skills/~/.deepagents/agent/skills/
Droiddroid.factory/skills/~/.factory/skills/
Firebenderfirebender.agents/skills/~/.firebender/skills/
Gemini CLIgemini-cli.agents/skills/~/.gemini/skills/
GitHub Copilotgithub-copilot.agents/skills/~/.copilot/skills/
Goosegoose.goose/skills/~/.config/goose/skills/
Juniejunie.junie/skills/~/.junie/skills/
iFlow CLIiflow-cli.iflow/skills/~/.iflow/skills/
Kilo Codekilo.kilocode/skills/~/.kilocode/skills/
Kiro CLIkiro-cli.kiro/skills/~/.kiro/skills/
Kodekode.kode/skills/~/.kode/skills/
MCPJammcpjam.mcpjam/skills/~/.mcpjam/skills/
Mistral Vibemistral-vibe.vibe/skills/~/.vibe/skills/
Muxmux.mux/skills/~/.mux/skills/
OpenCodeopencode.agents/skills/~/.config/opencode/skills/
OpenHandsopenhands.openhands/skills/~/.openhands/skills/
Pipi.pi/skills/~/.pi/agent/skills/
Qoderqoder.qoder/skills/~/.qoder/skills/
Qwen Codeqwen-code.qwen/skills/~/.qwen/skills/
Roo Coderoo.roo/skills/~/.roo/skills/
Traetrae.trae/skills/~/.trae/skills/
Trae CNtrae-cn.trae/skills/~/.trae-cn/skills/
Windsurfwindsurf.windsurf/skills/~/.codeium/windsurf/skills/
Zencoderzencoder.zencoder/skills/~/.zencoder/skills/
Neovateneovate.neovate/skills/~/.neovate/skills/
Pochipochi.pochi/skills/~/.pochi/skills/
AdaLadal.adal/skills/~/.adal/skills/

Skill Base does one thing: solve distribution—it is not another generic file locker.
The data model stays intentionally small: skills.db holds the index and permissions; each version is a zip. Back up by copying the data directory; you can even put that directory under Git.

data/
├── skills.db
└── skills/
    └── <skill-id>/
        ├── v20260406.101500.zip
        └── v20260407.143000.zip

⚡ What does it look like in practice?

Server: one command to run

npx skill-base -d ./skill-data -p 8000
  • Node >= 18
  • Uses node-sqlite3-wasm so day-to-day startup does not depend on compiling native SQLite on the machine
  • For production, pm2 is a reasonable choice
  • Docker deployment is supported too

One principle: no MySQL, Redis, or other heavy dependencies—you should not need a full platform just to manage a handful of Skills.

CLI: manage Skills like npm

skb search
skb install
skb update
skb publish

install records which directories were used and which IDE they map to. After the playbook changes, teammates run skb update once to align versions—no more opening dozens of repos to hand-edit stale files.

Install per IDE: no assumption that everyone shares one path

skb install my-skill --ide cursor
skb install my-skill --ide claude-code
skb install my-skill --ide qoder

Skill Base assumes the obvious: people use different IDEs and do not all land in the same folder layout.

Web UI: a workable surface for non-engineers

The web app supports:

  • Searching Skills
  • Viewing versions and changelogs
  • Downloading packages
  • Publishing by uploading a folder or zip that contains SKILL.md

Engineers can stay on the CLI; non-engineers can publish and browse from the browser—that is what closes the loop inside a team.

GitHub import: pull public know-how into a private instance

The publish flow can import from a public GitHub repo by URL or owner/repo; the server fetches the zipball and parses SKILL.md.
That is useful when you want community Skills on a private instance fast, then maintain them to your team’s bar.


✨ How this differs from “yet another Skill site” and clawhub.ai

Whether a tool like this matters is not “can it store files” but whether it closes the distribution loop.
For enterprises, the most valuable asset is internal, private knowledge—content you often cannot upload to a public platform such as clawhub.ai.

One of Skill Base’s biggest traits is fully private deployment: Skills, knowledge, and data stay on your machine or your own servers, so sensitive material is not exposed on the public internet. On public hubs like clawhub.ai, distributing enterprise knowledge inevitably involves uploading to a third party, which carries inherent security and privacy risk. Skill Base lets you run the loop on an internal or dedicated environment: business knowledge and team practice stay under your control.

If you reduce Skill Base to “a file repo with a web UI,” it is easy to conclude “GitHub Releases, clawhub.ai, or a shared drive would do.” That view optimizes for storage and visibility and misses version alignment and update paths in real collaboration, plus strict control of private content that enterprises need.

A direct comparison:

  • GitHub Releases / clawhub.ai / shared drives: hosting and public or semi-public distribution (upload, download, search)
  • Skill Base: governance for private enterprise distribution—versions, permissions, install records, batch updates, rollback, cross-IDE placement, and air gap between internal sensitive knowledge and the public web

The gap is in data relationships and controllability, not chrome:

  • Shared-drive model: file → download link
  • clawhub.ai / public Skill hubs: Skill (often public or shared) → versions
  • Skill Base private model: Skill → versions → permissions → install mapping (local paths / IDE) → update actions, all inside your environment

So Skill Base is not “one more repo”—it upgrades team norms and private knowledge from copy everywhere / upload to share to publish, track, update, and fully control.

In one line each:

  • Shared drives / public platforms care most: is the file there, can I download it
  • clawhub.ai leans toward: public or semi-private skill community, but data sovereignty is not on the enterprise side
  • Skill Base cares most: did private rules and knowledge actually land on each machine, can we keep updating, and does the team own the whole path end to end
  • Skill Base avoids MySQL/Redis-class dependencies—low deployment bar, can run on an internal network alone
  • CLI and web so engineers and non-engineers are both covered
  • Versions and permissions stay with the team; data never leaves the private perimeter
  • The goal is a distribution path you can upgrade, roll back, and audit—not a pile of features for show

🔥 What you actually gain in collaboration

A smooth loop might look like:

  1. Install team Skills in vibe-coding or cowork-style Agent tools
  2. In daily use, when a Skill falls short, have the AI help you edit SKILL.md
  3. skb publish to your internal Skill Base and have the AI draft the changelog
  4. Teammates run skb update to align versions

The win: experience does not die in one person’s chat history—it becomes distributable, traceable team property.


🧸 Small easter egg: Cappy in the terminal

The CLI shows an ASCII pet, Cappy, by default—pure stress relief; it does not affect behavior.
If you do not want it, pass --no-cappy on startup.


Try it now

# Start the service
npx skill-base -d ./skill-data -p 8000

# Install CLI (repo standard is pnpm)
pnpm add -g skill-base-cli

# Commands
skb --help

Series map (sibling posts)

PartPostWhat it covers
1Pain points and motivationWhy Skills
2Concepts in practiceSKILL.md structure and progressive disclosure
4What deserves a SkillWhat to turn into a Skill and where to draw the line
5Admin query page case studyA project-level Skill refactor example
6Operating playbookTriggers, conflicts, and version governance
ExtraFragmentationTrigger governance when many Skills and many tools coexist

Further reading