{"_id":"skillflag","_rev":"5-754f2a2b44729e5a94278b8f7caa07ed","name":"skillflag","dist-tags":{"latest":"0.1.4"},"versions":{"0.1.0":{"name":"skillflag","version":"0.1.0","author":{"name":"Onur Solmaz","email":"info@solmaz.io"},"license":"MIT","_id":"skillflag@0.1.0","maintainers":[{"name":"osolmaz","email":"onur@solmaz.io"}],"homepage":"https://github.com/osolmaz/skillflag#readme","bugs":{"url":"https://github.com/osolmaz/skillflag/issues"},"bin":{"skillflag":"dist/bin/skillflag.js","skill-install":"dist/bin/skill-install.js"},"dist":{"shasum":"01e45c077e22f39614de99e7820ec1a413042a14","tarball":"https://registry.npmjs.org/skillflag/-/skillflag-0.1.0.tgz","fileCount":78,"integrity":"sha512-0z7/dwdxpO1TTmDkA9orTArR1RxZUoihnTAOpdxvgNG4MSMFCgF+p9cZwOIWMZf6CYh7otXLbxZP6M77ty71fw==","signatures":[{"sig":"MEQCIFSdAn2KT9BFTs+dBrGyQY+rsA+PapABAwigoNT+BEpSAiBBWe9aZcBZknS+vUQr+682a7UVE+wAwjdlwSeZHX+/uA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":98816},"type":"module","engines":{"node":">=18"},"gitHead":"c85fdbf709afaf9c5a60af38607d77acaf552930","scripts":{"lint":"eslint . --max-warnings 0","test":"npm run -s build:test && node --test dist-test/test/integration/*.test.js","build":"tsc -p tsconfig.json","format":"prettier --write . --ignore-unknown","prepack":"npm run build","prepare":"husky","release":"release-it","build:test":"tsc -p tsconfig.test.json","release:ci":"release-it --ci","format:check":"prettier --check . --ignore-unknown"},"_npmUser":{"name":"osolmaz","email":"onur@solmaz.io"},"repository":{"url":"git+https://github.com/osolmaz/skillflag.git","type":"git"},"_npmVersion":"11.3.0","description":"Skillflag producer CLI reference implementation.","directories":{},"lint-staged":{"*.{js,ts}":["prettier --write --ignore-unknown","eslint --fix"],"*.{json,md}":["prettier --write --ignore-unknown"]},"_nodeVersion":"24.1.0","dependencies":{"tar-stream":"^3.1.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","release-it":"^17.1.1","typescript":"^5.6.0","@types/node":"^18.19.0","lint-staged":"^15.5.2","@types/tar-stream":"^3.1.3","typescript-eslint":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/skillflag_0.1.0_1768140685791_0.44217859582563945","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"skillflag","version":"0.1.1","author":{"name":"Onur Solmaz","email":"info@solmaz.io"},"license":"MIT","_id":"skillflag@0.1.1","maintainers":[{"name":"osolmaz","email":"onur@solmaz.io"}],"homepage":"https://github.com/osolmaz/skillflag#readme","bugs":{"url":"https://github.com/osolmaz/skillflag/issues"},"bin":{"skillflag":"dist/bin/skillflag.js","skill-install":"dist/bin/skill-install.js"},"dist":{"shasum":"1962ebd12c5b3588d23dd081b2723f7fd177f4d9","tarball":"https://registry.npmjs.org/skillflag/-/skillflag-0.1.1.tgz","fileCount":79,"integrity":"sha512-5gG3VhO71bWbjiwUIXuYo/hOQvk3d/5nIcNK7EANX9346MvtkCLVAV5Zp2Pn+QrxQwGs5+e2giFR43sv6PXxEQ==","signatures":[{"sig":"MEYCIQDIp2RCz53ClnvuFX20XLZ74n8P27X422aTZEyRlki8KAIhALpWEyTyx7bzV74QZ7G5qjBPNdnagC6bfKl9sQS2DRaK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/skillflag@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":120984},"type":"module","engines":{"node":">=18"},"gitHead":"7ed761d187488df0c380ad07e33e7061eaa0d464","scripts":{"lint":"eslint . --max-warnings 0","test":"npm run -s build:test && node --test dist-test/test/integration/*.test.js","build":"tsc -p tsconfig.json","format":"prettier --write . --ignore-unknown","prepack":"npm run build","prepare":"husky","release":"release-it","build:test":"tsc -p tsconfig.test.json","release:ci":"release-it --ci","format:check":"prettier --check . --ignore-unknown"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c72f4638-2f0c-4c6f-a2c8-04f43e69648d"}},"repository":{"url":"git+https://github.com/osolmaz/skillflag.git","type":"git"},"_npmVersion":"11.6.2","description":"Skillflag producer CLI reference implementation.","directories":{},"lint-staged":{"*.{js,ts}":["prettier --write --ignore-unknown","eslint --fix"],"*.{json,md}":["prettier --write --ignore-unknown"]},"_nodeVersion":"24.12.0","dependencies":{"tar-stream":"^3.1.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","release-it":"^17.1.1","typescript":"^5.6.0","@types/node":"^18.19.0","lint-staged":"^15.5.2","@types/tar-stream":"^3.1.3","typescript-eslint":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/skillflag_0.1.1_1768156822784_0.7612694721243043","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"skillflag","version":"0.1.2","author":{"name":"Onur Solmaz","email":"info@solmaz.io"},"license":"MIT","_id":"skillflag@0.1.2","maintainers":[{"name":"osolmaz","email":"onur@solmaz.io"}],"homepage":"https://github.com/osolmaz/skillflag#readme","bugs":{"url":"https://github.com/osolmaz/skillflag/issues"},"bin":{"skillflag":"dist/bin/skillflag.js","skill-install":"dist/bin/skill-install.js"},"dist":{"shasum":"027d0270b2c966751dceb71f118d840adbc02dac","tarball":"https://registry.npmjs.org/skillflag/-/skillflag-0.1.2.tgz","fileCount":79,"integrity":"sha512-e6Xr3V3vkxN5KUaquM9VaF/askc9QsK/nv+PwRfFx/DtUNga8OnHtzjoQdj04V7xzxibHA+LpK0k7TF4TqbQLw==","signatures":[{"sig":"MEUCIQCwyvQrTSJtlya5HvWgFM0DPmOK5nCJDt6l8ZIRUxbArAIgT3yY8Ij6dTaIrsTlvv7j2ov3FJTx2KTAt+LEErtX8uI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/skillflag@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":121148},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"c813ed8082ba89ef051a7c0bc6ee194ba34e75e7","scripts":{"lint":"eslint . --max-warnings 0","test":"npm run -s build:test && node --test dist-test/test/integration/*.test.js","build":"tsc -p tsconfig.json","format":"prettier --write . --ignore-unknown","prepack":"npm run build","prepare":"husky","release":"release-it","build:test":"tsc -p tsconfig.test.json","release:ci":"release-it --ci","format:check":"prettier --check . --ignore-unknown"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c72f4638-2f0c-4c6f-a2c8-04f43e69648d"}},"repository":{"url":"git+https://github.com/osolmaz/skillflag.git","type":"git"},"_npmVersion":"11.8.0","description":"Skillflag producer CLI reference implementation.","directories":{},"lint-staged":{"*.{js,ts}":["prettier --write --ignore-unknown","eslint --fix"],"*.{json,md}":["prettier --write --ignore-unknown"]},"_nodeVersion":"24.13.1","dependencies":{"tar-stream":"^3.1.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","release-it":"^17.1.1","typescript":"^5.6.0","@types/node":"^18.19.0","lint-staged":"^15.5.2","@types/tar-stream":"^3.1.3","typescript-eslint":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/skillflag_0.1.2_1771437105900_0.36800122035904836","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"skillflag","version":"0.1.3","author":{"name":"Onur Solmaz","email":"info@solmaz.io"},"license":"MIT","_id":"skillflag@0.1.3","maintainers":[{"name":"osolmaz","email":"onur@solmaz.io"}],"homepage":"https://github.com/osolmaz/skillflag#readme","bugs":{"url":"https://github.com/osolmaz/skillflag/issues"},"bin":{"skillflag":"dist/bin/skillflag.js","skill-install":"dist/bin/skill-install.js"},"dist":{"shasum":"bb3044f3bf9422d088fcf9e203647c810794f72b","tarball":"https://registry.npmjs.org/skillflag/-/skillflag-0.1.3.tgz","fileCount":79,"integrity":"sha512-hMMFarrI8KhOUsSjtl7/8tvkI9du0lp1ZXyV+aL4/wzmpI0FxBFs0PkRNuu0MecX9LXXb8mYUMyiDhTLCuI7Cw==","signatures":[{"sig":"MEUCIQCTHlfmklkZZ25/8xPyLYAkZuMJBhjiE7wp318nRkihcAIgFA1J8FT4ruU6vQDfEDR6MbW3tO0UWNuLNp36ry2YL44=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/skillflag@0.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":121148},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"gitHead":"d7957b2a1afd502b1971039d8e498245d7255ab2","scripts":{"lint":"eslint . --max-warnings 0","test":"npm run -s build:test && node --test dist-test/test/integration/*.test.js","build":"tsc -p tsconfig.json","format":"prettier --write . --ignore-unknown","prepack":"npm run build","prepare":"husky","release":"release-it","build:test":"tsc -p tsconfig.test.json","release:ci":"release-it --ci","format:check":"prettier --check . --ignore-unknown"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c72f4638-2f0c-4c6f-a2c8-04f43e69648d"}},"repository":{"url":"git+https://github.com/osolmaz/skillflag.git","type":"git"},"_npmVersion":"11.8.0","description":"Skillflag producer CLI reference implementation.","directories":{},"lint-staged":{"*.{js,ts}":["prettier --write --ignore-unknown","eslint --fix"],"*.{json,md}":["prettier --write --ignore-unknown"]},"_nodeVersion":"24.13.1","dependencies":{"tar-stream":"^3.1.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","eslint":"^9.0.0","prettier":"^3.0.0","@eslint/js":"^9.0.0","release-it":"^17.1.1","typescript":"^5.6.0","@types/node":"^18.19.0","lint-staged":"^15.5.2","@types/tar-stream":"^3.1.3","typescript-eslint":"^8.0.0"},"_npmOperationalInternal":{"tmp":"tmp/skillflag_0.1.3_1771440181661_0.7558696407604408","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"skillflag","version":"0.1.4","description":"Skillflag producer CLI reference implementation.","license":"MIT","author":{"name":"Onur Solmaz","email":"info@solmaz.io"},"repository":{"type":"git","url":"git+https://github.com/osolmaz/skillflag.git"},"bugs":{"url":"https://github.com/osolmaz/skillflag/issues"},"homepage":"https://github.com/osolmaz/skillflag#readme","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"bin":{"skillflag":"dist/bin/skillflag.js","skill-install":"dist/bin/skill-install.js"},"scripts":{"build":"tsc -p tsconfig.json","build:test":"tsc -p tsconfig.test.json","format":"prettier --write . --ignore-unknown","format:check":"prettier --check . --ignore-unknown","lint":"eslint . --max-warnings 0","prepack":"npm run build","prepare":"husky","release":"release-it","release:ci":"release-it --ci","test":"npm run -s build:test && node --test dist-test/test/integration/*.test.js"},"engines":{"node":">=18"},"publishConfig":{"access":"public"},"dependencies":{"@clack/prompts":"^1.0.1","tar-stream":"^3.1.7"},"devDependencies":{"@eslint/js":"^9.0.0","@types/node":"^18.19.0","@types/tar-stream":"^3.1.3","eslint":"^9.0.0","husky":"^9.1.7","lint-staged":"^15.5.2","prettier":"^3.0.0","release-it":"^17.1.1","typescript":"^5.6.0","typescript-eslint":"^8.0.0"},"lint-staged":{"*.{js,ts}":["prettier --write --ignore-unknown","eslint --fix"],"*.{json,md}":["prettier --write --ignore-unknown"]},"gitHead":"c3da4f750938e6e268ee78bedb10a4e684b3d0ee","_id":"skillflag@0.1.4","_nodeVersion":"24.13.1","_npmVersion":"11.8.0","dist":{"integrity":"sha512-egFg+XCF5sloOWdtzxZivTX7n4UDj5pxQoY33wbT8h+YSDjMQJ76MZUg2rXQIBXmIDtlZhLgirS1g/3R5/qaHA==","shasum":"484eb6604eb0b18d0ffc9d6d1e6682af8c263ba5","tarball":"https://registry.npmjs.org/skillflag/-/skillflag-0.1.4.tgz","fileCount":91,"unpackedSize":177890,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/skillflag@0.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDrh6FbpvgbBTjc4pHyA3O6tiqutQmwlx/CZwkUkapISgIgGUYf28ZdYjn4BwaGn+UVBVfLgsKMoQDlxzqT7rX2Sg0="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c72f4638-2f0c-4c6f-a2c8-04f43e69648d"}},"directories":{},"maintainers":[{"name":"osolmaz","email":"onur@solmaz.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/skillflag_0.1.4_1771604554934_0.2705453628802874"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-11T14:11:25.638Z","modified":"2026-02-20T16:22:35.376Z","0.1.0":"2026-01-11T14:11:25.934Z","0.1.1":"2026-01-11T18:40:22.950Z","0.1.2":"2026-02-18T17:51:46.030Z","0.1.3":"2026-02-18T18:43:01.804Z","0.1.4":"2026-02-20T16:22:35.093Z"},"bugs":{"url":"https://github.com/osolmaz/skillflag/issues"},"author":{"name":"Onur Solmaz","email":"info@solmaz.io"},"license":"MIT","homepage":"https://github.com/osolmaz/skillflag#readme","repository":{"type":"git","url":"git+https://github.com/osolmaz/skillflag.git"},"description":"Skillflag producer CLI reference implementation.","maintainers":[{"name":"osolmaz","email":"onur@solmaz.io"}],"readme":"# skillflag\n\nskillflag is a minimal CLI convention for bundling, listing and installing [agent skills](https://agentskills.io), so that you don't have to upload them to separate 3rd party skill registries.\n\nSpec: [Skillflag Specification](docs/SKILLFLAG_SPEC.md)\n\n## Motivation\n\nThink of skillflag as \"`--help` or `manpage` for skills\": a stable flag-based interface to list and export bundled skills without having to upload it to a third party registry. Any relevant agent instructions live right inside your repo and get published together alongside your tool.\n\n[Agent skills](https://agentskills.io) are self-contained capability packages: a folder with a `SKILL.md` (name, description, instructions) plus any scripts, templates, and references the agent needs to execute a specific workflow.\n\nWith skillflag, CLI tools can bundle and list these skills without having to upload it to a skill registry. With `--skill list|show|export`, any agent can discover and install instructions that are required to use the tool.\n\n## Example\n\nSuppose that you have installed a CLI tool to control Philips Hue lights at home, `hue-cli`.\n\nTo list the skills that the tool can export, you can run:\n\n```\n$ hue-cli --skill list\nphilips-hue Control Philips Hue lights in the terminal\n```\n\nYou can then install it to your preferred coding agent, such as Claude Code:\n\n```\n$ hue-cli --skill export philips-hue | npx skillflag install --agent claude\nInstalled skill philips-hue to .claude/skills/philips-hue\n```\n\nYou can optionally install the skill to `~/.claude`, to make it global across repos:\n\n```\n$ hue-cli --skill export philips-hue | npx skillflag install --agent claude --scope user\nInstalled skill philips-hue to ~/.claude/skills/philips-hue\n```\n\nEven better, once this convention becomes commonplace, agents will by default do all these before they even run the tool, so when you ask it to \"install hue-cli\", it will know to run `--skill list` the same way a human would run `--help` after downloading a program, and install the necessary skills themselves without being asked to.\n\n## Quick setup — add skillflag to your CLI\n\nCopy the prompt below and paste it into your coding agent. It will add skillflag support to your project.\n\nCurrently TypeScript/Node only. [Open an issue](https://github.com/osolmaz/skillflag/issues) if you'd like support for another language.\n\n```text\nAdd skillflag to this project so the CLI can bundle and expose agent skills.\n\n1. Install the skillflag library:\n npm install skillflag\n\n2. Create a skill directory at skills//SKILL.md with a YAML\n frontmatter (name, description) and markdown instructions for the agent.\n\n3. In the CLI entrypoint, intercept --skill and delegate to skillflag:\n\n import { findSkillsRoot, maybeHandleSkillflag } from \"skillflag\";\n\n await maybeHandleSkillflag(process.argv, {\n skillsRoot: findSkillsRoot(import.meta.url),\n });\n\n4. Verify it works:\n --skill list\n --skill show \n --skill export | npx skillflag install\n\n5. For the full integration guide:\n https://raw.githubusercontent.com/osolmaz/skillflag/main/docs/INTEGRATION.md\n\n6. For the skillflag specification:\n https://raw.githubusercontent.com/osolmaz/skillflag/main/docs/SKILLFLAG_SPEC.md\n```\n\n## Install (optional)\n\n```bash\nnpm install -g skillflag\n```\n\nYou can also run it without installing by using `npx` (see below).\n\nskillflag is currently implemented in Node/TypeScript. Reach out if you'd like to see it implemented in other languages.\n\n## Quick start\n\nAny CLI that implements the skillflag convention can be used like this:\n\n```bash\n# list skills the tool can export\n --skill list\n# show a single skill's metadata\n --skill show \n# install into Codex user skills\n --skill export | npx skillflag install --agent codex\n# install into Claude project skills\n --skill export | npx skillflag install --agent claude --scope repo\n```\n\n### Interactive mode\n\nWhen `--agent` or `--scope` is omitted and a TTY is available, `skill-install` launches an interactive wizard:\n\n```bash\n# pipe a skill and let the wizard guide you\n --skill export | npx skillflag install\n```\n\nThe wizard lets you pick agents and scopes with arrow keys and space to select, then confirms before installing. This works even when stdin is piped.\n\n### Multi-target install\n\n`--agent` and `--scope` flags accept a single value each.\nTo install to multiple agents/scopes in one run, use the interactive wizard:\n\n```bash\n --skill export | npx skillflag install\n```\n\nIn the wizard, select multiple entries with space, then confirm the matrix install.\n\n## Add skillflag to your CLI\n\n1. Add the library and ship your skill directory in the package.\n2. Add a `skills//SKILL.md` in your repo.\n3. In your CLI entrypoint, intercept `--skill` and delegate to skillflag.\n\n```bash\nnpm install skillflag\n```\n\n```ts\nimport { findSkillsRoot, maybeHandleSkillflag } from \"skillflag\";\n\nawait maybeHandleSkillflag(process.argv, {\n skillsRoot: findSkillsRoot(import.meta.url),\n});\n```\n\nSee the full guide in [docs/INTEGRATION.md](docs/INTEGRATION.md).\n\n## Supported agents\n\ncodex, claude, portable, vscode, copilot, amp, goose, opencode, factory, cursor\n\n## Supported scopes\n\n| Scope | Description |\n| ------ | ------------------------------------------------------------- |\n| `repo` | Install into the current repository (e.g. `.codex/skills/`) |\n| `user` | Install into the user's home config (e.g. `~/.codex/skills/`) |\n| `cwd` | Install relative to the current working directory |\n\n## Help\n\n```bash\nskill-install --help\n```\n\n## Bundled skill\n\nThis repo ships a single bundled skill at `skills/skillflag/` that documents both `skillflag` and `skill-install`.\n","readmeFilename":"README.md"}