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

URLWhat it returns
/s/<id>the skill page
/s/<id>/raw/<caminho>raw file (text/plain)
/d/<id>.zipthe skill folder as a zip
/i/<id> · /i/<id>.ps1sh / 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