{"_id":"@chenziyang110/jx-skillhub","_rev":"3-1b11e5655024544465a95061df0ce8ed","name":"@chenziyang110/jx-skillhub","dist-tags":{"latest":"0.4.2"},"versions":{"0.4.0":{"name":"@chenziyang110/jx-skillhub","version":"0.4.0","keywords":["jx-skillhub","ai","coding-agent","skills","cli"],"author":{"name":"iFLYTEK"},"license":"Apache-2.0","_id":"@chenziyang110/jx-skillhub@0.4.0","maintainers":[{"name":"chenziyang110","email":"1103465229@qq.com"}],"homepage":"https://github.com/chenziyang110/jx-skillhub#readme","bugs":{"url":"https://github.com/chenziyang110/jx-skillhub/issues"},"bin":{"jx-skillhub":"dist/index.js"},"dist":{"shasum":"35e702d13725fca0e1f3dbd3f8bd8122e2ee1e85","tarball":"https://registry.npmjs.org/@chenziyang110/jx-skillhub/-/jx-skillhub-0.4.0.tgz","fileCount":6,"integrity":"sha512-nThK7gwZwRQeuH+aZqtJ2AtGesv3KrCLjUTM327cDiF4yACF2KQy87+nckPEd60i/5ef9Cj0d+LfzKQYa43WCw==","signatures":[{"sig":"MEYCIQDduDrxd7wWeuDsH/aQC3l0BalctMmGS4tZDdITpvHUFgIhAI/Z7TOIubDYniumcljZYn1bDH7Xs1yScITHklxhyu4p","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1470461},"type":"module","engines":{"node":">=22.20.0"},"gitHead":"781a6211aae6670fc4ee3dc73e3941fbb28c22a6","scripts":{"lint":"eslint src test --ext .ts","test":"bun test","build":"bun build src/index.ts --target=node --outfile=dist/index.js","prelint":"bun run scripts/generate-pkg-info.ts","prepack":"bun run build","pretest":"bun run scripts/generate-pkg-info.ts","prebuild":"bun run scripts/generate-pkg-info.ts","typecheck":"tsc --noEmit","pretypecheck":"bun run scripts/generate-pkg-info.ts","prepublishOnly":"bun run lint && bun run typecheck && bun test"},"_npmUser":{"name":"chenziyang110","email":"1103465229@qq.com"},"repository":{"url":"git+https://github.com/chenziyang110/jx-skillhub.git","type":"git","directory":"cli"},"_npmVersion":"11.9.0","description":"Manage and install skills for AI coding agents","directories":{},"_nodeVersion":"24.14.0","dependencies":{"cac":"^6.7.14","zod":"^3.25.76","yaml":"^2.9.0","fflate":"^0.8.3","semver":"^7.8.5","prompts":"^2.4.2","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","proper-lockfile":"^4.1.2","write-file-atomic":"^7.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"eslint":"^10.8.0","node-pty":"^1.1.0","@eslint/js":"^10.0.1","@types/bun":"^1.3.14","typescript":"^5.9.3","@types/semver":"^7.7.1","@types/prompts":"^2.4.9","typescript-eslint":"^8.65.0","@types/proper-lockfile":"^4.1.4","@types/write-file-atomic":"^4.0.3"},"_npmOperationalInternal":{"tmp":"tmp/jx-skillhub_0.4.0_1787815257346_0.5386565729422419","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@chenziyang110/jx-skillhub","version":"0.4.1","keywords":["jx-skillhub","ai","coding-agent","skills","cli"],"author":{"name":"iFLYTEK"},"license":"Apache-2.0","_id":"@chenziyang110/jx-skillhub@0.4.1","maintainers":[{"name":"chenziyang110","email":"1103465229@qq.com"}],"homepage":"https://github.com/chenziyang110/jx-skillhub#readme","bugs":{"url":"https://github.com/chenziyang110/jx-skillhub/issues"},"bin":{"jx-skillhub":"dist/index.js"},"dist":{"shasum":"9c693fea9a08b59c35029f0c5bddb4d43dc33133","tarball":"https://registry.npmjs.org/@chenziyang110/jx-skillhub/-/jx-skillhub-0.4.1.tgz","fileCount":6,"integrity":"sha512-n1UZrEFuEiXeDbK+pJrmchdJK7qazNAut+bSVGhABIToiq2mozzSEx0oMeAQFmRdSYiSf5DWjm2NMoVOgJXocA==","signatures":[{"sig":"MEUCIBB26TEZC4xe59naEvzFF3+aUuVw8uKP8ek/0ZoCc8bkAiEA6ZYDHvNCgJTAn65r3Ma2fLkARM+3BKUaWyilpo2JDJk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1503966},"type":"module","_from":"file:F:/github/jx-skillhub2/.dev/qa-20260831/cli-token-policy-worktree/.dev/cli-releases/0.4.1/artifacts-4fe233d4-194d-4906-9bed-30a81deff01f/chenziyang110-jx-skillhub-0.4.1.tgz","engines":{"node":">=22.20.0"},"scripts":{"lint":"eslint src test --ext .ts","test":"bun test","build":"bun build src/index.ts --target=node --outfile=dist/index.js","prelint":"bun run scripts/generate-pkg-info.ts","prepack":"bun run build","pretest":"bun run scripts/generate-pkg-info.ts","prebuild":"bun run scripts/generate-pkg-info.ts","typecheck":"tsc --noEmit","pretypecheck":"bun run scripts/generate-pkg-info.ts","prepublishOnly":"bun run lint && bun run typecheck && bun test"},"_npmUser":{"name":"chenziyang110","email":"1103465229@qq.com"},"_resolved":"F:\\github\\jx-skillhub2\\.dev\\qa-20260831\\cli-token-policy-worktree\\.dev\\cli-releases\\0.4.1\\artifacts-4fe233d4-194d-4906-9bed-30a81deff01f\\chenziyang110-jx-skillhub-0.4.1.tgz","_integrity":"sha512-n1UZrEFuEiXeDbK+pJrmchdJK7qazNAut+bSVGhABIToiq2mozzSEx0oMeAQFmRdSYiSf5DWjm2NMoVOgJXocA==","repository":{"url":"git+https://github.com/chenziyang110/jx-skillhub.git","type":"git","directory":"cli"},"_npmVersion":"11.9.0","description":"Manage and install skills for AI coding agents","directories":{},"_nodeVersion":"24.14.0","dependencies":{"cac":"^6.7.14","zod":"^3.25.76","yaml":"^2.9.0","fflate":"^0.8.3","semver":"^7.8.5","prompts":"^2.4.2","picocolors":"^1.1.1","@clack/prompts":"^1.7.0","proper-lockfile":"^4.1.2","write-file-atomic":"^7.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"eslint":"^10.8.0","node-pty":"^1.1.0","@eslint/js":"^10.0.1","@types/bun":"^1.3.14","typescript":"^5.9.3","@types/semver":"^7.7.1","@types/prompts":"^2.4.9","typescript-eslint":"^8.65.0","@types/proper-lockfile":"^4.1.4","@types/write-file-atomic":"^4.0.3"},"_npmOperationalInternal":{"tmp":"tmp/jx-skillhub_0.4.1_1788405071764_0.45011052952442276","host":"s3://npm-registry-packages-npm-production"}},"0.4.2":{"name":"@chenziyang110/jx-skillhub","version":"0.4.2","description":"Manage and install skills for AI coding agents","keywords":["jx-skillhub","ai","coding-agent","skills","cli"],"homepage":"https://github.com/chenziyang110/jx-skillhub#readme","bugs":{"url":"https://github.com/chenziyang110/jx-skillhub/issues"},"repository":{"type":"git","url":"git+https://github.com/chenziyang110/jx-skillhub.git","directory":"cli"},"license":"Apache-2.0","author":{"name":"iFLYTEK"},"type":"module","packageManager":"bun@1.3.13","bin":{"jx-skillhub":"dist/index.js"},"scripts":{"prebuild":"bun run scripts/generate-pkg-info.ts","build":"bun build src/index.ts --target=node --outfile=dist/index.js","pretest":"bun run scripts/generate-pkg-info.ts","test":"bun test","pretypecheck":"bun run scripts/generate-pkg-info.ts","typecheck":"tsc --noEmit","prelint":"bun run scripts/generate-pkg-info.ts","lint":"eslint src test --ext .ts","prepack":"bun run build","prepublishOnly":"bun run lint && bun run typecheck && bun test"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"dependencies":{"@clack/prompts":"^1.7.0","cac":"^6.7.14","fflate":"^0.8.3","picocolors":"^1.1.1","prompts":"^2.4.2","proper-lockfile":"^4.1.2","semver":"^7.8.5","write-file-atomic":"^7.0.1","yaml":"^2.9.0","zod":"^3.25.76"},"devDependencies":{"@eslint/js":"^10.0.1","@types/bun":"^1.3.14","@types/prompts":"^2.4.9","@types/proper-lockfile":"^4.1.4","@types/semver":"^7.7.1","@types/write-file-atomic":"^4.0.3","eslint":"^10.8.0","node-pty":"^1.1.0","typescript":"^5.9.3","typescript-eslint":"^8.65.0"},"engines":{"node":">=22.20.0"},"_id":"@chenziyang110/jx-skillhub@0.4.2","_integrity":"sha512-ZwEMO6EnSneivOlja+Na7G+58vWK9UhPmvi1Ef14lA6ImvcpT36qnugtkO0+2OhHQR84f/vjyVO/H6gvRJYQsA==","_resolved":"F:\\github\\jx-skillhub2\\.dev\\qa-20260831\\cli-0.4.2-release-worktree\\.dev\\cli-releases\\0.4.2\\artifacts-9d61a08e04c04c0483d1e9a1491edabf\\chenziyang110-jx-skillhub-0.4.2.tgz","_from":"file:F:/github/jx-skillhub2/.dev/qa-20260831/cli-0.4.2-release-worktree/.dev/cli-releases/0.4.2/artifacts-9d61a08e04c04c0483d1e9a1491edabf/chenziyang110-jx-skillhub-0.4.2.tgz","_nodeVersion":"24.14.0","_npmVersion":"11.9.0","dist":{"integrity":"sha512-ZwEMO6EnSneivOlja+Na7G+58vWK9UhPmvi1Ef14lA6ImvcpT36qnugtkO0+2OhHQR84f/vjyVO/H6gvRJYQsA==","shasum":"d4089193c75c4bff8078792b315f1ab3923659ff","tarball":"https://registry.npmjs.org/@chenziyang110/jx-skillhub/-/jx-skillhub-0.4.2.tgz","fileCount":6,"unpackedSize":1504747,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAIV91+3/+LvbzXybedNR85gqxhtbsJ5F85fHgtBHpXTAiBIZCob0USyoOA157A43K7uo5zr/g5Ws55SCKVvWuHS7w=="}]},"_npmUser":{"name":"chenziyang110","email":"1103465229@qq.com"},"directories":{},"maintainers":[{"name":"chenziyang110","email":"1103465229@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/jx-skillhub_0.4.2_1788407604030_0.6972402225233494"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-27T07:20:57.170Z","modified":"2026-09-03T03:53:24.358Z","0.4.0":"2026-08-27T07:20:57.583Z","0.4.1":"2026-09-03T03:11:11.923Z","0.4.2":"2026-09-03T03:53:24.200Z"},"bugs":{"url":"https://github.com/chenziyang110/jx-skillhub/issues"},"author":{"name":"iFLYTEK"},"license":"Apache-2.0","homepage":"https://github.com/chenziyang110/jx-skillhub#readme","keywords":["jx-skillhub","ai","coding-agent","skills","cli"],"repository":{"type":"git","url":"git+https://github.com/chenziyang110/jx-skillhub.git","directory":"cli"},"description":"Manage and install skills for AI coding agents","maintainers":[{"name":"chenziyang110","email":"1103465229@qq.com"}],"readme":"# JX SkillHub CLI\r\n\r\nJX SkillHub CLI is the first-party command-line tool for JX SkillHub. It searches, installs, tracks, updates, verifies, restores, syncs, and publishes Agent Skill packages through the single binary `jx-skillhub`.\r\n\r\nJX SkillHub is JX-only branding. It is not affiliated with, endorsed by, or sponsored by Vercel, Inc. The CLI does not collect or send telemetry.\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install -g @chenziyang110/jx-skillhub\r\nnpx @chenziyang110/jx-skillhub --version\r\nbun add -g @chenziyang110/jx-skillhub\r\n```\r\n\r\n## Quick Start\r\n\r\n```bash\r\njx-skillhub login --token <token>\r\nnpx @chenziyang110/jx-skillhub find parser\r\nnpx @chenziyang110/jx-skillhub add vercel-labs/agent-skills\r\nnpx @chenziyang110/jx-skillhub add @global/example --agent codex\r\njx-skillhub list\r\njx-skillhub check @global/example\r\njx-skillhub update @global/example --allow-unverified\r\njx-skillhub publish ./my-skill --namespace my-team\r\n```\r\n\r\n## Registry and Authentication\r\n\r\nThe active registry is resolved in this order:\r\n\r\n1. `--registry <url>`\r\n2. `JX_SKILLHUB_REGISTRY`\r\n3. `registry` in `~/.jx-skillhub/config.json`\r\n4. `https://skill.xfyun.cn`\r\n\r\nTokens are resolved in this order:\r\n\r\n1. `--token <token>`\r\n2. `JX_SKILLHUB_TOKEN`\r\n3. `~/.jx-skillhub/credentials.json`\r\n\r\n```bash\r\njx-skillhub login --registry https://jx-skillhub.example.com --token <token>\r\njx-skillhub whoami --json\r\njx-skillhub logout\r\n```\r\n\r\nJX authentication and publishing are JX SkillHub features. External sources such as local paths and `gh:` sources remain CLI-local until a command explicitly talks to a configured JX registry.\r\n\r\n## Command Surface\r\n\r\nRoot help and version:\r\n\r\n```bash\r\njx-skillhub help\r\njx-skillhub help add\r\njx-skillhub version\r\njx-skillhub --version\r\njx-skillhub -v\r\n```\r\n\r\n| Command | Aliases | Purpose |\r\n|---|---|---|\r\n| `help [command] [--json]` | none | Show available commands |\r\n| `version` | root `--version`, root `-v` | Show installed CLI version |\r\n| `add [source]` | `install`, `a`, `i` | Discover and install Skills |\r\n| `find [query...]` | `search`, `f`, `s` | List matching Skills; empty TTY input opens live search |\r\n| `list` | `ls` | List tracked and untracked Skills |\r\n| `remove [selectors...]` | `rm`, `r` | Remove tracked Skills or one authorized remote Skill |\r\n| `check [selector]` | none | Inspect lifecycle state without writing |\r\n| `update [selectors...]` | `upgrade` | Update selected or all installed Skills |\r\n| `self-update` | none | Update the JX SkillHub CLI package |\r\n| `use [source]` | none | Use a Skill temporarily without installing it |\r\n| `init [name]` | none | Create a contained Skill scaffold |\r\n| `restore [lock-path]` | `experimental_install` | Restore tracked Skills from a lock |\r\n| `sync [container]` | `experimental_sync` | Sync supported local dependency containers |\r\n| `login` | none | Save registry credentials |\r\n| `logout` | none | Remove registry credentials |\r\n| `whoami` | none | Verify current registry credentials |\r\n| `doctor` | none | Diagnose lifecycle state and optionally repair proven ownership |\r\n| `publish <path>` | none | Publish a local Skill package to JX SkillHub |\r\n\r\n## Add Skills\r\n\r\n```bash\r\njx-skillhub add\r\njx-skillhub add owner/repo\r\njx-skillhub add owner/repo@skill-name\r\njx-skillhub add @global/example\r\njx-skillhub add ./skills --skill @global/example --agent codex\r\njx-skillhub install owner/repo --allow-unverified --global --copy\r\njx-skillhub add owner/repo --list --allow-unverified\r\n```\r\n\r\nUsage:\r\n\r\n```bash\r\njx-skillhub add [source] [-s|--skill <selector...>] [-a|--agent <id...>] [-g|--global] [--copy] [--all] [--full-depth] [-l|--list] [-y|--yes] [--allow-unverified]\r\n```\r\n\r\n`source` can be omitted for discovery, use `owner/repo` (or `owner/repo@skill`) for GitHub, use an explicit JX coordinate such as `@global/example` or `jx:global/example`, point at a local path, or use a prefixed/full Git URL. External source handling remains local to the CLI unless registry options are used.\r\n\r\n## Find Skills\r\n\r\n```bash\r\njx-skillhub find\r\njx-skillhub search pdf\r\njx-skillhub find agent --owner vercel-labs\r\njx-skillhub find parser --source gh:owner/repo\r\n```\r\n\r\nUsage:\r\n\r\n```bash\r\njx-skillhub find [query...] [--owner <owner>] [--source <source>] [--limit <n>] [--registry <url>] [--token <token>] [--json]\r\n```\r\n\r\nWith a query, `find` only lists results. With no query in a TTY, it opens live, debounced registry search; selecting a result delegates to the transactional installer used by `add`.\r\n\r\n## Local Lifecycle\r\n\r\n```bash\r\njx-skillhub list -g --json\r\njx-skillhub list -a codex cursor\r\njx-skillhub check @global/example\r\njx-skillhub remove @global/example --agent codex --yes\r\njx-skillhub update @global/example --allow-unverified\r\njx-skillhub upgrade --all --allow-unverified --yes\r\n```\r\n\r\n`update` accepts multiple selectors. With no selector it updates all, prompting for Project, Global, or Both in a TTY; non-interactive execution prefers project installs when present and otherwise global installs.\r\n\r\n`update` and `upgrade` update installed Skills. They do not update the CLI package.\r\n\r\nUse `self-update` for CLI package updates:\r\n\r\n```bash\r\njx-skillhub self-update --check\r\njx-skillhub self-update\r\n```\r\n\r\n## Temporary Use, Restore, and Sync\r\n\r\n```bash\r\njx-skillhub use gh:owner/repo --skill @global/example\r\njx-skillhub use ./skill --agent codex --allow-unverified\r\njx-skillhub use owner/repo -s skill-name -a codex --full-depth\r\njx-skillhub restore\r\njx-skillhub experimental_install skills-lock.json --allow-unverified\r\njx-skillhub sync\r\njx-skillhub experimental_sync node_modules --skill @global/example\r\n```\r\n\r\n`restore` restores tracked Skills from a lock. `sync` syncs supported local dependency containers. The experimental aliases are preserved for compatibility.\r\n\r\n`--dangerously-accept-openclaw-risks` is narrowly scoped to normalized GitHub sources whose owner is exactly `openclaw`. Use the separate `--allow-unverified` flag for explicit generic-source authorization.\r\n\r\n## Intentional Compatibility Deviations\r\n\r\n- No telemetry is collected, so the upstream telemetry-only `--metadata` flag is not implemented.\r\n- The Eve-specific `--subagent` persistent target model is not implemented; JX installs only into its governed Agent target catalog.\r\n- `remove --all` remains subject to JX ownership proof, exact-identity selection, confirmation, and transaction safeguards. It is not an unchecked bulk-delete escape hatch.\r\n\r\n## Init and Publish\r\n\r\n```bash\r\njx-skillhub init my-skill\r\njx-skillhub init --dir ./existing-skill\r\njx-skillhub publish ./my-skill --namespace my-team\r\njx-skillhub publish ./my-skill --namespace my-team --visibility private --dry-run\r\n```\r\n\r\nPublishing requires a configured JX SkillHub registry and credentials.\r\n\r\n## Diagnostics\r\n\r\n```bash\r\njx-skillhub doctor\r\njx-skillhub doctor --repair --transaction <id> --json\r\n```\r\n\r\n`doctor` diagnoses lifecycle state and only repairs ownership that can be proven.\r\n\r\n## Environment Variables\r\n\r\n| Variable | Description |\r\n|---|---|\r\n| `JX_SKILLHUB_REGISTRY` | Default registry URL, lower priority than `--registry` |\r\n| `JX_SKILLHUB_TOKEN` | API token, lower priority than `--token` and higher priority than stored credentials |\r\n\r\n## Local Files\r\n\r\n```text\r\n~/.jx-skillhub/\r\n├── config.json\r\n├── credentials.json\r\n└── inventory.json\r\n```\r\n\r\nTokens are stored in the user directory and are never written to project-local files.\r\n\r\n## Attribution\r\n\r\nThis package includes parity work against `vercel-labs/skills` at commit `e173b8c88f2581cfdaa1b6767c6519a08155790e`, package version `1.5.20`. See `THIRD_PARTY_NOTICES.md` for the upstream MIT license notice. That attribution does not change this package's Apache-2.0 license.\r\n\r\n## License\r\n\r\nApache-2.0\r\n\r\nCopyright 2026 iFlytek Co., Ltd.\r\n\r\n## Maintainers\r\n\r\nSee [RELEASE.md](./RELEASE.md) for the canonical first-release, update, verification, and recovery process. User-visible changes are tracked in [CHANGELOG.md](./CHANGELOG.md).\r\n","readmeFilename":"README.md"}