seoskills.sh
Catalog/Docs

Docs

seoskills.sh is a directory and package manager for SEO agent skills. Every skill is a public GitHub repo with a SKILL.md. Install one into any agent with a single command, or consume the whole catalog over a REST API, an MCP endpoint, or the Agent Skills discovery index.

Guides

Install and manage skills

How skills work

SEO with an agent

Reference

01

Install a skill

Skills install with the open-source skills CLI. No account, no config. Our own skills install from https://seoskills.sh by slug, with their scripts and reference files. Keep the https://: without it the CLI reads seoskills.sh as a GitHub repository.

$ npx skills add https://seoskills.sh --skill content-decay-predictor

A skill by another author installs from that author’s GitHub repository, with the same command skills.sh shows, so the install counts toward the author. Each skill page and the API install field give the right command:

$ npx skills add https://github.com/agricidaniel/claude-seo --skill seo-sitemap

Pick skills from our index, nearly the whole catalog (the CLI lists them and asks which to install), or add --skill '*' to install all of them. The few it doesn’t serve install from their authors’ repositories:

$ npx skills add https://seoskills.sh
$ npx skills add https://seoskills.sh --skill '*'

Target a specific agent with -a. Each agent has its own landing page (see Claude Code, Cursor, and 9 more):

$ npx skills add https://seoskills.sh -a claude-code
$ npx skills add https://seoskills.sh -a cursor
$ npx skills add https://seoskills.sh -a codex
02

Discover skills

Browse the catalog three ways:

  • The full catalog with instant search.
  • Category pages: 14 SEO sub-domains from technical SEO to local and AI search.
  • Agent pages: a per-agent install command, plus install steps and curated picks for Claude Code and Cursor.
03

REST API

A public, CORS-enabled JSON API. No key required. Responses are cached at the edge for an hour.

GET/api/skills?q=&category=&limit=
GET/api/skills/{owner}/{repo}/{slug}
GET/api/categories

Example: search the on-page SEO category for our schema generator.

$ curl "https://seoskills.sh/api/skills?q=schema+markup+generator&category=on-page-seo&limit=1"

{
  "count": 1,
  "skills": [
    {
      "id": "seoskills-sh/catalog/schema-markup-generator",
      "slug": "schema-markup-generator",
      "name": "Schema Markup Generator",
      "description": "Generates complete JSON-LD for a page from what it shows, checks existing markup...",
      "category": "on-page-seo",
      "installs": 0,
      "source": "seoskills-sh/catalog",
      "install": "npx skills add https://seoskills.sh --skill schema-markup-generator"
    }
  ]
}

Fetch one skill with its full SKILL.md in the skillMd field. This is how an app pulls a skill’s body to run it, with no GitHub round-trip, for internal and external skills alike.

$ curl "https://seoskills.sh/api/skills/seoskills-sh/catalog/content-decay-predictor"

{
  "id": "seoskills-sh/catalog/content-decay-predictor",
  "slug": "content-decay-predictor",
  "name": "Content Decay Predictor",
  "description": "Fits a trend to each page's Search Console clicks and impressions...",
  "category": "content",
  "installs": 0,
  "source": "seoskills-sh/catalog",
  "repository": "https://github.com/seoskills-sh/catalog",
  "license": "MIT",
  "install": "npx skills add https://seoskills.sh --skill content-decay-predictor",
  "skillMd": "---\nname: Content Decay Predictor\n... (the full instructions)"
}

A skill by another author returns its GitHub install command in install, as on its page. A skill whose licence does not allow redistribution also returns null for skillMd.

04

MCP endpoint

Give any MCP client live access to the catalog. The server exposes three tools: search_skills, get_skill, and list_categories.

POST/api/mcp

Add it to Claude Code:

$ claude mcp add --transport http seoskills https://seoskills.sh/api/mcp

Or to any client that reads a JSON config:

{
  "mcpServers": {
    "seoskills": {
      "url": "https://seoskills.sh/api/mcp"
    }
  }
}
05

Discovery index

seoskills.sh implements the Agent Skills Discovery RFC. The well-known index is what makes npx skills add work. It lists every installable skill with a sha256 digest, of its SKILL.md or, for a skill that needs more than one file, of a folder archive with its scripts and reference files.

GET/.well-known/agent-skills/index.json
GET/.well-known/agent-skills/{name}/SKILL.md
GET/.well-known/agent-skills/{name}/skill.tar.gz
06

Listing badge

Show that your skill is listed on seoskills.sh. The badge links back to the skill’s page here. Every skill page has a ready-made snippet under “Embed a badge”; this is the pattern:

seoskills.sh listing badge

[![seoskills.sh](https://seoskills.sh/b/<owner>/<repo>/<skill>.svg)](https://seoskills.sh/<owner>/<repo>/<skill>)
07

Publish a skill

A skill is just a public GitHub repo with a SKILL.md at the path the skill lives in: a name, a description, and the instructions an agent follows. That is the entire format.

your-repo/
  seo-audit/
    SKILL.md   # --- name, description, then the instructions

seoskills.sh checks skills.sh for new SEO skills every day. A skill seen for the first time is listed automatically when it is about SEO, has real instructions, and passes the security scan. One that fails is not listed, and a listed skill that starts failing is taken off. The guides cover writing a SKILL.md and what the scan checks. Want a skill reviewed now, or spotted a problem with a listing? Open an issue on the catalog repo.

Not on skills.sh? Submit the repo and the next daily update reads every SKILL.md in it.