Pull and Publish Skills with skb
Assistants should complete operations by running terminal commands. Package name skill-base-cli, command skb after installation.
When to Use This Skill
- Users request to search, install, update, delete, or publish specific skills using the
skb command.
- Users want to install an admin-curated collection (recommended skill pack) in one shot.
- Users need to configure the client connection address (
skb init) or log in (skb login).
- Users want to search, install, update, or publish Skills to a privately deployed Skill Base site.
When NOT to Use This Skill
- Users want to deploy, start, or maintain the Skill Base server itself (use
skill-base-web-deploy instead).
Environment
- Node.js >= 18
- Installation:
npm install -g skill-base-cli, or npx skill-base-cli <subcommand>
- Server address: Environment variable
SKB_BASE_URL takes priority, otherwise reads ~/.skill-base/config.json, default is http://127.0.0.1:8000
- Set and save:
skb init --server <site root URL> (do not include /api)
Login and Authentication Rules (Important)
- No login required:
search, install, update, init and other regular read operations usually do not require login. Assistants should not proactively ask users to log in before these operations.
- Login required:
skb publish and skb import-github must be logged in.
- Login flow (
skb login):
- Execute
skb login in the terminal.
- The console will output a login page URL containing
from=cli, open the login page in a browser.
- After successful web login, a verification code (in the format
XXXX-XXXX) will be provided.
- Enter the verification code in the terminal to exchange for a PAT.
- Logout:
skb logout.
- Check login:
skb whoami (calls GET /api/v1/auth/me with the saved PAT; exit 0 if valid). Use skb whoami -q for scripts (exit code only) or skb whoami --json for machine-readable output.
Local Web UI
skb ui — starts a small server on 127.0.0.1:9847 (override with --port), opens the browser, proxies /api/v1/* to the configured Skill Base with the saved PAT. Use --no-open, --host <address> (default 127.0.0.1).
Search and Install
skb search <keyword>
skb install <skill_id> # Latest version
skb install <skill_id>@<version> # Specific version, e.g., v20260327.161122
skb install <skill_id> -d <target_directory>
skb install <skill_id> -i cursor # Install to IDE skill directory
skb install <skill_id> -i cursor -g # Global IDE directory (where supported)
Options: -d/--dir, -i/--ide (alias -a/--agent), -g/--global. Common IDE values: cursor, claude-code, codex, copilot, windsurf, qoder, opencode, trae, openclaw, codebuddy, workbuddy, and others — run skb install --help for the full list.
Install a Collection
Collections are admin-curated flat packs (e.g. "frontend team essentials"), not a folder tree. One command downloads the collection zip and installs all member skills.
skb install --collection <id_or_slug>
skb install --collection 1 --ide cursor
skb install --collection frontend-team --ide cursor
target (skill id) and --collection are mutually exclusive
- On name conflicts, CLI lists all conflicting paths and asks once whether to overwrite all; cancel skips the entire collection install
Manage Local Installs
skb list # or: skb ls
skb update <skill_id>
skb update <skill_id> -d <directory>
skb delete <skill_id> # or: skb rm
skb delete <skill_id> --all
skb delete <skill_id> -d <directory> -y
skb install records install path, version, timestamp, IDE type, and global flag in ~/.skill-base/config.json
skb list / skb ls aggregate by skill (most recent first); pick one to update, delete local files, or clear records only
skb update <skill_id> shows versions with changelog and uploader, then multi-select recorded install directories (or updates directly when only one exists)
skb update <skill_id> -d <directory> bypasses records and updates <directory>/<skill_id> directly
skb delete <skill_id> lists recorded install directories for multi-select (or --all / -d / -y for scripting); only removes paths whose directory name matches skill_id
Publish
- Skill name must pass
/^[\w-]+$/ validation, e.g., skill-base-cli
- Prepare content in a folder named after the skill, root directory must contain
SKILL.md
- Recommended: Use frontmatter in SKILL.md to mark name and description as the skill name and description
- If SKILL.md frontmatter has a name field, it must match the folder name
- If no frontmatter is used: Use the folder name as the skill name; the first paragraph of non-
# text under the title is the skill description (can be overridden with --description)
- Execute in the skill directory:
skb publish; or execute from any location: skb publish <skill_folder_path>
- Common usage:
skb publish <path> --changelog "description"
- After publishing, describe the result to the user in 2 sentences, no need to be verbose
Import from GitHub (public repos, skill-base login required)
skb import-github owner/repo or skb import https://github.com/owner/repo,like https://github.com/anthropics/skills/tree/main/skills/pdf
- Same auth as publish (
skb login)
- Options:
--ref, --subpath, --target <skill_id>, --changelog, --dry-run (preview JSON only)
- Server downloads the repo archive; private repos are not supported
Troubleshooting Failures
- First confirm
SKB_BASE_URL points to the instance the user wants to use, as skill-base can be deployed internally and ports can be changed, verify the address is correct
- If the user deployed skill-base on a server, most servers need inbound/outbound port configuration to be accessible, users need to check if the address is accessible in the browser
- Check if it's a network issue, can use ping/telnet to confirm
- Publish failure: First
skb login; then verify SKB_BASE_URL, folder name and frontmatter name are consistent and match [\w-]+, check SKILL.md and network
- Install failure: Use
skb search to verify skill_id; when unsure of version, use skb install <skill_id> to install latest
1---2name: skill-base-cli3description: The official Skill Base CLI client. Use the `skb` (Skill Base CLI) command to search, install (single skill or collection), update, delete, publish, and import-from-GitHub skills from Skill Base, as well as configure skb. Triggered when users say "publish skill to skill base", "install collection", "import skill from github", "download/update/delete skill from skill base", "configure skb", "am I logged in", "check skb login", or "configure skill-base-cli".4---56# Pull and Publish Skills with skb78Assistants should complete operations by **running terminal commands**. Package name **`skill-base-cli`**, command **`skb`** after installation.910## When to Use This Skill11- Users request to search, install, update, delete, or publish specific skills using the `skb` command.12- Users want to install an admin-curated **collection** (recommended skill pack) in one shot.13- Users need to configure the client connection address (`skb init`) or log in (`skb login`).14- Users want to **search, install, update, or publish** Skills to a privately deployed Skill Base site.1516## When NOT to Use This Skill17- Users want to deploy, start, or maintain the Skill Base server itself (use `skill-base-web-deploy` instead).181920## Environment2122- Node.js >= 1823- Installation: `npm install -g skill-base-cli`, or `npx skill-base-cli <subcommand>`24- Server address: Environment variable **`SKB_BASE_URL`** takes priority, otherwise reads **`~/.skill-base/config.json`**, default is `http://127.0.0.1:8000`25- Set and save: `skb init --server <site root URL>` (do not include `/api`)2627## Login and Authentication Rules (Important)28- **No login required**: `search`, `install`, `update`, `init` and other regular read operations usually do not require login. Assistants **should not** proactively ask users to log in before these operations.29- **Login required**: **`skb publish`** and **`skb import-github`** must be logged in.30- **Login flow (`skb login`)**:31 1. Execute `skb login` in the terminal.32 2. The console will output a login page URL containing `from=cli`, open the login page in a browser.33 3. After successful web login, a **verification code** (in the format `XXXX-XXXX`) will be provided.34 4. Enter the verification code in the terminal to exchange for a PAT.35- Logout: `skb logout`.36- Check login: `skb whoami` (calls `GET /api/v1/auth/me` with the saved PAT; exit `0` if valid). Use `skb whoami -q` for scripts (exit code only) or `skb whoami --json` for machine-readable output.3738## Local Web UI3940- `skb ui` — starts a small server on `127.0.0.1:9847` (override with `--port`), opens the browser, proxies `/api/v1/*` to the configured Skill Base with the saved PAT. Use `--no-open`, `--host <address>` (default `127.0.0.1`).4142## Search and Install4344```bash45skb search <keyword>46skb install <skill_id> # Latest version47skb install <skill_id>@<version> # Specific version, e.g., v20260327.16112248skb install <skill_id> -d <target_directory>49skb install <skill_id> -i cursor # Install to IDE skill directory50skb install <skill_id> -i cursor -g # Global IDE directory (where supported)51```5253Options: `-d/--dir`, `-i/--ide` (alias `-a/--agent`), `-g/--global`. Common IDE values: `cursor`, `claude-code`, `codex`, `copilot`, `windsurf`, `qoder`, `opencode`, `trae`, `openclaw`, `codebuddy`, `workbuddy`, and others — run `skb install --help` for the full list.5455### Install a Collection5657Collections are admin-curated flat packs (e.g. "frontend team essentials"), not a folder tree. One command downloads the collection zip and installs all member skills.5859```bash60skb install --collection <id_or_slug>61skb install --collection 1 --ide cursor62skb install --collection frontend-team --ide cursor63```6465- `target` (skill id) and `--collection` are mutually exclusive66- On name conflicts, CLI lists all conflicting paths and asks once whether to overwrite all; cancel skips the entire collection install6768## Manage Local Installs6970```bash71skb list # or: skb ls72skb update <skill_id>73skb update <skill_id> -d <directory>74skb delete <skill_id> # or: skb rm75skb delete <skill_id> --all76skb delete <skill_id> -d <directory> -y77```7879- `skb install` records install path, version, timestamp, IDE type, and global flag in `~/.skill-base/config.json`80- `skb list` / `skb ls` aggregate by skill (most recent first); pick one to update, delete local files, or clear records only81- `skb update <skill_id>` shows versions with changelog and uploader, then multi-select recorded install directories (or updates directly when only one exists)82- `skb update <skill_id> -d <directory>` bypasses records and updates `<directory>/<skill_id>` directly83- `skb delete <skill_id>` lists recorded install directories for multi-select (or `--all` / `-d` / `-y` for scripting); only removes paths whose directory name matches `skill_id`8485## Publish8687- **Skill name must pass `/^[\w-]+$/` validation, e.g., skill-base-cli**88- Prepare content in a **folder named after the skill**, root directory must contain **`SKILL.md`**89- **Recommended**: Use frontmatter in SKILL.md to mark name and description as the skill name and description90- If SKILL.md frontmatter has a name field, it must match the folder name91- If **no frontmatter is used**: Use the folder name as the skill name; the first paragraph of non-`#` text under the title is the skill description (can be overridden with `--description`)92- Execute in the skill directory: `skb publish`; or execute from any location: `skb publish <skill_folder_path>`93- Common usage: `skb publish <path> --changelog "description"`94- After publishing, describe the result to the user in 2 sentences, no need to be verbose9596## Import from GitHub (public repos, skill-base login required)9798- `skb import-github owner/repo` or `skb import https://github.com/owner/repo`,like `https://github.com/anthropics/skills/tree/main/skills/pdf`99- Same auth as publish (`skb login`)100- Options: `--ref`, `--subpath`, `--target <skill_id>`, `--changelog`, `--dry-run` (preview JSON only)101- Server downloads the repo archive; private repos are not supported102103## Troubleshooting Failures104105- First confirm **`SKB_BASE_URL`** points to the instance the user wants to use, as skill-base can be deployed internally and ports can be changed, verify the address is correct106- If the user deployed skill-base on a server, most servers need inbound/outbound port configuration to be accessible, users need to check if the address is accessible in the browser107- Check if it's a network issue, can use ping/telnet to confirm108- Publish failure: First **`skb login`**; then verify **`SKB_BASE_URL`**, folder name and frontmatter **`name`** are consistent and match `[\w-]+`, check `SKILL.md` and network109- Install failure: Use **`skb search`** to verify `skill_id`; when unsure of version, use `skb install <skill_id>` to install latest