Skip to content
Open app

Skill inventory

The skill inventory tracks agentskills.io skills discovered in your GitHub repositories and links them to Skillist registry identities when a match exists.

Submit discovered skills via the web UI or API:

POST /v1/orgs/{orgId}/inventory/scan

Each item describes where a skill was found in a repo:

FieldDescription
repoFullNameGitHub-style owner/repo, e.g. acme/web-app
filePathPath to SKILL.md in the repo
localSlugFolder or skill name in the repo when it differs from the registry repo
registryOrgSlugOptional explicit Skillist org override
registryRepoOptional explicit Skillist repo override
{
"items": [
{
"repoFullName": "skillist/cloudflare-deploy",
"filePath": ".cursor/skills/cloudflare-deploy/SKILL.md",
"localSlug": "cloudflare-deploy"
},
{
"repoFullName": "acme/web-app",
"filePath": ".claude/skills/review/SKILL.md",
"localSlug": "review",
"registryOrgSlug": "skillist",
"registryRepo": "sql-review"
}
]
}

When registryOrgSlug and registryRepo are omitted, Skillist resolves a delivery URL using this order:

  1. Explicit override — use registryOrgSlug + registryRepo if both are provided and the registry entry exists
  2. Exact match — registry entry where org = GitHub owner and repo = GitHub repo name
  3. Local slug — registry entry where org = owner and repo = localSlug (when the skill folder name differs from the GitHub repo name)
  4. Unpublished skill — fall back to a skill in the org’s private catalog with the same repo name

A resolved match is marked managed and linked to:

https://skillist.dev/{registryOrgSlug}/{registryRepo}

Items with no match remain local until published or explicitly mapped.

GET /v1/orgs/{orgId}/inventory

Returns scanned items with managed, registryOrgSlug, registryRepo, and scannedAt for each discovery.

Run a scan from CI after detecting skill folders in a monorepo:

Terminal window
export SKILLIST_API_KEY=sk_...
export GITHUB_REPOSITORY=$GITHUB_REPOSITORY # set automatically in GitHub Actions
skillist inventory scan --org my-org

Use --dry-run to print the payload without posting, or --json for machine-readable output.

GitHub org estate import (requires authenticated gh):

Terminal window
skillist inventory import --github-org my-github-org --org my-org --limit 100

The local scanner BFS-walks Cursor/Claude/Agents/Gemini/Codex/VS Code skill roots (plus Claude marketplaces), recording source type, conformance, content hash, and security status.

Promote an unmanaged inventory row into a private org skill:

POST /v1/orgs/{orgId}/inventory/{itemId}/promote

List current inventory:

Terminal window
skillist inventory list --org my-org

The web UI includes a Load example payload to test the flow manually.

  • Delivery URLs — canonical skillist.dev/{org}/{repo} paths
  • Registry — publish skills so inventory can resolve them
  • Authentication — sessions and API keys for inventory routes