google/find-skills
Helps users discover and install NEW agent skills from external sources (skills.sh, the Skills CLI). Use only when the user wants capabilities they don't already have — "find a skill for X", "is there a skill that can...", "how do I do X" for a task not covered by an installed skill. Do NOT use this to list skills you ALREADY have — those are in your `<available_skills>` block; answer from there directly.
npx skills add https://github.com/google/adk-samples --skill find-skills
Before searching externally, check the <available_skills> block in your
context — the user may already have a relevant skill installed.
Before running any CLI command, check skills.sh to see
whether a well-known skill already covers the domain. The leaderboard ranks by
total installs, surfacing the most popular and battle-tested options.
If the leaderboard doesn't cover the user's need, search via the Skills CLI:
terminal(command="npx --yes skills find <query>")
Examples:
| User says | Search |
|---|---|
| "make my React app faster" | npx --yes skills find react performance |
| "help with PR reviews" | npx --yes skills find pr review |
| "create a changelog" | npx --yes skills find changelog |
If npx is unavailable the command will fail — fall back to browsing
skills.sh manually and pasting the SKILL.md content.
Never recommend a skill based solely on search results.
vercel-labs, anthropics,microsoft) are more trustworthy than unknown authors
is a yellow flag
I found a skill that might help: "react-best-practices" from Vercel Engineering
provides React and Next.js performance guidelines (185K installs).
Shall I install it?
Only proceed to installation after the user confirms.
If you have the skill content (pasted by the user, retrieved from skills.sh,
or constructed from the search result):
write_file(".agents/skills/<name>/SKILL.md", content)
reload()
write_file creates the directory if it does not exist. reload refreshes
the <available_skills> catalog (plus extensions and manifest) on the next turn.
First check whether npx is available:
terminal(command="which npx")
If it is, install the skill. Select a single skill from a multi-skill repo with
the @<skill> suffix (omit it to take the whole repo):
terminal(command="npx --yes skills add <owner/repo>@<skill-name> -y")
The Skills CLI stages the skill (with its references/, assets/, and
scripts/ subdirs) under .agents/skills/<skill-name>/ — exactly where Horizon
loads skills from — so no move is needed. Just refresh:
reload()
The staged directory name MUST match the name: field in the SKILL.md
frontmatter — _load_skill_from_dir validates that and skips mismatched
skills.
After reload() returns (look for the new skill in skills_loaded), tell the user:
The "<name>" skill is now installed. It will appear in your
<available_skills> catalog on the next turn.
terminal(command="npx --yes skills init my-skill-name")
Or skip the CLI and author one manually — write a SKILL.md following the
policy or workspace skills as examples.
| Category | Search terms |
|---|---|
| Web development | react, nextjs, typescript, css, tailwind |
| Testing | testing, jest, playwright, e2e |
| DevOps | deploy, docker, kubernetes, ci-cd |
| Documentation | docs, readme, changelog, api-docs |
| Code quality | review, lint, refactor, best-practices |
| Design | ui, ux, design-system, accessibility |
Take google/find-skills from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference npx.
Without those the skill loads but fails at the first command.