How skillgist works
1. Publish
On the home page you can paste the contents of a SKILL.md or upload the zipped skill folder. The zip may contain the folder at its root (my-skill/SKILL.md) — that directory is detected and stripped automatically.
Minimum SKILL.md format:
--- name: pr-review description: Use when reviewing a pull request in this repository. --- # PR review 1. Check migrations before application code 2. Make sure tests cover the failure path
name must be kebab-case, and description is what makes Claude decide to trigger the skill — describe when to use it, not just what it does.
2. Share
Once published you get a short URL like http://localhost:3000/s/aB3xK9mQ2p. Anyone who opens it sees the rendered content and the install commands.
3. Install into a project
From the project root:
# macOS / Linux curl -fsSL http://localhost:3000/i/<id> | sh # Windows (PowerShell) iwr -useb http://localhost:3000/i/<id>.ps1 | iex
By default it installs to .claude/skills/<name> (that project only). To make it available in every project:
SKILL_DIR=~/.claude/skills curl -fsSL http://localhost:3000/i/<id> | sh
Already have a folder with that name? The script stops instead of overwriting. Use FORCE=1 to replace it.
Rather not pipe a script? Download the zip at http://localhost:3000/d/<id>.zip and unpack it inside .claude/skills/.
Endpoints
| URL | What it returns |
|---|---|
/s/<id> | the skill page |
/s/<id>/raw/<caminho> | raw file (text/plain) |
/d/<id>.zip | the skill folder as a zip |
/i/<id> · /i/<id>.ps1 | sh / PowerShell installer |
/api/skills/<id> | metadata as JSON |
Publish via API
curl -X POST http://localhost:3000/api/upload \
-F "file=@my-skill.zip"
# → {"id":"aB3xK9mQ2p","url":"http://localhost:3000/s/aB3xK9mQ2p","editToken":"…"}Keep the editToken: it's what lets you delete the skill later (DELETE /api/skills/<id> with the x-edit-token header). When you publish through the site, the token is saved in your browser.
Limits
- 5 MB per upload, 2 MB per file, 200 files per zip
- 30 publishes per hour per IP
- Skills marked “unlisted” don't show up in Explore or in search engines