Docs / quickstart
Better tools for
the agent you use.
Chops searches a public index of Agent Skills and installs source-pinned, digest-verified contents into one shared local store, linked into every agent you use. No account, no global install — everything below works from a bare terminal.
Install the CLI
The CLI ships on npm as chops-sh and installs the chops command. No account required for public skills.
npm install -g chops-shPrefer not to install anything? Every command below also works as npx chops-sh <command> — that’s the form skill pages use, and the right one for agents and CI.
Find by intent
Describe the outcome you want — Chops combines semantic and keyword relevance, so “make my queries faster” finds a skill described as “database query optimization.” Returns the top 10 matches.
chops find "optimize postgres queries"Add the skill
Use the slug from a result (owner/repo@skill). Chops downloads the pinned package, checks its SHA-256 digest against the registry manifest, and only then links it into your agents. You’ll be asked to confirm first — pass --yes to skip.
chops add owner/repo@skillCommands & flags
The full surface — small on purpose.
| Command | What it does |
|---|---|
find "<query>" | Search the index by intent. Top 10 results, ranked by relevance. |
add <owner/repo@skill> | Verify, install, and link a skill. Confirms before writing unless --yes. |
list | Show everything installed, from the lockfile. |
remove <owner/repo@skill> | Remove the store entry and its agent links. |
help · --version | Usage and CLI version. |
| Flag | Meaning |
|---|---|
--json | Machine-readable output. The right mode when an agent is driving. |
--yes, -y | Skip the install confirmation. Required when there’s no TTY. |
--agent <names> | Where to link, comma-separated: claude-code, cursor, codex (alias agents — the shared ~/.agents/skills). Default: ~/.agents/skills, plus ~/.claude/skills when it exists. |
--api-url <url> | Point at another registry (default https://api.chops.sh; env CHOPS_API_URL). |
How an install works
Five steps, each one inspectable afterwards:
- The registry returns a manifest: your slug, the pinned content SHA, and the package’s SHA-256 digest.
- The tarball is downloaded and rejected outright if its digest doesn’t match the manifest.
- Contents unpack once into
~/.chops/store/<owner>/<repo>/<skill>@<sha>/. - That store path is symlinked into each selected agent directory (junctions on Windows).
- The install is recorded in
~/.chops/chops.lock.
Published versions are immutable — packages are content-addressed and mirrored by the registry, so a force-pushed source repo can’t change what you already installed.
For coding agents
Chops is built to be driven by your agent, not just for it. Two rules: always --json, always --yes.
npx chops-sh find "your task" --jsonnpx chops-sh add owner/repo@skill --yes --jsonfind --json returns each result’s slug, description, publisher, agent compatibility, stars, installs, last-published date, and pinned SHA — everything needed to explain a choice before installing. add --json returns { ok, slug, sha, store, links }. Failures print a JSON error and exit non-zero.
Public registry API
Everything the CLI uses is a plain, unauthenticated HTTP API at https://api.chops.sh — build on it directly if you prefer.
| Endpoint | Returns |
|---|---|
GET /skills/search?q=<query>&limit=<1-50> | Hybrid semantic + keyword search results. Optional owner and agent filters. |
GET /skills?sort=popular|recent&limit=<1-50>&offset=<n> | The browsable index with a total count. |
GET /manifest?slug=<owner/repo@skill> | Pinned version, tarball URL, SHA-256 digest, size. |
GET /tarballs/<sha256> | The immutable, content-addressed package. |
GET /health · GET /version | Service status and deployed version. |
Use it everywhere
Chops maintains one local copy and links it into supported agent directories — install once, available in every session.