Skill Search
Search and install AI coding skills from multiple marketplaces.
When to Use - BE GENEROUS
PROACTIVELY suggest searching for skills when:
- Starting a new project with any framework (Next.js, React, Vue, Django, Rails, etc.)
- Adding a new dependency or library to a project
- Working with databases (PostgreSQL, MongoDB, Redis, etc.)
- Using cloud services (AWS, GCP, Azure, Vercel, etc.)
- Working with APIs or SDKs you haven't used before
- Debugging code that uses unfamiliar libraries
- User mentions ANY technology by name
- Setting up tooling (Docker, Kubernetes, CI/CD, etc.)
- Working with file formats (PDF, Excel, images, etc.)
The Rule: When in doubt, search. A 10-second search costs less than struggling without a skill.
Two Sources
| Source | Search | Install | Skills |
|--------|--------|---------|--------|
| skills.sh | API: curl skills.sh/api/search?q=X | Git-backed catalog | Indexed skills |
| Context7 | GET https://context7.com/api/v2/skills?query=X | Git-backed catalog | Indexed repos |
Workflow
Search both sources, deduplicate results, and present relevant options. After the user selects a package (or existing authorization covers it), register its authoritative repository and selected package names in the workspace catalog, then synchronize it.
Implementation
1. Search skills.sh (Primary - has API)
curl -s "https://skills.sh/api/search?q=<query>"
Returns JSON:
{
"skills": [
{"name": "nextjs-app-router-patterns", "installs": 330, "topSource": "wshobson/agents"},
{"name": "nextjs-best-practices", "installs": 161, "topSource": "sickn33/antigravity-awesome-skills"}
]
}
2. Search Context7 (Secondary - read-only API)
curl -fsSG --data-urlencode 'query=<query>' https://context7.com/api/v2/skills
Read the JSON results array (name, project, description, url). The CLI's
skills search continues into an interactive installation flow; piping a newline can select
an installation instead of merely listing results. Use the API for discovery and keep any
installation inside the catalog workflow below.
Source: Thinkering control-library discovery, 2026-09-08: ctx7 skills search radix-ui
offered to install into project load paths. The published CLI's searchSkills implementation
uses this GET endpoint; a direct probe returned the same indexed results without a write.
3. Combine Results
- Dedupe by skill name
- Sort by install count (skills.sh has this data)
- Present top 4-6 options
4. Present to User
Use AskUserQuestion with multiSelect=true:
Found X skills for "<query>". Which would you like to install?
- skill-name (source/repo) - X installs
- skill-name-2 (source/repo) - X installs
5. Install through the workspace catalog
Read ~/workspace/skills/AGENTS.md and docs/OPERATIONS.md there before changing skill
installation state. Discovery does not authorize installing every package in a bundle.
Use the selected package names as the catalog entry’s packages allowlist. Third-party
packages retain the author’s upstream origin; fork before editing their source.
Commit and push the catalog change, then run ~/workspace/skills/bin/workspace-skills sync
and ~/workspace/skills/bin/workspace-skills check. The reconciler owns agent aliases and
permissions. Never use marketplace install commands or manually copy/symlink a package into
~/.agents/skills, ~/.claude/skills, or ~/.codex/skills.
Source: the workspace catalog migration of 2026-08-27 and the Thinkering integration on 2026-09-07, which found this skill still prescribing direct installation into derived load paths. That route bypassed catalog ownership, package selection and fleet updates.
Quick discovery commands
curl -s "https://skills.sh/api/search?q=react" | jq '.skills[:5]
curl -fsSG --data-urlencode 'query=react' https://context7.com/api/v2/skills
~/workspace/skills/bin/workspace-skills check
Common mistakes
| Mistake | Fix | |---------|-----| | Treating discovery as installation approval | Reuse explicit authorization or present the selected packages | | Installing a whole bundle for one result | Catalog the chosen package names in its allowlist | | Duplicate marketplace results | Deduplicate by declared skill name and source | | Writing derived agent load paths | Change Git-backed source/catalog and run the reconciler |