{"id":50916148,"url":"https://github.com/jnmetacode/skillet","last_synced_at":"2026-06-16T15:02:27.030Z","repository":{"id":363795104,"uuid":"1264530092","full_name":"jnMetaCode/skillet","owner":"jnMetaCode","description":"skillet — a package manager for AI agent skills (SKILL.md). Find, install, version \u0026 share skills from a Git-backed registry. Zero infra, MCP-native, reproducible.","archived":false,"fork":false,"pushed_at":"2026-06-10T12:04:10.000Z","size":52,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-10T12:15:07.816Z","etag":null,"topics":["agent-skills","agents","ai","claude","cli","llm","local-first","mcp","package-manager","registry","skill"],"latest_commit_sha":null,"homepage":"https://github.com/jnMetaCode/local-agent-toolkit","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jnMetaCode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-10T00:59:45.000Z","updated_at":"2026-06-10T12:04:48.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jnMetaCode/skillet","commit_stats":null,"previous_names":["jnmetacode/skillet"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/jnMetaCode/skillet","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jnMetaCode%2Fskillet","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jnMetaCode%2Fskillet/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jnMetaCode%2Fskillet/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jnMetaCode%2Fskillet/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jnMetaCode","download_url":"https://codeload.github.com/jnMetaCode/skillet/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jnMetaCode%2Fskillet/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34410784,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-16T02:00:06.860Z","response_time":126,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent-skills","agents","ai","claude","cli","llm","local-first","mcp","package-manager","registry","skill"],"created_at":"2026-06-16T15:02:25.741Z","updated_at":"2026-06-16T15:02:27.019Z","avatar_url":"https://github.com/jnMetaCode.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# 🍳 skillet\n\n### A package manager for AI agent skills\n\n**Find, install, version and share `SKILL.md` skills — from a Git-backed registry.**\nNo server, no account, no lock-in. Just `npx @jnmetacode/skillet add \u003cskill\u003e`.\n\n```bash\nnpx @jnmetacode/skillet add pdf\n```\n\nEnglish | [简体中文](https://github.com/jnMetaCode/skillet/blob/main/README.zh-CN.md)\n\n![skillet demo — search, install (SHA-pinned), scaffold and validate](https://raw.githubusercontent.com/jnMetaCode/skillet/main/docs/demo.gif)\n\n\u003c/div\u003e\n\n---\n\nAgent **Skills** are taking over — a `SKILL.md` folder that teaches an agent a new\ncapability (read PDFs, build slide decks, scrape the web…). But sharing them is a\nmess: you copy-paste from random repos, pin nothing, and have no way to discover\nwhat exists.\n\n**skillet** is `npm`/`brew` for skills. One command to install a skill into your\nproject, a lockfile so it's reproducible, and a registry that's just a JSON file\nin a Git repo — so there's nothing to host and anyone can contribute with a PR.\n\n```bash\nnpx @jnmetacode/skillet search pdf            # discover\nnpx @jnmetacode/skillet add pdf               # install into .claude/skills/\nnpx @jnmetacode/skillet list                  # see what's installed\nnpx @jnmetacode/skillet new my-skill          # scaffold your own\n```\n\n## Why skillet\n\n- **Skills are files, not dependencies.** Like [shadcn/ui](https://ui.shadcn.com),\n  skillet *copies the skill into your repo* (`.claude/skills/\u003cname\u003e/`) where you\n  can read and tweak it — not into an opaque `node_modules`.\n- **Reproducible.** Every install records the exact commit SHA in\n  `skillet.lock.json`. Commit it, and your whole team gets byte-identical skills\n  with `skillet install` (the `npm ci` of skills). Pin a single install with\n  `add owner/repo#\u003csha\u003e`; `skillet update` re-resolves a branch/tag to its latest.\n- **Zero infrastructure.** The registry is a JSON index in a Git repo, served\n  over raw GitHub. No backend, no database, no API keys. Adding a skill is a PR.\n- **Install from anywhere.** A registry name, any `owner/repo[/path][#ref]`, or a\n  local folder.\n- **Zero dependencies.** Pure Node built-ins + your system `git`. The whole CLI\n  is a few hundred readable lines.\n\n## Install targets\n\n```bash\nnpx @jnmetacode/skillet add pdf                              # from the registry\nnpx @jnmetacode/skillet add anthropics/skills/skills/pptx    # any GitHub repo + subpath\nnpx @jnmetacode/skillet add owner/repo#v2.1.0                # a tag/branch\nnpx @jnmetacode/skillet add owner/repo#\u003ccommit-sha\u003e          # pin to an exact commit\nnpx @jnmetacode/skillet add ./skills/my-local-skill          # a local folder\n```\n\nSkills install into `.claude/skills/` by default (the common 2026 convention).\nChange it per-project with `skillet init` or `--dir`.\n\n## Use it from Claude (MCP)\n\nskillet speaks the [Model Context Protocol](https://modelcontextprotocol.io), so\nClaude Desktop / Claude Code can search and install skills for you — \"find a PDF\nskill and install it\" just works. Add to `claude_desktop_config.json` (or a\nproject `.mcp.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"skillet\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@jnmetacode/skillet\", \"mcp\"]\n    }\n  }\n}\n```\n\n\nWorks in **any MCP client** — same JSON, different config file:\n\n| Client | Where the config lives |\n| --- | --- |\n| Claude Desktop | `claude_desktop_config.json` |\n| Claude Code | project `.mcp.json` (or the plugin: `/plugin marketplace add jnMetaCode/local-agent-toolkit`) |\n| Cursor | `.cursor/mcp.json` (project) or `~/.cursor/mcp.json` |\n| Windsurf | `~/.codeium/windsurf/mcp_config.json` |\n| Cline | `cline_mcp_settings.json` |\n| Zed | `settings.json` → `context_servers` |\n\n(Check your client's MCP docs for the exact key names — the `command`/`args` pair above is the same everywhere.)\n\nTools exposed: `skillet_search`, `skillet_install` (registry-only, name-validated),\n`skillet_list`. Zero dependencies — a few hundred lines of JSON-RPC over stdio.\n\n## Browse the registry\n\n```bash\nnpx @jnmetacode/skillet gallery        # builds a static, searchable HTML gallery → site/\n```\n\n`skillet gallery` renders [`registry/index.json`](registry/index.json) into a\nsingle self-contained page (search, copy-to-install, links) — zero backend. The\nincluded GitHub Pages workflow rebuilds and publishes it automatically whenever\nthe registry changes, so the registry has a shareable home.\n\n## Authoring a skill\n\n```bash\nnpx @jnmetacode/skillet new web-scraper      # creates web-scraper/SKILL.md from a template\n# edit it…\nnpx @jnmetacode/skillet validate ./web-scraper\n```\n\nA skill is just a folder with a `SKILL.md`:\n\n```markdown\n---\nname: web-scraper\ndescription: Scrape pages and extract structured data; use when the user wants web content.\nversion: 0.1.0\nlicense: MIT\nkeywords: [scrape, http]\n---\n\n# web-scraper\nInstructions the agent reads… plus any supporting scripts in the same folder.\n```\n\nPush it to GitHub, then open a PR adding one entry to\n[`registry/index.json`](registry/index.json) — see [docs/SPEC.md](docs/SPEC.md).\n\n## Commands\n\n| | |\n| --- | --- |\n| `skillet search [query]` | search the registry |\n| `skillet add \u003cref\u003e` | install a skill (registry name / `owner/repo[/path][#ref]` / `./local`) |\n| `skillet install` | install all locked skills at their pinned commits (`npm ci`-style) |\n| `skillet list` | list installed skills |\n| `skillet remove \u003cname\u003e` | uninstall |\n| `skillet update [name]` | re-install tracked skill(s) at the latest ref |\n| `skillet new \u003cname\u003e` | scaffold a new skill |\n| `skillet validate [path]` | validate a `SKILL.md` |\n| `skillet gallery` | build a static, searchable registry gallery |\n| `skillet mcp` | run as an MCP server (stdio) for Claude/agents |\n| `skillet init` | write `skillet.json` config |\n\nFlags: `--force`, `--dir \u003cpath\u003e`, `--registry \u003curl|path\u003e`, `--json`.\n\n## How it works\n\n```\n  skillet add pdf\n        │  resolve name in registry index (raw GitHub JSON)\n        ▼\n  git clone --depth 1 anthropics/skills      ← your system git, partial clone\n        │  copy skills/pdf/ → .claude/skills/pdf/\n        ▼\n  pin commit SHA in skillet.lock.json\n```\n\nThe \"registry\" is [one JSON file](registry/index.json). That's the whole backend.\n\n## Compatibility\n\nWorks with anything that reads `SKILL.md` skill folders (Claude Code / Claude\nAgent Skills and compatible runtimes). skillet is just discovery + install +\nversioning around the open `SKILL.md` format — it doesn't lock you to a runtime.\n\n## Status\n\nEarly MVP — discovery, install (registry / GitHub / local), lockfile pinning,\nauthoring and validation all work today. Star/watch to follow along; PRs and new\nregistry entries are the most useful contribution right now.\n\n## Sibling projects\n\nPart of a small, local-first, zero-dependency toolkit for building AI agents — see the [toolkit overview \u0026 end-to-end recipe](https://github.com/jnMetaCode/local-agent-toolkit):\n\n- 🍳 **skillet** — a package manager for agent skills *(this repo)*\n- 🔭 **[tracelet](https://github.com/jnMetaCode/tracelet)** — local DevTools to debug agent runs\n- 🧠 **[engram](https://github.com/jnMetaCode/engram)** — a local, private memory layer for agents (and you)\n\n## License\n\nMIT — see [LICENSE](LICENSE). (Skills installed *through* skillet keep their own\nlicenses.)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjnmetacode%2Fskillet","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjnmetacode%2Fskillet","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjnmetacode%2Fskillet/lists"}