docs(skills): collapse three overlapping skills trees into one verified tree

Three parallel trees documented the same ecosystem: omp-docs/skills/
(two overview pages), tools/npx-skills/ (10 pi-era npm pages), and
tools/vercel-labs-skills/ (11 CLI pages), plus a fourth leaderboard page
at engineering/skills-ecosystem.md. Verbatim overlap (identical SKILL.md
field tables in skills-spec.md vs skill-format.md; 13-agent vs 68-agent
copies of the same upstream table). Consolidated to four concept pages:

- skills/agent-skills.md: standard, format, loading, authoring (merges
  skills-spec, skill-format, skill-file-structure, skill-loading,
  best-practices, skills-vs-extensions)
- skills/skills-cli.md: CLI reference (merges commands, source-formats,
  installation-scope, skill-discovery, lock-file, env-variables,
  agent-support, related-links)
- skills/store-wiring.md: moved, fleet ops, links retargeted
- skills/ecosystem.md: replaces skills-ecosystem.md; stale 2026-08-12
  top-50 table dropped, replaced with a live top-10 re-queried from the
  skills.sh API tonight and the API contract re-verified (zero-based,
  200/page, {skills,total,hasMore,page}, total 9909)

All facts re-verified 2026-10-19 against primary sources:
agentskills.io, vercel-labs/skills README + src/cli.ts (command set,
--full-depth) + src/skill-lock.ts (v3 lock, XDG path, wipe-on-old),
live skills.sh API. Deleted superseded core/index-doc.md (old pi-era
docs index). Retargeted all inbound links (tools/index, engineering x3,
packages x3, pi/skills, core/index). Pi-era npm skill packaging is
listed as archived under /pi/.

Refs #29
This commit is contained in:
Frank committed 2026-10-19 02:58:52 -07:00
1 parent e86e60af39
commit 651924a4bc
41 files changed
+439 -1686

No files matched your search

