Skills Directory Registry API
A simple JSON API for CLI tools to discover and search skills from the Skills Directory.
Designed for integration with openskills - a CLI tool that installs Claude skills directly from GitHub.
Base URL
https://skillsdirectory.com/api/registry
Endpoints
List/Search Skills
GET /api/registry
Returns a paginated list of skills. Use this to search and discover skills.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
q | string | - | Search query (matches name, description) |
category | string | - | Filter by category slug |
limit | number | 50 | Results per page (max 100) |
offset | number | 0 | Pagination offset |
sort | string | "votes" | Sort by: votes, recent, stars |
Example Request
curl "https://skillsdirectory.com/api/registry?q=git&limit=10"
Example Response
{
"registry": "skillsdirectory",
"version": "1.0.0",
"skills": [
{
"name": "Git Commit Helper",
"slug": "git-commit-helper",
"description": "Helps write better commit messages following conventional commits",
"repository": "username/repo-name",
"category": "development",
"author": "username",
"stars": 42,
"verified": true,
"tags": ["git", "automation", "commits"]
}
],
"pagination": {
"total": 156,
"limit": 10,
"offset": 0,
"hasMore": true
}
}
Get Skill Details
GET /api/registry/{slug}
Returns detailed information about a specific skill.
Example Request
curl "https://skillsdirectory.com/api/registry/memory-curator"
Example Response
{
"registry": "skillsdirectory",
"version": "1.0.0",
"skill": {
"name": "Memory Curator",
"slug": "memory-curator",
"description": "Intelligently manages Claude's memory files",
"repository": "markmdev/meridian",
"category": "productivity",
"author": {
"name": "markmdev",
"url": "https://github.com/markmdev",
"avatar": "https://avatars.githubusercontent.com/u/12345"
},
"github": {
"stars": 127,
"forks": 23,
"license": "MIT"
},
"verified": true,
"tags": ["memory", "context", "productivity"],
"worksWith": ["claude code", "cursor"],
"requiresTools": null
}
}
Integration with openskills CLI
The repository field returns the GitHub repo in owner/repo format, which can be passed directly to openskills:
# 1. Search the registry
curl -s "https://skillsdirectory.com/api/registry?q=memory" | jq '.skills[0].repository'
# Returns: "markmdev/meridian"
# 2. Install with openskills
openskills install markmdev/meridian
Proposed CLI Integration
# Search skills from the directory
openskills search "memory" --vendor=skillsdirectory
# Behind the scenes:
# GET https://skillsdirectory.com/api/registry?q=memory
# User selects a skill, then:
openskills install markmdev/meridian
Response Schema
RegistrySkill (list view)
| Field | Type | Description |
|---|---|---|
name | string | Display name of the skill |
slug | string | URL-friendly identifier |
description | string | Brief description |
repository | string | GitHub repo in owner/repo format |
category | string | Category slug |
author | string | Author's GitHub username |
stars | number | GitHub star count |
verified | boolean | Whether the skill is verified |
tags | string[] | Associated tags |
RegistrySkillDetail (detail view)
Includes all fields from list view, plus:
| Field | Type | Description |
|---|---|---|
author.url | string | Author's GitHub profile URL |
author.avatar | string | Author's avatar URL |
github.forks | number | Fork count |
github.license | string | License identifier (e.g., "MIT") |
worksWith | string[] | Compatible platforms (e.g., "claude code") |
requiresTools | string[] | Required tools (e.g., "npm", "docker") |
Caching
Responses are cached for 60 seconds with stale-while-revalidate of 5 minutes:
Cache-Control: public, s-maxage=60, stale-while-revalidate=300
Error Responses
404 Not Found
{
"error": "Skill not found",
"code": "NOT_FOUND"
}
Skill Not Available
{
"error": "Skill not available",
"code": "NOT_AVAILABLE"
}
Rate Limiting
Currently no rate limiting is enforced, but please be respectful with request frequency.
Questions?
Open an issue at github.com/your-repo/skills-directory or reach out on Twitter.