⏳ This skill is pending AI review.
Scores will appear once the review pipeline completes.
your-github-username
This is an example skill template. Use this as a reference when creating your own skill.
// RATINGS
Not yet listed on ClawHub or SkillsMP
// README
Open Skill Market
skillmarket.cc — Discover, install, and manage AI agent skills for every major coding assistant.
An open marketplace for AI agent skills. This project collects skills from two sources:
- PR Submissions: Users can submit skills directly to this repository via Pull Request
- GitHub Crawler: Automatically discovers
SKILL.mdfiles across public GitHub repositories
All skills are indexed in a central skills.json registry.
What are Skills?
Skills are markdown files (SKILL.md) that teach AI agents how to perform specific tasks. They include:
- Name: Unique identifier for the skill
- Description: What the skill does and when to use it
- Instructions: Step-by-step guidance for the agent
- Examples: Concrete usage examples
Skills can be stored individually in repositories or as collections in a single repository.
Project Structure
open-skill-market/
├── skills/ # PR-submitted skills (local)
│ ├── .example/ # Example skill template
│ │ └── SKILL.md
│ └── your-skill/ # Your skill here!
│ └── SKILL.md
├── crawler/
│ ├── index.js # Main entry point and orchestrator
│ ├── config.js # Configuration and constants
│ ├── worker-pool.js # Multi-token GitHub client pool
│ ├── rate-limit.js # Rate limit and timeout handling
│ ├── github-api.js # GitHub API interactions
│ ├── skill-parser.js # SKILL.md parsing and categorization
│ ├── local-scanner.js # Local skills directory scanner
│ ├── cache.js # Two-level caching (repo + skill directory)
│ ├── zip-generator.js # Skill zip package generator
│ ├── utils.js # Utility functions
│ └── repositories.yml # Priority repositories config
├── market/
│ ├── skills.json # Generated skills registry
│ ├── skills-*.json # Optional chunk files for progressive loading
│ └── zips/ # Generated skill zip packages
│ ├── web/ # Astro + Cloudflare website (independent project)
│ └── cli/ # npx installer CLI (independent project)
├── .github/
│ └── workflows/
│ └── crawl.yml # Scheduled GitHub Action
├── package.json
└── README.md
Crawler Modules
| Module | Description |
|---|---|
index.js | Main orchestrator: initializes worker pool, runs 3-phase crawl, deduplicates, and saves output |
config.js | Centralized configuration (search topics, paths, rate limits, timeouts) |
worker-pool.js | Manages multiple GitHub tokens and Octokit clients for parallel processing |
rate-limit.js | Handles GitHub API rate limits and execution timeouts |
github-api.js | All GitHub API calls (search, fetch content, get repo details) |
skill-parser.js | Parses SKILL.md frontmatter, validates quality, assigns categories |
local-scanner.js | Scans local skills/ directory for PR-submitted skills |
cache.js | Two-level caching: repo-level (skip unchanged repos) and skill-directory-level (skip unchanged skills) |
zip-generator.js | Generates individual skill zip packages for direct download |
utils.js | Helper functions (sleep, path checks, ID generation, etc.) |
Skills Registry Format
The registry uses a compact format to minimize file size. Shared repository info is extracted into a top-level repositories object, and derivable fields (displayName, author URL, avatar, downloadUrl, etc.) are omitted — clients reconstruct them at runtime.
When the total skill count exceeds the chunk size (default 2500), the output is split into multiple files by repository boundaries (e.g., skills.json + skills-1.json).
{
"meta": {
"generatedAt": "2026-02-09T14:00:00Z",
"totalSkills": 3477,
"localSkills": 0,
"prioritySkills": 13,
"remoteSkills": 3464,
"apiVersion": "1.1",
"rateLimited": false,
"timedOut": false,
"zipTimedOut": false,
"executionTimeMs": 180000,
"compact": true,
"chunks": ["skills-1.json"]
},
"repositories": {
"owner/repo": {
"url": "https://github.com/owner/repo",
"branch": "main",
"stars": 100,
"forks": 10,
"lastUpdated": "2026-02-01T00:00:00Z"
}
},
"skills": [
{
"id": "owner/repo/path-to-skill",
"name": "skill-name",
"description": "What this skill does...",
"categories": ["Development", "Design"],
"author": "owner",
"repo": "owner/repo",
"path": "skills/skill-name",
"commitHash": "a5343bd997c4",
"files": ["SKILL.md", "reference.md"],
"version": "1.0.0",
"tags": ["tag1", "tag2"],
"compatibility": { "minAgentVersion": "0.1.0" }
}
]
}
Compact Format Details
| Stored Field | Description |
|---|---|
id | Unique identifier: owner/repo/path |
name | Skill name (lowercase, hyphens) |
description | What the skill does |
categories | Auto-assigned category labels |
author | GitHub username (string, not object) |
repo | Reference to repositories map key |
path | Skill directory path within the repo |
commitHash | Skill directory's latest commit hash (12 chars) |
files | File paths relative to skill directory |
Optional fields (omitted when empty/default):
| Field | Included When |
|---|---|
version | Not "0.0.0" |
tags | Non-empty array |
compatibility | Present in frontmatter |
commitHash | Not empty and not "local" |
Automatic Categorization
Skills are automatically categorized based on keywords in their name and description. Available categories:
| Category | Keywords |
|---|---|
| Development | code, coding, programming, developer, ide, editor, debug, refactor... |
| AI & LLM | ai, llm, gpt, claude, openai, langchain, prompt, agent... |
| DevOps | docker, kubernetes, ci/cd, deploy, infrastructure, terraform... |
| Database | database, sql, postgres, mongodb, redis, query... |
| Web | web, frontend, backend, react, vue, html, css, api... |
| Mobile | mobile, ios, android, react-native, flutter, swift... |
| Documentation | docs, documentation, readme, markdown, writing... |
| Testing | test, testing, unit test, integration, jest, pytest... |
| Security | security, auth, encryption, vulnerability, oauth... |
| Data | data, analytics, visualization, pandas, etl, pipeline... |
// HOW IT'S BUILT
KEY FILES