+6 -17
View File
@@ -10,17 +10,17 @@ Configuration guides and reference material for installed software. Each tool ha
* [comfyui](comfyui/index.md) — Node-based AI image generation engine on dankclaw. FLUX.2 klein 4B, CPU backend, systemd managed.
* [live-sync](live-sync.md) — Heartbeat daemon committing machine-written paths (memories, managed-skills, live config, dotfiles) in the command-center checkout; systemd user timer, alerts via ntfy.
* [[applications|applications]] — Default userspace applications on CachyOS with Niri — browsers, editor, terminal, file manager, audio, screenshots, gaming.
* ](ghostty/index.md) — GPU-accelerated terminal emulator with extensive configuration, keybindings, and shaders.
* ](gitea/index.md) — Private Git hosting on dankclaw. Quadlet-managed containers: Gitea, PostgreSQL, Caddy.
* ](llama-cpp/index.md) — Local LLM inference server supporting GGUF models with OpenAI-compatible API.
* [ghostty](ghostty/index.md) — GPU-accelerated terminal emulator with extensive configuration, keybindings, and shaders.
* [gitea](gitea/index.md) — Private Git hosting on dankclaw. Quadlet-managed containers: Gitea, PostgreSQL, Caddy.
* [llama.cpp](llama-cpp/index.md) — Local LLM inference server supporting GGUF models with OpenAI-compatible API.
* [[linux-power-management|linux-power-management]] — Sleep/wake troubleshooting, NVIDIA GPU power management, and diagnostics for Linux systems.
* [[noctalia-shell|noctalia-shell]] — Native desktop environment for Niri — launcher, control center, settings, lock screen, session menu, hotkey overlay, media controls, and system management.
* [handy](handy.md) — Offline speech-to-text transcription with WebKitGTK backend and Tauri v2 UI.
* [niri](niri/index.md) — Scrollable-tiling Wayland compositor — configuration, keybindings, and architecture for the workstation.
* [npx Skills](npx-skills/index.md) — Distribution and installation tips for pi skill packages on npm, ecosystem overview, and skill specification.
* [ornith-llama-cpp-setup](ornith-llama-cpp-setup/index.md) — Setup and reference for running Ornith MoE models with llama.cpp server for local inference.
* [[tmux|tmux]] — Terminal multiplexer configuration, extended-keys setup, keyboard input best practices, and reload/restart procedures.
* ](vercel-labs-skills/index.md) — Complete list of 68+ supported coding agents, their --agent flags, installation paths, and the SKILL.md specification.
## Adding a New Tool
@@ -28,16 +28,5 @@ Configuration guides and reference material for installed software. Each tool ha
2. Add `index.md` as the entry point (no frontmatter for directory listings)
3. Create concept files with frontmatter if content exceeds one file
4. Update this index
5. Log the change in `log.md`
* [Default Applications](applications.md) — Default userspace applications on CachyOS with Niri — browsers, editor, terminal, file manager, audio, screenshots, gaming.
* [CachyOS](cachyos.md) — Arch-based rolling release with performance-optimized kernels, repositories, and gaming stack. Running on the workstation.
* [Linux Power Management](linux-power-management.md) — Sleep/wake troubleshooting, NVIDIA GPU power management, and diagnostics for Linux systems.
* [Noctalia Shell](noctalia-shell.md) — Native desktop environment for Niri — launcher, control center, settings, lock screen, session menu, hotkey overlay, media controls, and system management.
* [Handy](handy.md) — Offline speech-to-text transcription with WebKitGTK backend and Tauri v2 UI.
* [tmux](tmux.md) — Terminal multiplexer configuration, extended-keys setup, keyboard input best practices, and reload/restart procedures.
Skills tooling lives in [/skills/](../skills/index.md), not in this directory.
+1 -1
View File
@@ -1,7 +1,7 @@
---
type: reference
title: Screenshot Matrix
description: Screenshot setup on blankpad — flameshot retired (all modes hang via portal on 2+ outputs, niri#4313); niri-native binds: all-monitors script, focused-screen capture, interactive UI. Includes the niri spawn-sh PATH trap.
description: "Screenshot setup on blankpad — flameshot retired (all modes hang via portal on 2+ outputs, niri#4313); niri-native binds: all-monitors script, focused-screen capture, interactive UI. Includes the niri spawn-sh PATH trap."
tags:
- niri
- flameshot
@@ -1,48 +0,0 @@
---
type: guide
title: Skill Author Best Practices
description: Tips for writing good skill descriptions, organizing files, and distributing pi packages on npm.
tags:
- unverified
- skills
- best-practices
- authoring
timestamp: 2026-07-18
verified: 2026-08-28
---
# Best Practices for Skill Authors
## Description Writing
1. **Be specific about capabilities** — "Extracts text and tables from PDF files, fills forms, merges documents" vs "Helps with documents"
2. **Include trigger phrases** — "Use when working with PDF files or when user mentions PDFs, forms, or document extraction"
3. **Keep under 1024 characters**
4. **Write in third person**
5. **First sentence = what it does, second sentence = when to use it**
## File Organization
1. **Use progressive disclosure** — Keep SKILL.md focused; reference detailed docs in `references/`
2. **Add scripts for deterministic operations** — When the same code would be generated repeatedly, scripts save tokens and improve reliability
3. **Split files when content exceeds ~500 lines** — Agents load the entire file on activation
4. **Include a config.json** for configurable paths or settings
5. **Add tests** — Include test scripts and mock data for validation
## Security
1. **Review skill content before use** — Skills can instruct the model to perform any action
2. **Scripts run with your full system permissions** — Only install from trusted sources
3. **Document dependencies clearly** — List all required tools, API keys, and setup steps
## Distribution
1. **Add `pi-package` keyword** to package.json for npm discoverability
2. **Include `video` or `image` fields** in the pi manifest for the gallery
3. **Use peerDependencies** for pi-provided packages: `@earendil-works/pi-coding-agent`, `@earendil-works/pi-ai`, `typebox`
4. **List runtime deps in `dependencies`** — They get installed automatically
## Related
* [Package Structure](/tools/npx-skills/package-structure.md) — How to structure your npm package
* [Installation](/tools/npx-skills/installation.md) — How users will install your skills
-62
View File
@@ -1,62 +0,0 @@
---
type: reference
title: Ecosystem Resources
description: GitHub repositories, npm packages, and community resources for the pi skills ecosystem.
tags:
- unverified
- ecosystem
- npm
- repositories
- community
timestamp: 2026-07-18
verified: 2026-08-28
---
# Ecosystem Resources
## Official Documentation
- [Pi Skills Documentation](https://github.com/earendil-works/pi)
- [Pi Packages Documentation](https://github.com/earendil-works/pi)
- [Agent Skills Specification](https://agentskills.io/specification)
- [Agent Skills Integration Guide](https://agentskills.io/integrate-skills)
- [Pi Packages Gallery](https://pi.dev/packages)
## GitHub Repositories
| Repository | Description | Stars |
|------------|-------------|-------|
| [badlogic/pi-skills](https://github.com/badlogic/pi-skills) | Official skills collection (brave-search, browser-tools, Google APIs, transcription) | 2,138 |
| [ifiokjr/monopi](https://github.com/ifiokjr/monopi) | One-click pi setup with skills, extensions, themes, subagents | 136 |
| [VenTheZone/pi-dots](https://github.com/VenTheZone/pi-dots) | 60+ skills covering research, content, project management, debugging | 42 |
| [HazAT/pi-config](https://github.com/HazAT/pi-config) | Personal pi config with skills, extensions, agents | 418 |
| [qualisero/awesome-pi-agent](https://github.com/qualisero/awesome-pi-agent) | Awesome list of pi add-ons, hooks, tools, skills | 1,093 |
| [getpipher/pi-package-index](https://github.com/getpipher/pi-package-index) | Unofficial community index with GitHub stars + downloads | 2 |
| [lukaspanni/pi-package-template](https://github.com/lukaspanni/pi-package-template) | Template for creating pi packages | 0 |
## Notable npm Packages
| Package | Description | Keywords |
|---------|-------------|----------|
| `pi-web-access` | Web search, URL fetching, PDF extraction, YouTube analysis | pi-package, web-search, perplexity |
| `@wierdbytes/pi-peon` | Sound-pack player for pi (installed) | pi-package, peon, sound |
| `bigpowers` | 73 agent skills for solo developers | skills, agents, claude, pi-package |
| `pi-spark` | Polishes daily pi experience | pi-coding-agent, pi-package |
| `@anton-kochev/pi-skills` | Planning, TDD, SRS, requirements skills | pi-package, pi-skill, tdd |
| `@monopi/skills` | Curated skill packs (debug-helper, btw, nushell) | pi-package, skills |
| `@dietrichgebert/ponytail` | Lazy senior dev mode with skills | opencode, pi-package, skills |
| `pi-mcp-adapter` | MCP adapter for pi | pi-package, mcp |
| `pi-subagents` | Subagent delegation with chains | pi-package, subagents |
| `pi-lens` | Real-time code feedback (LSP, linters) | pi-package, linter |
| `@vanillagreen/pi-skills-manager` | Skills manager with /skill menu | pi-package, skills, manager |
## Community Resources
- [pi-package.rectorspace.com](https://pi-package.rectorspace.com) — Unofficial package index with stars, downloads, maintenance signals
- [Anthropic Skills](https://github.com/anthropics/skills) — Document processing skills (docx, pdf, pptx, xlsx)
- [skills.sh](https://skills.sh) — Skills directory (by Vercel Labs)
## Related
* [Installation](/tools/npx-skills/installation.md) — How to install from these resources
* [Best Practices](/tools/npx-skills/best-practices.md) — How to contribute your own skills
-18
View File
@@ -1,18 +0,0 @@
# Npx Skills — Distribution & Installation
Tips for writing good skill descriptions, organizing files, and distributing pi packages on npm.
## Concept Files
| File | Type | Description |
|------|------|-------------|
| [best-practices.md](best-practices.md) | best-practices | Tips for writing good skill descriptions, organizing files, and distributing ... |
| [ecosystem.md](ecosystem.md) | reference | GitHub repositories, npm packages, and community resources for the pi skills ... |
| [installation.md](installation.md) | howto | Three methods for installing skills — pi install, npx-based setup tools, and ... |
| [package-structure.md](package-structure.md) | reference | How pi packages bundle skills, extensions, prompts, and themes into a single ... |
| [skill-commands.md](skill-commands.md) | reference | The /skill:name command system for explicitly loading and executing skills wi... |
| [skill-file-structure.md](skill-file-structure.md) | reference | The directory structure of a skill — SKILL.md as the required entry point, wi... |
| [skill-loading.md](skill-loading.md) | reference | The discovery flow, progressive disclosure pattern, and system prompt integra... |
| [skills-spec.md](skills-spec.md) | reference | The Agent Skills standard that defines SKILL.md format, frontmatter fields, a... |
| [skills-vs-extensions.md](skills-vs-extensions.md) | comparison | Side-by-side comparison of skills (markdown-based) vs extensions (TypeScript-... |
-81
View File
@@ -1,81 +0,0 @@
---
type: howto
title: Installing Skills via npm / npx
description: Three methods for installing skills — pi install, npx-based setup tools, and manual git clone.
tags:
- unverified
- installation
- npm
- npx
timestamp: 2026-07-18
verified: 2026-08-28
---
# Installing Skills via NPM / Npx
## Method 1: Direct `pi install` (recommended)
```bash
# Install a package containing skills
pi install npm:pi-web-access
pi install npm:@anton-kochev/pi-skills
pi install npm:bigpowers
pi install npm:@monopi/skills
# Install from GitHub (also works for packages with skills)
pi install git:github.com/badlogic/pi-skills
pi install https://github.com/badlogic/pi-skills
# Project-level install (goes to .pi/settings.json)
pi install -l npm:pi-web-access
# Try without installing (current session only)
pi -e npm:pi-web-access
```
## Method 2: Npx-based setup tools
Some meta-installers provide one-command setup:
```bash
# monopi: one-command setup for pi with skills, extensions, themes, etc.
npx @monopi/monopi
# Pin a version
npx @monopi/monopi --version 0.2.13
# Project-local install
npx @monopi/monopi --local
# Remove all monopi packages
npx @monopi/monopi --remove
```
## Method 3: Manual clone (git repos)
```bash
# Clone the official pi-skills collection
git clone https://github.com/badlogic/pi-skills ~/.pi/agent/skills/pi-skills
# Or project-level
git clone https://github.com/badlogic/pi-skills .pi/skills/pi-skills
```
## Package Sources
| Source Type | Example | Notes |
|-------------|---------|-------|
| **npm** | `npm:@foo/bar@1.0.0` | Pinned versions, installed to `~/.pi/agent/npm/` |
| **git** | `git:github.com/user/repo@v1` | Pinned to tags/commits, cloned to `~/.pi/agent/git/` |
| **local** | `./relative/path` | Points to local directory, added without copying |
## Dependencies
- Runtime dependencies belong in `dependencies` in `package.json`
- Pi-provided packages (`@earendil-works/pi-ai`, `@earendil-works/pi-agent-core`, `@earendil-works/pi-coding-agent`, `@earendil-works/pi-tui`, `typebox`) as `peerDependencies` with `"*"` range
- When pi installs from npm or git, it runs `npm install` automatically
## Related
* [Package Structure](/tools/npx-skills/package-structure.md) — How pi packages are structured for npm distribution
* [Best Practices](/tools/npx-skills/best-practices.md) — Distribution tips for skill authors
@@ -1,79 +0,0 @@
---
type: reference
title: Pi Package Structure
description: How pi packages bundle skills, extensions, prompts, and themes into a single npm package with a pi manifest.
tags:
- unverified
- packages
- npm
- distribution
timestamp: 2026-07-18
verified: 2026-08-28
---
# Pi Packages — The Distribution Mechanism
Pi packages are npm packages that declare resources via a `pi` manifest in `package.json`. They are the primary way to distribute skills (along with extensions, prompts, and themes) through npm.
## Package Structure
```
my-pi-package/
├── package.json # npm metadata + pi manifest
├── skills/ # Conventional directory (auto-discovered)
│ ├── my-skill/
│ │ └── SKILL.md
│ └── another-skill/
│ └── SKILL.md
├── extensions/ # TypeScript extensions
├── prompts/ # Prompt templates
├── themes/ # TUI themes
└── README.md
```
## Package.json with pi Manifest
```json
{
"name": "my-pi-package",
"keywords": ["pi-package"],
"pi": {
"extensions": ["./extensions"],
"skills": ["./skills"],
"prompts": ["./prompts"],
"themes": ["./themes"]
}
}
```
## Gallery Metadata
Packages tagged with `pi-package` appear on the [pi.dev/packages gallery](https://pi.dev/packages). Add preview media:
```json
{
"pi": {
"skills": ["./skills"],
"video": "https://example.com/demo.mp4",
"image": "https://example.com/screenshot.png"
}
}
```
## Two-Layer Model
```
npm package (tagged pi-package)
├── pi.skills manifest → points to ./skills/
└── skills/
├── brave-search/SKILL.md
├── browser-tools/SKILL.md
└── tdd-workflow/SKILL.md
```
Skills are the **content** (SKILL.md + scripts). Pi packages are the **delivery mechanism** (npm tarball with a `pi` manifest).
## Related
* [Installation](/tools/npx-skills/installation.md) — How to install pi packages
* [Skill File Structure](/tools/npx-skills/skill-file-structure.md) — What goes inside a skill
@@ -1,35 +0,0 @@
---
type: reference
title: Skill Commands
description: The /skill:name command system for explicitly loading and executing skills with optional arguments.
tags:
- unverified
- skills
- commands
timestamp: 2026-07-18
verified: 2026-08-28
---
# Skill Commands (`/skill:name`)
Skills register as `/skill:name` commands:
```bash
/skill:brave-search # Load and execute the skill
/skill:pdf-tools extract # Load skill with arguments
```
Arguments after the command are appended to the skill content as `User: <args>`.
Toggle skill commands via `/settings` in interactive mode or in `settings.json`:
```json
{
"enableSkillCommands": true
}
```
## Related
* [Skill Loading](../npx-skills/skill-loading.md) — How skills are normally loaded
* [Npx Skills Overview](../npx-skills/index.md) — Settings and package control
@@ -1,65 +0,0 @@
---
type: reference
title: Skill File Structure
description: The directory structure of a skill — SKILL.md as the required entry point, with optional scripts, references, and assets directories.
tags:
- unverified
- skills
- structure
- SKILL.md
timestamp: 2026-07-18
verified: 2026-08-28
---
# Skill File Structure
A skill is a **directory** with a `SKILL.md` file. Everything else is freeform.
## Standard Structure
```
my-skill/
├── SKILL.md # Required: frontmatter + instructions
├── scripts/ # Helper scripts (bash, js, python, etc.)
│ ├── process.sh
│ └── analyze.js
├── references/ # Detailed docs loaded on-demand
│ ├── api-reference.md
│ └── FORMS.md
├── assets/ # Templates, configs, binary data
│ └── template.json
├── config.json # Skill-specific configuration
└── tests/ # Test scripts (optional)
└── test_runner.sh
```
## Real Example: zim-knowledge-base
```
zim-knowledge-base/
├── SKILL.md # Main skill instructions
├── config.json # ZIM file path configuration
├── scripts/
│ ├── search.sh # Search ZIM file index
│ ├── extract.sh # Extract article as HTML
│ ├── list.sh # List article titles
│ └── metadata.sh # Get article metadata
└── tests/
├── mock_zimdump.sh # Mock for testing
├── test_runner.sh # Test harness
└── test_zim_file.zim # Test fixture
```
## Real Example: brave-search (from badlogic/pi-skills)
```
brave-search/
├── SKILL.md # Setup + usage instructions
├── search.js # Brave Search API wrapper
└── content.js # Page content extraction
```
## Related
* [Skills Specification](/tools/npx-skills/skills-spec.md) — Frontmatter fields and requirements
* [Best Practices](/tools/npx-skills/best-practices.md) — File organization tips
@@ -1,42 +0,0 @@
---
type: reference
title: How Pi Loads Skills
description: The discovery flow, progressive disclosure pattern, and system prompt integration for skills in pi.
tags:
- unverified
- skills
- loading
- progressive-disclosure
timestamp: 2026-07-18
verified: 2026-08-28
---
# How the Pi Agent Loads and Uses Skills
## Discovery Flow
1. Pi scans all configured skill locations at startup
2. Extracts names and descriptions from each `SKILL.md`
3. Builds the system prompt with skill descriptions in XML format
4. The LLM decides which skill(s) to activate based on the user's prompt
5. When activated, the agent reads the full SKILL.md using the `read` tool
## Progressive Disclosure Pattern
```
System prompt (always in context):
- "Available skills: brave-search (Web search...), browser-tools (Browser automation...), ..."
User: "Search for information about React hooks"
Agent decides: activate brave-search
Agent reads: ~/.pi/agent/skills/brave-search/SKILL.md (full file)
Agent executes: {baseDir}/search.js "React hooks"
```
## This is progressive disclosure: only descriptions are always in context, full instructions load on-demand.
## Related
* [Skills Specification](/tools/npx-skills/skills-spec.md) — What the agent sees in the system prompt
* [Skill Commands](/tools/npx-skills/skill-commands.md) — The `/skill:name` override
-70
View File
@@ -1,70 +0,0 @@
---
type: reference
title: Agent Skills Specification
description: The Agent Skills standard that defines SKILL.md format, frontmatter fields, and cross-agent compatibility.
tags:
- unverified
- agent-skills
- specification
- npm
timestamp: 2026-07-18
verified: 2026-08-28
---
# Agent Skills Specification
Pi implements the [Agent Skills standard](https://agentskills.io/specification), warning about most violations but remaining lenient. The specification defines:
- A **frontmatter block** (YAML) at the top of `SKILL.md` with required `name` and `description` fields
- A **Markdown body** with the skill's instructions
- Optional subdirectories: `scripts/`, `references/`, `assets/`
The specification is designed to be **cross-agent-compatible**: skills written for pi work with Claude Code, Codex CLI, Amp, Droid, and other compatible agents.
## Frontmatter Fields
| Field | Required | Description |
|-------|----------|-------------|
| `name` | **Yes** | Max 64 chars. Lowercase a-z, 0-9, hyphens only. No leading/trailing hyphens. No consecutive hyphens. |
| `description` | **Yes** | Max 1024 chars. What the skill does and when to use it. **This is the only thing the agent sees when deciding whether to activate the skill.** |
| `license` | No | License name or reference to bundled file. |
| `compatibility` | No | Max 500 chars. Environment requirements. |
| `metadata` | No | Arbitrary key-value mapping. |
| `allowed-tools` | No | Space-delimited list of pre-approved tools (experimental). |
| `disable-model-invocation` | No | When `true`, skill is hidden from system prompt. Users must use `/skill:name` explicitly. |
### Name Rules
Valid: `pdf-processing`, `data-analysis`, `code-review`
Invalid: `PDF-Processing`, `-pdf`, `pdf--processing`
**Note:** Pi does not require the name to match the parent directory. The Agent Skills standard does, but that requirement is suboptimal for shared skill directories.
### Description Best Practices
The description determines when the agent loads the skill. Be specific.
**Good:**
```yaml
description: Extracts text and tables from PDF files, fills PDF forms, and merges multiple PDFs. Use when working with PDF documents.
```
**Poor:**
```yaml
description: Helps with PDFs.
```
## Cross-Agent Compatibility
Skills follow a shared specification that works across:
- Pi (`~/.pi/agent/skills/`)
- Claude Code (`~/.claude/skills/`)
- Codex (`~/.codex/skills/`)
- OpenCode (`~/.config/opencode/skills/`)
- And [68+ other agents](/tools/vercel-labs-skills/agent-support.md)
## Related
* [Skill File Structure](/tools/npx-skills/skill-file-structure.md) — How to organize SKILL.md and its supporting files
* [Ecosystem](/tools/npx-skills/ecosystem.md) — Where to find community skills
@@ -1,50 +0,0 @@
---
type: reference
title: Skills vs Extensions
description: Side-by-side comparison of skills (markdown-based) vs extensions (TypeScript-based) for pi coding agent.
tags:
- unverified
- skills
- extensions
- comparison
timestamp: 2026-07-18
verified: 2026-08-28
---
# Skills vs Extensions
| Feature | Skills | Extensions |
|---------|--------|------------|
| **Format** | Markdown (`SKILL.md` + optional scripts) | TypeScript (`.ts` files) |
| **Purpose** | Instructions for the LLM to follow | Code that intercepts events, registers tools/commands |
| **Execution** | Agent reads and follows instructions | Runs in pi's Node.js runtime |
| **Loading** | On-demand (progressive disclosure) | Always loaded at startup |
| **Power** | Can instruct the agent to run anything | Full programmatic access to pi's API |
| **Security** | Review content (instructs model) | Review code (runs arbitrary code) |
| **Best for** | Domain knowledge, workflows, scripts | Permission gates, custom tools, event handling |
| **Location** | `skills/` directory | `extensions/` directory |
| **Can distribute via npm?** | Yes (via pi packages) | Yes (via pi packages) |
## When to Use Each
- **Skill**: You want to teach the agent a new workflow, provide domain expertise, or bundle helper scripts
- **Extension**: You need to intercept tool calls, register new LLM-callable tools, modify system prompts programmatically, or add custom TUI components
## They Can Work Together
A pi package can contain both:
```json
{
"pi": {
"extensions": ["./extensions"],
"skills": ["./skills"]
}
}
```
Example: `pi-web-access` provides both a web-search extension AND skill documentation for it.
## Related
* [Package Structure](/tools/npx-skills/package-structure.md) — How to bundle both in one npm package
@@ -1,84 +0,0 @@
---
type: reference
title: Skills CLI Agent Support Matrix
description: Complete list of 68+ supported coding agents, their --agent flags, and installation paths (project and global).
tags:
- unverified
- skills
- agents
- compatibility
timestamp: 2026-07-18
verified: 2026-08-28
---
# Agent Support
The CLI supports **68+ agents**. It automatically detects which coding agents you have installed. If none are detected, you'll be prompted to select which agents to install to.
## Full Agent Path Table
| Agent | `--agent` | Project Path | Global Path |
|-------|-----------|--------------|-------------|
| Amp, Replit, Universal | `amp`, `replit`, `universal` | `.agents/skills/` | `~/.config/agents/skills/` |
| Claude Code | `claude-code` | `.claude/skills/` | `~/.claude/skills/` |
| Cursor | `cursor` | `.agents/skills/` | `~/.cursor/skills/` |
| Codex | `codex` | `.agents/skills/` | `~/.codex/skills/` |
| OpenCode | `opencode` | `.agents/skills/` | `~/.config/opencode/skills/` |
| Cline, Dexto, Kimi Code CLI, Loaf, Warp, Zed | `cline`, `dexto`, `kimi-code-cli`, `loaf`, `warp`, `zed` | `.agents/skills/` | `~/.agents/skills/` |
| Gemini CLI | `gemini-cli` | `.agents/skills/` | `~/.gemini/skills/` |
| GitHub Copilot | `github-copilot` | `.agents/skills/` | `~/.copilot/skills/` |
| Pi | `pi` | `.pi/skills/` | `~/.pi/agent/skills/` |
| Roo Code | `roo` | `.roo/skills/` | `~/.roo/skills/` |
| Windsurf | `windsurf` | `.windsurf/skills/` | `~/.codeium/windsurf/skills/` |
| Kiro CLI | `kiro-cli` | `.kiro/skills/` | `~/.kiro/skills/` |
| Continue | `continue` | `.continue/skills/` | `~/.continue/skills/` |
| Goose | `goose` | `.goose/skills/` | `~/.config/goose/skills/` |
| OpenHands | `openhands` | `.openhands/skills/` | `~/.openhands/skills/` |
| Trae | `trae` | `.trae/skills/` | `~/.trae/skills/` |
| Qoder | `qoder` | `.qoder/skills/` | `~/.qoder/skills/` |
| Qwen Code | `qwen-code` | `.qwen/skills/` | `~/.qwen/skills/` |
| iFlow CLI | `iflow-cli` | `.iflow/skills/` | `~/.iflow/skills/` |
| Deep Agents | `deepagents` | `.agents/skills/` | `~/.deepagents/agent/skills/` |
| Droid / Factory AI | `droid` | `.factory/skills/` | `~/.factory/skills/` |
| Firebender | `firebender` | `.agents/skills/` | `~/.firebender/skills/` |
| Devin for Terminal | `devin` | `.devin/skills/` | `~/.config/devin/skills/` |
| Kilo Code | `kilo` | `.kilocode/skills/` | `~/.kilocode/skills/` |
| Crush | `crush` | `.crush/skills/` | `~/.config/crush/skills/` |
| Anthropic Antigravity | `antigravity` | `.agents/skills/` | `~/.gemini/antigravity/skills/` |
| Jazz | `jazz` | `.jazz/skills/` | `~/.jazz/skills/` |
| Junie | `junie` | `.junie/skills/` | `~/.junie/skills/` |
| Kode | `kode` | `.kode/skills/` | `~/.kode/skills/` |
| Lingma | `lingma` | `.lingma/skills/` | `~/.lingma/skills/` |
| Moxby | `moxby` | `.moxby/skills/` | `~/.moxby/skills/` |
| Mux | `mux` | `.mux/skills/` | `~/.mux/skills/` |
| Pochi | `pochi` | `.pochi/skills/` | `~/.pochi/skills/` |
| AdaL | `adal` | `.adal/skills/` | `~/.adal/skills/` |
| Neovate | `neovate` | `.neovate/skills/` | `~/.neovate/skills/` |
| AiderDesk | `aider-desk` | `.aider-desk/skills/` | `~/.aider-desk/skills/` |
| IBM Bob | `bob` | `.bob/skills/` | `~/.bob/skills/` |
| CodeArts Agent | `codearts-agent` | `.codeartsdoer/skills/` | `~/.codeartsdoer/skills/` |
| CodeBuddy | `codebuddy` | `.codebuddy/skills/` | `~/.codebuddy/skills/` |
| Codemaker | `codemaker` | `.codemaker/skills/` | `~/.codemaker/skills/` |
| Command Code | `command-code` | `.commandcode/skills/` | `~/.commandcode/skills/` |
| Cortex Code | `cortex` | `.cortex/skills/` | `~/.snowflake/cortex/skills/` |
| Eve | `eve` | `agent/skills/` | N/A (project-only) |
| ForgeCode | `forgecode` | `.forge/skills/` | `~/.forge/skills/` |
| Hermes Agent | `hermes-agent` | `.hermes/skills/` | `~/.hermes/skills/` |
| inference.sh | `inference-sh` | `.inferencesh/skills/` | `~/.inferencesh/skills/` |
| Kode | `kode` | `.kode/skills/` | `~/.kode/skills/` |
| MCPJam | `mcpjam` | `.mcpjam/skills/` | `~/.mcpjam/skills/` |
| Mistral Vibe | `mistral-vibe` | `.vibe/skills/` | `~/.vibe/skills/` |
| Ona | `ona` | `.ona/skills/` | `~/.ona/skills/` |
| PromptScript | `promptscript` | `.agents/skills/` | N/A (project-only) |
| Reasonix | `reasonix` | `.reasonix/skills/` | `~/.reasonix/skills/` |
| Rovo Dev | `rovodev` | `.rovodev/skills/` | `~/.rovodev/skills/` |
| Tabnine CLI | `tabnine-cli` | `.tabnine/agent/skills/` | `~/.tabnine/agent/skills/` |
| Terramind | `terramind` | `.terramind/skills/` | `~/.terramind/skills/` |
| Tinycloud | `tinycloud` | `.tinycloud/skills/` | `~/.tinycloud/skills/` |
| Zencoder, Zenflow | `zencoder`, `zenflow` | `.zencoder/skills/` | `~/.zencoder/skills/` |
> **Kiro CLI users:** The default agent automatically loads skills from `.kiro/skills/` and `~/.kiro/skills/` — no configuration needed.
## Related
* [Commands](/tools/vercel-labs-skills/commands.md) — Using the `--agent` flag with commands
@@ -1,116 +0,0 @@
---
type: reference
title: Skills CLI Commands
description: Complete reference for all skills CLI commands — add, use, list, find, update, remove, init, experimental_install, experimental_sync.
tags:
- unverified
- skills
- cli
- commands
timestamp: 2026-07-18
verified: 2026-08-28
---
# Commands Reference
## `skills add` — Install Skills
Install skills from a source (git repo, URL, or local path) into your agent directories.
```bash
npx skills add <source> [options]
```
### Options
| Option | Description |
|--------|-------------|
| `-g, --global` | Install to user directory (`~/`) instead of project (`./`) |
| `-a, --agent <agents...>` | Target specific agents |
| `-s, --skill <skills...>` | Install specific skills by name. Use `'*'` for all. |
| `-l, --list` | List available skills without installing |
| `--copy` | Copy files instead of symlinking |
| `-y, --yes` | Skip all confirmation prompts |
| `--all` | Install all skills to all agents without prompts |
### Examples
```bash
npx skills add vercel-labs/agent-skills --list
npx skills add vercel-labs/agent-skills --skill frontend-design --skill skill-creator
npx skills add vercel-labs/agent-skills -a claude-code -a opencode
npx skills add vercel-labs/agent-skills --all
```
## `skills use` — Use Without Installing
Generate a prompt for one skill, or start a supported coding agent interactively with the skill loaded.
```bash
npx skills use <source> [options]
# Generate prompt only
npx skills use vercel-labs/agent-skills@web-design-guidelines | claude
# Use with specific agent
npx skills use vercel-labs/agent-skills --skill web-design-guidelines --agent claude-code
```
## `skills list` (alias: `ls`) — List Installed Skills
```bash
npx skills list
npx skills ls -g # Global only
npx skills ls -a claude-code -a cursor
```
## `skills find` — Search for Skills
```bash
npx skills find # Interactive search
npx skills find typescript # Search by keyword
npx skills find react --owner vercel
```
## `skills update` — Update Installed Skills
```bash
npx skills update # All skills (interactive)
npx skills update my-skill # Single skill
npx skills update -g # Global only
npx skills update -y # Non-interactive
```
## `skills remove` (alias: `rm`) — Remove Installed Skills
```bash
npx skills remove # Interactive
npx skills remove web-design-guidelines
npx skills remove --all # Remove everything
```
## `skills init` — Create a New SKILL.md Template
```bash
npx skills init # In current directory
npx skills init my-skill # In a subdirectory
```
## `skills experimental_install` — Restore from Lock File
```bash
npx skills experimental_install
```
## Aliases
| Alias | Full Command |
|-------|-------------|
| `skills a` | `skills add` |
| `skills i` | `skills experimental_install` |
| `skills install` (no args) | `skills experimental_install` |
| `skills ls` | `skills list` |
| `skills rm` | `skills remove` |
## Related
* [Source Formats](/tools/vercel-labs-skills/source-formats.md) — What sources you can use with add/use
* [Installation Scope](/tools/vercel-labs-skills/installation-scope.md) — Global vs project
@@ -1,33 +0,0 @@
---
type: reference
title: Skills CLI Environment Variables
description: Environment variables — INSTALL_INTERNAL_SKILLS, DISABLE_TELEMETRY, DO_NOT_TRACK.
tags:
- unverified
- skills
- environment
- telemetry
timestamp: 2026-07-18
verified: 2026-08-28
---
# Environment Variables
| Variable | Description |
|----------|-------------|
| `INSTALL_INTERNAL_SKILLS` | Set to `1` or `true` to show and install skills marked as `internal: true` |
| `DISABLE_TELEMETRY` | Set to disable anonymous usage telemetry |
| `DO_NOT_TRACK` | Alternative way to disable telemetry |
```bash
# Install internal skills
INSTALL_INTERNAL_SKILLS=1 npx skills add vercel-labs/agent-skills --list
```
## Telemetry
The CLI collects anonymous usage data to help improve the tool. No personal information is collected. Telemetry is automatically disabled in CI environments.
## Related
* [SKILL.md Format](/tools/vercel-labs-skills/skill-format.md) — `metadata.internal: true`
@@ -1,19 +0,0 @@
# Vercel Labs `skills` CLI
Complete list of 68+ supported coding agents, their --agent flags, and installation paths (project and global).
## Concept Files
| File | Type | Description |
|------|------|-------------|
| [agent-support.md](agent-support.md) | reference | Complete list of 68+ supported coding agents, their --agent flags, and instal... |
| [commands.md](commands.md) | reference | Complete reference for all skills CLI commands — add, use, list, find, update... |
| [env-variables.md](env-variables.md) | reference | Environment variables — INSTALL_INTERNAL_SKILLS, DISABLE_TELEMETRY, DO_NOT_TR... |
| [installation-scope.md](installation-scope.md) | reference | Project vs global installation, symlink vs copy methods. |
| [lock-file.md](lock-file.md) | reference | Version pinning and update checking via global and local lock files (.skill-l... |
| [related-links.md](related-links.md) | reference | Links to the Agent Skills specification, skills directory, integration guide,... |
| [skill-discovery.md](skill-discovery.md) | reference | How the skills CLI discovers SKILL.md files in repositories — flat layout, ca... |
| [skill-format.md](skill-format.md) | reference | The required frontmatter fields, optional fields, internal skills, and struct... |
| [skill-store-wiring.md](skill-store-wiring.md) | reference | How omp's agent/skills directory is symlinked into the skills CLI global store, and where lockfile provenance lives. |
| [source-formats.md](source-formats.md) | reference | All accepted source formats for skills add and use — GitHub shorthand, full U... |
@@ -1,36 +0,0 @@
---
type: reference
title: Skills CLI Installation Scope
description: Project vs global installation, symlink vs copy methods.
tags:
- unverified
- skills
- installation
- scope
timestamp: 2026-07-18
verified: 2026-08-28
---
# Installation Scope
## Project vs Global
| Scope | Flag | Location | Use Case |
|-------|------|----------|----------|
| **Project** | _(default)_ | `./<agent>/skills/` | Committed with your project, shared with team |
| **Global** | `-g` | `~/<agent>/skills/` | Available across all projects |
## Symlink vs Copy
When installing interactively, you can choose:
| Method | Description |
|--------|-------------|
| **Symlink** _(Recommended)_ | Creates symlinks from each agent to a canonical copy. Single source of truth, easy updates. |
| **Copy** | Creates independent copies for each agent. Use when symlinks are not supported. |
Use `--copy` to force copy mode.
## Related
* [Commands](/tools/vercel-labs-skills/commands.md) — add, use, list, remove commands
@@ -1,43 +0,0 @@
---
type: reference
title: Skills CLI Lock File System
description: Version pinning and update checking via global and local lock files (.skill-lock.json and skills-lock.json).
tags:
- unverified
- skills
- lockfile
- versioning
timestamp: 2026-07-18
verified: 2026-08-28
---
# Lock File System
The `skills` CLI uses a lock file system for version pinning and update checking.
## Lock File Locations
| Type | Path | Scope |
|------|------|-------|
| **Global lock** | `~/.agents/.skill-lock.json` | Global (user-wide) |
| **Local lock** | `skills-lock.json` | Project (checked into version control) |
## How `skills check` and `skills update` Work
1. Read `~/.agents/.skill-lock.json` for installed skills
2. Filter to GitHub-backed skills that have both `skillFolderHash` and `skillPath`
3. For each skill, call `fetchSkillFolderHash(source, skillPath, token)`
- Optional auth token from `GITHUB_TOKEN`, `GH_TOKEN`, or `gh auth token`
4. `fetchSkillFolderHash` calls GitHub Trees API (`/git/trees/<branch>?recursive=1` for `main`, then `master` fallback)
5. Compare latest folder tree SHA with lock file `skillFolderHash`; mismatch means update available
6. `skills update` reinstalls changed skills by invoking the current CLI directly
## Lock File Format
- **Version:** v3
- **Key field:** `skillFolderHash` — GitHub tree SHA for the skill folder
- **Compatibility:** If reading an older lock file version, it is wiped. Users must reinstall skills to populate the new format.
## Related
* [Commands](/tools/vercel-labs-skills/commands.md) — check, update, experimental_install
@@ -1,43 +0,0 @@
---
type: reference
title: Vercel Labs Skills — Related Links
description: Links to the Agent Skills specification, skills directory, integration guide, and agent-specific skill documentation.
tags:
- unverified
- skills
- links
- resources
timestamp: 2026-07-18
verified: 2026-08-28
---
# Related Links
## Specification & Ecosystem
| Resource | URL |
|----------|-----|
| [Agent Skills Specification](https://agentskills.io) | agentskills.io/specification |
| [Skills Directory](https://skills.sh) | skills.sh |
| [Agent Skills Integration Guide](https://agentskills.io/integrate-skills) | agentskills.io/integrate-skills |
| [Vercel Agent Skills Repository](https://github.com/vercel-labs/agent-skills) | github.com/vercel-labs/agent-skills |
## Agent-Specific Skill Documentation
| Agent | Documentation |
|-------|--------------|
| Amp | [Amp Skills Documentation](https://ampcode.com/manual#agent-skills) |
| Claude Code | [Claude Code Skills Documentation](https://code.claude.com/docs/en/skills) |
| Codex | [Codex Skills Documentation](https://developers.openai.com/codex/skills) (url unreachable 2026-08-28) |
| Cursor | [Cursor Skills Documentation](https://cursor.com/docs/context/skills) |
| Gemini CLI | [Gemini CLI Skills Documentation](https://geminicli.com/docs/cli/skills/) (url unreachable 2026-08-28) |
| GitHub Copilot | [GitHub Copilot Agent Skills](https://docs.github.com/en/copilot/concepts/agents/about-agent-skills) |
| OpenCode | [OpenCode Skills Documentation](https://opencode.ai/docs/skills) (url unreachable 2026-08-28) |
| OpenHands | [OpenHands Skills Documentation](https://docs.openhands.ai/modules/usage/how-to/using-skills) (url unreachable 2026-08-28) |
| Pi | [Pi Skills Documentation](https://github.com/earendil-works/pi) |
| Roo Code | [Roo Code Skills Documentation](https://docs.roocode.com/features/skills) (url unreachable 2026-08-28) |
| Windsurf | [Windsurf](https://www.codeium.com/windsurf) (url unreachable 2026-08-28) |
## Related
* [Agent Support](/tools/vercel-labs-skills/agent-support.md) — Full list of 68+ supported agents
@@ -1,63 +0,0 @@
---
type: reference
title: Skills CLI Skill Discovery
description: How the skills CLI discovers SKILL.md files in repositories — flat layout, catalog layout, plugin manifests.
tags:
- unverified
- skills
- discovery
- repository
timestamp: 2026-07-18
verified: 2026-08-28
---
# Skill Discovery
The CLI searches for skills in these locations within a repository. Each skill container directory is walked:
- **One level deep** for the common flat layout: `skills/<name>/SKILL.md`
- **One extra level deep** for catalog layouts: `skills/<category>/<name>/SKILL.md`
A `SKILL.md` discovered at the shallower level shadows anything nested below it. Use `--full-depth` to also discover `SKILL.md` files outside these container directories.
## Standard Discovery Locations
- `SKILL.md` in root directory (if present)
- `skills/`
- `skills/.curated/`
- `skills/.experimental/`
- `skills/.system/`
- `.agents/skills/`
- `.claude/skills/`
- `.goose/skills/`
- `.openhands/skills/`
- `.pi/skills/`
- And many more per-agent directories (see [Agent Support](/tools/vercel-labs-skills/agent-support.md))
## Plugin Manifest Discovery
If `.claude-plugin/marketplace.json` or `.claude-plugin/plugin.json` exists, skills declared in those files are also discovered. This enables compatibility with the [Claude Code plugin marketplace](https://code.claude.com/docs/en/plugin-marketplaces) ecosystem.
Example `marketplace.json`:
```json
{
"metadata": { "pluginRoot": "./plugins" },
"plugins": [
{
"name": "my-plugin",
"source": "my-plugin",
"skills": ["./skills/review", "./skills/test"]
}
]
}
```
Skill paths declared in a manifest are searched at their declared depth.
If no skills are found in standard locations, a **recursive search** is performed as a fallback.
## Related
* [SKILL.md Format](/tools/vercel-labs-skills/skill-format.md) — What a discovered skill looks like
* [Commands](/tools/vercel-labs-skills/commands.md) — add and use commands
@@ -1,70 +0,0 @@
---
type: reference
title: SKILL.md Format
description: The required frontmatter fields, optional fields, internal skills, and structure for SKILL.md files.
tags:
- skills
- SKILL.md
- format
- unverified
verified: 2026-08-28
# SKILL.md Format
Skills are directories containing a `SKILL.md` file with YAML frontmatter.
## Basic Structure
```markdown
---
name: my-skill
description: What this skill does and when to use it
---
# My Skill
Instructions for the agent to follow when this skill is activated.
## When to Use
Describe the scenarios where this skill is used.
## Steps
1. First, do this
2. Then, do that
```
## Required Frontmatter Fields
| Field | Type | Description |
|-------|------|-------------|
| `name` | string | Unique identifier (lowercase, hyphens allowed) |
| `description` | string | Brief explanation of what the skill does |
## Optional Frontmatter Fields
| Field | Type | Description |
|-------|------|-------------|
| `metadata.internal` | boolean | Set to `true` to hide the skill from normal discovery. Requires `INSTALL_INTERNAL_SKILLS=1` |
| `license` | string | License name or reference to bundled file |
| `compatibility` | string | Environment requirements (max 500 chars) |
| `metadata` | object | Arbitrary key-value mapping |
| `allowed-tools` | string | Space-delimited list of pre-approved tools (experimental) |
| `disable-model-invocation` | boolean | When `true`, skill is hidden from system prompt. Users must use `/skill:name` explicitly |
## Internal Skills Example
```markdown
---
name: my-internal-skill
description: An internal skill not shown by default
metadata:
internal: true
---
```
## Related
* [Skill Discovery](/tools/vercel-labs-skills/skill-discovery.md) — How skills are discovered in repos
* [Commands](/tools/vercel-labs-skills/commands.md) — `skills init` to create new skills
@@ -1,63 +0,0 @@
---
type: reference
title: omp Skill Store Wiring
description: Division of skill tiers on Dank workstations — skills CLI global store, omp agents provider, and the authored repo tier.
tags:
- skills
- provisioning
- dotfiles
timestamp: 2026-10-18
verified: 2026-10-18
---
# omp Skill Store Wiring
Three tiers, one owner each:
| Tier | Path | Owner | Content |
|---|---|---|---|
| Canonical store | `~/.agents/skills/` | `skills` CLI | upstream skills, 38 as of 2026-10-18 (all `mattpocock/skills`) |
| Provenance | `~/.agents/.skill-lock.json` | `skills` CLI | v3 lockfile: `source`, `skillPath`, `skillFolderHash` per skill |
| Authored | `agent/skills/` (this repo) | Frank, via PR | hand-customized overrides; today only `grilling` |
## How omp loads them
omp is NOT a registered agent in the `skills` CLI (79-agent registry checked
2026-10-18; see [Agent Support](/tools/vercel-labs-skills/agent-support.md)) —
`skills add` never writes anywhere under `~/.omp`. Instead omp's own `agents`
provider reads the store **directly**: `skills.enableAgentsUser` (default true)
loads `~/.agents/skills/*/SKILL.md`. No per-skill symlinks in the repo — the
repo does not mirror the store; it only holds authored overrides.
Precedence (omp `omp://skills.md`): authored `agent/skills/` (native, priority
100) beats the agents provider; identical copies collapse by realpath, differing
same-named copies survive namespaced (`agents/<name>`) with a startup warning.
Therefore: **when authoring an override, remove the skill from the store**
(`npx skills remove <name> -g`) so the lockfile stays truthful and no
namespaced twin haunts the listing. `grilling` was extracted this way 2026-10-18.
## Updating upstream skills
```bash
npx -y skills update -g # refreshes everything the lockfile tracks
npx skills check # drift report vs GitHub tree SHAs
```
Fresh workstation (omp side is two commands — store restore + authored tier
arrives with the repo clone):
```bash
npx -y skills add mattpocock/skills --all -g
npx -y skills add vercel-labs/skills --skill find-skills --agent universal -g
npx -y skills remove grilling -g # authored copy ships in the repo
```
## Managed tier
`agent/managed-skills/` (auto-learn, priority 5) is separate and untouched by
all of the above; authored skills always win name collisions against it.
## Related
* [Lock File](/tools/vercel-labs-skills/lock-file.md) — hash-based update checking
* [Agent Support](/tools/vercel-labs-skills/agent-support.md) — full CLI agent registry
@@ -1,43 +0,0 @@
---
type: reference
title: Skills CLI Source Formats
description: All accepted source formats for skills add and use — GitHub shorthand, full URLs, GitLab, git URLs, local paths.
tags:
- unverified
- skills
- sources
- git
timestamp: 2026-07-18
verified: 2026-08-28
---
# Source Formats
The `skills` CLI accepts multiple source formats for the `add` and `use` commands:
```bash
# GitHub shorthand (owner/repo)
npx skills add vercel-labs/agent-skills
# Full GitHub URL
npx skills add https://github.com/vercel-labs/agent-skills
# Direct path to a skill in a repo
npx skills add https://github.com/vercel-labs/agent-skills/tree/main/skills/web-design-guidelines
# GitLab URL
npx skills add https://gitlab.com/org/repo
# Any git URL
npx skills add git@github.com:vercel-labs/agent-skills.git
# Local path
npx skills add ./my-local-skills
```
The source parser (`src/source-parser.ts`) handles all these formats, cloning repos as needed and resolving skill directories.
## Related
* [Commands](/tools/vercel-labs-skills/commands.md) — add and use commands
* [Skill Discovery](/tools/vercel-labs-skills/skill-discovery.md) — How skills are found within repos