{"_id":"@astron-team/skillhub","_rev":"12-78c26512ea846775ab0b11d85081207b","name":"@astron-team/skillhub","dist-tags":{"latest":"0.1.12"},"versions":{"0.1.1":{"name":"@astron-team/skillhub","version":"0.1.1","keywords":["skillhub","ai","coding-agent","skills","cli"],"author":{"name":"iFLYTEK"},"license":"Apache-2.0","_id":"@astron-team/skillhub@0.1.1","maintainers":[{"name":"dongmucat","email":"1127093059@qq.com"}],"homepage":"https://github.com/iflytek/skillhub#readme","bugs":{"url":"https://github.com/iflytek/skillhub/issues"},"bin":{"skillhub":"dist/index.js"},"dist":{"shasum":"bffef5579b49d09800348a6359526997bdc65aae","tarball":"https://registry.npmjs.org/@astron-team/skillhub/-/skillhub-0.1.1.tgz","fileCount":4,"integrity":"sha512-gX8ZNcTbzOgrUOZ/BBx4J1ty2LX/YRg0wQMaHo8zDKgMpBywPk4tuFUVJR3nkHSZYPowV91kmwhk8kuXja5ZbA==","signatures":[{"sig":"MEQCIAdwa0PRLkQqajDDlAXUAza5fx60k8T4yVUMRXTMSc8oAiBXQH+7FuvL/k9cj+mL2Q2BcmyysibMAVCiW43oWLPwAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":321439},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"cca6a64d43d361b32a1296f98414bb062836a6d8","scripts":{"lint":"eslint src test --ext .ts","test":"bun test","build":"bun build src/index.ts --target=node --outfile=dist/index.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"dongmucat","email":"1127093059@qq.com"},"repository":{"url":"git+https://github.com/iflytek/skillhub.git","type":"git","directory":"cli"},"_npmVersion":"10.9.2","description":"Manage and install skills for AI coding agents","directories":{},"_nodeVersion":"23.11.1","dependencies":{"cac":"^6.7.14","zod":"^3.24.1","fflate":"^0.8.2","semver":"^7.6.3","prompts":"^2.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"eslint":"^8.57.1","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/semver":"^7.5.8","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"_npmOperationalInternal":{"tmp":"tmp/skillhub_0.1.1_1778058662055_0.42491585140702215","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@astron-team/skillhub","version":"0.1.2","keywords":["skillhub","ai","coding-agent","skills","cli"],"author":{"name":"iFLYTEK"},"license":"Apache-2.0","_id":"@astron-team/skillhub@0.1.2","maintainers":[{"name":"dongmucat","email":"1127093059@qq.com"}],"homepage":"https://github.com/iflytek/skillhub#readme","bugs":{"url":"https://github.com/iflytek/skillhub/issues"},"bin":{"skillhub":"dist/index.js"},"dist":{"shasum":"05c554035a68ad4cb1eb999971c97a6eb0bad842","tarball":"https://registry.npmjs.org/@astron-team/skillhub/-/skillhub-0.1.2.tgz","fileCount":4,"integrity":"sha512-W5gaQdgfkc7GbQUWfzNFxWS0KJYqMoJiYnhb89VBMMBWJz+D4MZovJFGKPNjoa2MXxinGHiWfEKneSRWya+Glg==","signatures":[{"sig":"MEUCIBWC3SPDHygh8wSAyPhbhXPKQwpVix9mHhAQBxfQEnijAiEAjQCjjA7e5Kzy4A1nxZ9uoTIlrXt0GpFe4sswHxFWGEg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":321852},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"92dd64f36ee9cb4593358e14f6715e8e07c381b0","scripts":{"lint":"eslint src test --ext .ts","test":"bun test","build":"bun build src/index.ts --target=node --outfile=dist/index.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"dongmucat","email":"1127093059@qq.com"},"repository":{"url":"git+https://github.com/iflytek/skillhub.git","type":"git","directory":"cli"},"_npmVersion":"10.9.2","description":"Manage and install skills for AI coding agents","directories":{},"_nodeVersion":"23.11.1","dependencies":{"cac":"^6.7.14","zod":"^3.24.1","fflate":"^0.8.2","semver":"^7.6.3","prompts":"^2.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"eslint":"^8.57.1","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/semver":"^7.5.8","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"_npmOperationalInternal":{"tmp":"tmp/skillhub_0.1.2_1778060053261_0.4117637275255148","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@astron-team/skillhub","version":"0.1.3","keywords":["skillhub","ai","coding-agent","skills","cli"],"author":{"name":"iFLYTEK"},"license":"Apache-2.0","_id":"@astron-team/skillhub@0.1.3","maintainers":[{"name":"dongmucat","email":"1127093059@qq.com"}],"homepage":"https://github.com/iflytek/skillhub#readme","bugs":{"url":"https://github.com/iflytek/skillhub/issues"},"bin":{"skillhub":"dist/index.js"},"dist":{"shasum":"64813ac627457055f9d41245cb69cb212179de0a","tarball":"https://registry.npmjs.org/@astron-team/skillhub/-/skillhub-0.1.3.tgz","fileCount":4,"integrity":"sha512-H/a1m9f14HJPInLJrQEEjp25B4c2HH4WmgMM8CRZ3IRldVwoVVIzEMHEXWlkYDejgnpYYdi8g6kxXM7uXNyWig==","signatures":[{"sig":"MEUCIFz/i/BFLJsJE6v1cM7IbTSqmwQ9kBnFJ1mVhE0CdD2tAiEAiC0nIc0wIVVIdqylzpsjCTSZ4YraQLzkic/4rY6/+uA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":322012},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"ea8168f2905f2db944074a3016811116a0b1b052","scripts":{"lint":"eslint src test --ext .ts","test":"bun test","build":"bun build src/index.ts --target=node --outfile=dist/index.js","typecheck":"tsc --noEmit"},"_npmUser":{"name":"dongmucat","email":"1127093059@qq.com"},"repository":{"url":"git+https://github.com/iflytek/skillhub.git","type":"git","directory":"cli"},"_npmVersion":"10.9.2","description":"Manage and install skills for AI coding agents","directories":{},"_nodeVersion":"23.11.1","dependencies":{"cac":"^6.7.14","zod":"^3.24.1","fflate":"^0.8.2","semver":"^7.6.3","prompts":"^2.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"eslint":"^8.57.1","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/semver":"^7.5.8","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"_npmOperationalInternal":{"tmp":"tmp/skillhub_0.1.3_1778060779512_0.9288868955067371","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@astron-team/skillhub","version":"0.1.5","keywords":["skillhub","ai","coding-agent","skills","cli"],"author":{"name":"iFLYTEK"},"license":"Apache-2.0","_id":"@astron-team/skillhub@0.1.5","maintainers":[{"name":"cheney0509","email":"970320820@qq.com"},{"name":"dongmucat","email":"1127093059@qq.com"}],"homepage":"https://github.com/iflytek/skillhub#readme","bugs":{"url":"https://github.com/iflytek/skillhub/issues"},"bin":{"skillhub":"dist/index.js"},"dist":{"shasum":"df3a42b41d69f66f449beb0eea5ee23363249455","tarball":"https://registry.npmjs.org/@astron-team/skillhub/-/skillhub-0.1.5.tgz","fileCount":4,"integrity":"sha512-TidoJ5K7s72LSJt1WPtDU8ldGArJvzfBKCmAQLMDMGvesy7t8RSRFypJ7XVFP1yfsR+YAIklc+sCML07Dic27Q==","signatures":[{"sig":"MEYCIQCtLXOq4kOPrVGpkiTbCCTs9ag8Di3Ogo4yEclTZqvU1gIhAM7ROBsDclg+tQhHf3r6ct7+xirbLfw4+I/UsaPiOqGP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":331284},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"4cdf0ef6a7957f1996dcacd699c87251e82c3c52","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","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"},"_npmUser":{"name":"dongmucat","email":"1127093059@qq.com"},"repository":{"url":"git+https://github.com/iflytek/skillhub.git","type":"git","directory":"cli"},"_npmVersion":"10.9.2","description":"Manage and install skills for AI coding agents","directories":{},"_nodeVersion":"23.11.1","dependencies":{"cac":"^6.7.14","zod":"^3.24.1","fflate":"^0.8.2","semver":"^7.6.3","prompts":"^2.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"eslint":"^8.57.1","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/semver":"^7.5.8","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"_npmOperationalInternal":{"tmp":"tmp/skillhub_0.1.5_1778317512054_0.8385637942151045","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@astron-team/skillhub","version":"0.1.6","keywords":["skillhub","ai","coding-agent","skills","cli"],"author":{"name":"iFLYTEK"},"license":"Apache-2.0","_id":"@astron-team/skillhub@0.1.6","maintainers":[{"name":"cheney0509","email":"970320820@qq.com"},{"name":"dongmucat","email":"1127093059@qq.com"}],"homepage":"https://github.com/iflytek/skillhub#readme","bugs":{"url":"https://github.com/iflytek/skillhub/issues"},"bin":{"skillhub":"dist/index.js"},"dist":{"shasum":"5c5cf5f32bbaa6ee33283d5cce051c53a7f665e4","tarball":"https://registry.npmjs.org/@astron-team/skillhub/-/skillhub-0.1.6.tgz","fileCount":4,"integrity":"sha512-Cf38orYpWiTBHMfgJw92WypiVI3nJMtozXaqRh/lmC5MCSBb/FvtMnE2g7TKMfcsNWdEcH8JpAC6O9G6T72rBQ==","signatures":[{"sig":"MEQCICa7glkVaLD9nk1rFeLNSNrlR7OtXretK51J9J9g4mGiAiA7umaSKPnGiF5bgufEEujXpDRVIHgwLhq1Vc5J4ydPXA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":332971},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"098616dcb67b292b7077d9d7b7fec4436912c20a","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","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"},"_npmUser":{"name":"cheney0509","email":"970320820@qq.com"},"repository":{"url":"git+https://github.com/iflytek/skillhub.git","type":"git","directory":"cli"},"_npmVersion":"10.8.2","description":"Manage and install skills for AI coding agents","directories":{},"_nodeVersion":"20.20.2","dependencies":{"cac":"^6.7.14","zod":"^3.24.1","fflate":"^0.8.2","semver":"^7.6.3","prompts":"^2.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"eslint":"^8.57.1","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/semver":"^7.5.8","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"_npmOperationalInternal":{"tmp":"tmp/skillhub_0.1.6_1778753311874_0.3510961712017284","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@astron-team/skillhub","version":"0.1.7","keywords":["skillhub","ai","coding-agent","skills","cli"],"author":{"name":"iFLYTEK"},"license":"Apache-2.0","_id":"@astron-team/skillhub@0.1.7","maintainers":[{"name":"cheney0509","email":"970320820@qq.com"},{"name":"dongmucat","email":"1127093059@qq.com"}],"homepage":"https://github.com/iflytek/skillhub#readme","bugs":{"url":"https://github.com/iflytek/skillhub/issues"},"bin":{"skillhub":"dist/index.js"},"dist":{"shasum":"284ef8f82f2d8583e48daaed6bf082390c3c33b4","tarball":"https://registry.npmjs.org/@astron-team/skillhub/-/skillhub-0.1.7.tgz","fileCount":4,"integrity":"sha512-wnsYVTQj3q4BdBvg85uOhEecN5YreBORr0QdwUdWu8QKxLdZSbb1/FxPPzNlzkXxZOt39WxgQATecSsm+9rgLA==","signatures":[{"sig":"MEQCIEpoMkojWdWI7oQ7SuxUxLZ97m6Ddlu/prPm+Nh2QaTvAiBFULs09zaGNXZn2Q62QIpmX4PmHFrrhuuBKjzKh1jP8w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":340157},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"a6402c5873c86ae0d3d195c9ce836446fd1c95e2","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","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"},"_npmUser":{"name":"cheney0509","email":"970320820@qq.com"},"repository":{"url":"git+https://github.com/iflytek/skillhub.git","type":"git","directory":"cli"},"_npmVersion":"10.9.8","description":"Manage and install skills for AI coding agents","directories":{},"_nodeVersion":"22.22.3","dependencies":{"cac":"^6.7.14","zod":"^3.24.1","fflate":"^0.8.2","semver":"^7.6.3","prompts":"^2.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"eslint":"^8.57.1","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/semver":"^7.5.8","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"_npmOperationalInternal":{"tmp":"tmp/skillhub_0.1.7_1780042413012_0.6975191141604171","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@astron-team/skillhub","version":"0.1.8","keywords":["skillhub","ai","coding-agent","skills","cli"],"author":{"name":"iFLYTEK"},"license":"Apache-2.0","_id":"@astron-team/skillhub@0.1.8","maintainers":[{"name":"cheney0509","email":"970320820@qq.com"},{"name":"dongmucat","email":"1127093059@qq.com"}],"homepage":"https://github.com/iflytek/skillhub#readme","bugs":{"url":"https://github.com/iflytek/skillhub/issues"},"bin":{"skillhub":"dist/index.js"},"dist":{"shasum":"14b7e6146ecc785b2a0563de8c55564a1fbb9680","tarball":"https://registry.npmjs.org/@astron-team/skillhub/-/skillhub-0.1.8.tgz","fileCount":4,"integrity":"sha512-e9PF0RVEP2kDU8obOH2yAvBoCQCiPsuOybViBzqhqMtkIlmb/h2OMh9eSP1hviYJqYRtMLzVghuXSN7ataNdJw==","signatures":[{"sig":"MEUCIQC0w0M6zIvHIPV4XcivTEAvvWWLPco96n7fopYAVaQL8AIgI3p7OVCWTaOjMKbQW9JdftA1WewoaCY92WmS52WMrC4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":346966},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"dc185861d4bbc98f1a485e2ddbb5e9199065319f","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","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"},"_npmUser":{"name":"cheney0509","email":"970320820@qq.com"},"repository":{"url":"git+https://github.com/iflytek/skillhub.git","type":"git","directory":"cli"},"_npmVersion":"10.9.8","description":"Manage and install skills for AI coding agents","directories":{},"_nodeVersion":"22.22.3","dependencies":{"cac":"^6.7.14","zod":"^3.24.1","fflate":"^0.8.2","semver":"^7.6.3","prompts":"^2.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"eslint":"^8.57.1","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/semver":"^7.5.8","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"_npmOperationalInternal":{"tmp":"tmp/skillhub_0.1.8_1781769510081_0.04195975666882079","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@astron-team/skillhub","version":"0.1.9","keywords":["skillhub","ai","coding-agent","skills","cli"],"author":{"name":"iFLYTEK"},"license":"Apache-2.0","_id":"@astron-team/skillhub@0.1.9","maintainers":[{"name":"cheney0509","email":"970320820@qq.com"},{"name":"dongmucat","email":"1127093059@qq.com"}],"homepage":"https://github.com/iflytek/skillhub#readme","bugs":{"url":"https://github.com/iflytek/skillhub/issues"},"bin":{"skillhub":"dist/index.js"},"dist":{"shasum":"14ed8fbac758311c1eb632d4b850153923cde12d","tarball":"https://registry.npmjs.org/@astron-team/skillhub/-/skillhub-0.1.9.tgz","fileCount":4,"integrity":"sha512-qnu2wUDdPmHj005zdU6X6PYeJv9xocR3/2uJFDmdtHR5nP9O9bxkIVDf92Ajsfn9kNa7R0YbbDxzxTt3HSVhLw==","signatures":[{"sig":"MEUCIQCESc2eL56uYAsOdARjoHqfi6zC2PQkYIYJIUF9iQOUyAIgF2uPq86r6au2Ia7otAmTIdKEtOWgSrcy5A0GxZ+lcsU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":348659},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"ac46ad53913e413e451710a3563590b62d183927","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","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"},"_npmUser":{"name":"cheney0509","email":"970320820@qq.com"},"repository":{"url":"git+https://github.com/iflytek/skillhub.git","type":"git","directory":"cli"},"_npmVersion":"10.9.8","description":"Manage and install skills for AI coding agents","directories":{},"_nodeVersion":"22.23.1","dependencies":{"cac":"^6.7.14","zod":"^3.24.1","fflate":"^0.8.2","semver":"^7.6.3","prompts":"^2.4.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"eslint":"^8.57.1","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/semver":"^7.5.8","@types/prompts":"^2.4.9","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"_npmOperationalInternal":{"tmp":"tmp/skillhub_0.1.9_1784713621179_0.6177838815860375","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@astron-team/skillhub","version":"0.1.10","keywords":["skillhub","ai","coding-agent","skills","cli"],"author":{"name":"iFLYTEK"},"license":"Apache-2.0","_id":"@astron-team/skillhub@0.1.10","maintainers":[{"name":"cheney0509","email":"970320820@qq.com"},{"name":"dongmucat","email":"1127093059@qq.com"}],"homepage":"https://github.com/iflytek/skillhub#readme","bugs":{"url":"https://github.com/iflytek/skillhub/issues"},"bin":{"skillhub":"dist/index.js"},"dist":{"shasum":"f5b59c05533101d80937f82522e101fe66a71c97","tarball":"https://registry.npmjs.org/@astron-team/skillhub/-/skillhub-0.1.10.tgz","fileCount":5,"integrity":"sha512-uPUtIItS7+74iEoTTZ0cfR3wnzD/OsNoRGTrJHrA1aVmpQ94gfZ3X0GHXiFtIdJm/TMacjIqARNZAj0Ech1JmQ==","signatures":[{"sig":"MEYCIQD/B51YSHSAAhWeZsUug3YXeQoJOfMU2Rdqhx4nek7/oAIhAOd4L9x5Tqakxq7gYeVYfzjRtl9RVMKhEFokzsnd8PVo","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":461634},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"d6afc43364444677466407ac6168f6e9705eab09","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","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"},"_npmUser":{"name":"dongmucat","email":"1127093059@qq.com"},"repository":{"url":"git+https://github.com/iflytek/skillhub.git","type":"git","directory":"cli"},"_npmVersion":"10.9.8","description":"Manage and install skills for AI coding agents","directories":{},"_nodeVersion":"22.23.2","dependencies":{"cac":"^6.7.14","zod":"^3.24.1","fflate":"^0.8.2","semver":"^7.6.3","prompts":"^2.4.2","proper-lockfile":"4.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"eslint":"^8.57.1","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/semver":"^7.5.8","@types/prompts":"^2.4.9","@types/proper-lockfile":"4.1.4","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"_npmOperationalInternal":{"tmp":"tmp/skillhub_0.1.10_1788424346354_0.8274447300625667","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@astron-team/skillhub","version":"0.1.11","keywords":["skillhub","ai","coding-agent","skills","cli"],"author":{"name":"iFLYTEK"},"license":"Apache-2.0","_id":"@astron-team/skillhub@0.1.11","maintainers":[{"name":"cheney0509","email":"970320820@qq.com"},{"name":"dongmucat","email":"1127093059@qq.com"}],"homepage":"https://github.com/iflytek/skillhub#readme","bugs":{"url":"https://github.com/iflytek/skillhub/issues"},"bin":{"skillhub":"dist/index.js"},"dist":{"shasum":"9454727133c6e9518eaed54dc256af92c0fb25fb","tarball":"https://registry.npmjs.org/@astron-team/skillhub/-/skillhub-0.1.11.tgz","fileCount":5,"integrity":"sha512-+3Te+iB9BMz/kMtHDI3zSWPgvNj5az7ZMbskQiEHynvZHdgnL6MLdp8XGU8BjqLYjNK5VWYaevBqrIE3iy2zdg==","signatures":[{"sig":"MEQCIA2KA++3TVHHZVU5XYOMKWNMbRNBnIfzViA7awoUUO6VAiB/8p/lE6cEiXJJ5UeAUNrCKneG+j89qSRjiO7Qg3XKjA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDuNQsbRNIMdv9F0dWaTnfptcJHlvO8YJpDV9mR3U/rpAIgLLmTydW0HCtGrQ0kqsLfxvC5Zaqa2ZmXSUJDhGr2r2s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":469266},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"64e1fecbe71e7d9e7f9d0d4bd45a117e4e1ee499","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","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"},"_npmUser":{"name":"dongmucat","email":"1127093059@qq.com"},"repository":{"url":"git+https://github.com/iflytek/skillhub.git","type":"git","directory":"cli"},"_npmVersion":"10.9.8","description":"Manage and install skills for AI coding agents","directories":{},"_nodeVersion":"22.23.2","dependencies":{"cac":"^6.7.14","zod":"^3.24.1","fflate":"^0.8.2","semver":"^7.6.3","prompts":"^2.4.2","proper-lockfile":"4.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"eslint":"^8.57.1","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/semver":"^7.5.8","@types/prompts":"^2.4.9","@types/proper-lockfile":"4.1.4","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"_npmOperationalInternal":{"tmp":"tmp/skillhub_0.1.11_1788516601180_0.3335674415815266","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"_id":"@astron-team/skillhub@0.1.12","bin":{"skillhub":"dist/index.js"},"bugs":{"url":"https://github.com/iflytek/skillhub/issues"},"dist":{"shasum":"195ca114be6088a13be813a944c93cc0999c2ce9","tarball":"https://registry.npmjs.org/@astron-team/skillhub/-/skillhub-0.1.12.tgz","fileCount":5,"integrity":"sha512-8YD0/NP/yPK0DeUWT6Ciqp9qzCbAQ55C5qcJtR6x0ay3WYcVvvv7kj0YvOOu++9yV7Obc0DlRR7ZMZe08B0RQg==","signatures":[{"sig":"MEYCIQCuuqIr98BLUloS/qWrDsj/YwVhzWGFSaVSf13BQoZ2FAIhAMqiZyLv1aWqjSEMVkdUV06EACxdEFjhvrxIRYFFKnpj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIAL4JZoBdqIdazZ2Xbh4tVWXEzCm7ZS6eTKlR9Ey5LKUAiEAvwRTwz9l2knIDGD+uTSBXnlx/rs66xa50UL6itcUIWs="}],"unpackedSize":476624},"name":"@astron-team/skillhub","type":"module","author":{"name":"iFLYTEK"},"engines":{"node":">=18.0.0"},"gitHead":"3fd8c63fe5fc2c2807c6fbfbcde7ebd76dea94de","license":"Apache-2.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","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"},"version":"0.1.12","_npmUser":{"name":"dongmucat","email":"1127093059@qq.com"},"homepage":"https://github.com/iflytek/skillhub#readme","keywords":["skillhub","ai","coding-agent","skills","cli"],"repository":{"url":"git+https://github.com/iflytek/skillhub.git","type":"git","directory":"cli"},"_npmVersion":"10.9.8","description":"Manage and install skills for AI coding agents","directories":{},"maintainers":[{"name":"cheney0509","email":"970320820@qq.com"},{"name":"dongmucat","email":"1127093059@qq.com"}],"_nodeVersion":"22.23.2","dependencies":{"cac":"^6.7.14","zod":"^3.24.1","fflate":"^0.8.2","semver":"^7.6.3","prompts":"^2.4.2","proper-lockfile":"4.1.2"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"bun@1.3.13","devDependencies":{"eslint":"^8.57.1","@types/bun":"^1.3.13","typescript":"^5.7.0","@types/semver":"^7.5.8","@types/prompts":"^2.4.9","@types/proper-lockfile":"4.1.4","@typescript-eslint/parser":"^7.18.0","@typescript-eslint/eslint-plugin":"^7.18.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/skillhub_0.1.12_1788947587977_0.13980932491797837"}}},"time":{"created":"2026-05-06T09:11:01.916Z","modified":"2026-09-09T09:53:08.251Z","0.1.1":"2026-05-06T09:11:02.183Z","0.1.2":"2026-05-06T09:34:13.437Z","0.1.3":"2026-05-06T09:46:19.666Z","0.1.5":"2026-05-09T09:05:12.195Z","0.1.6":"2026-05-14T10:08:32.073Z","0.1.7":"2026-05-29T08:13:33.158Z","0.1.8":"2026-06-18T07:58:30.222Z","0.1.9":"2026-07-22T09:47:01.368Z","0.1.10":"2026-09-03T08:32:26.552Z","0.1.11":"2026-09-04T10:10:01.342Z","0.1.12":"2026-09-09T09:53:08.071Z"},"bugs":{"url":"https://github.com/iflytek/skillhub/issues"},"author":{"name":"iFLYTEK"},"license":"Apache-2.0","homepage":"https://github.com/iflytek/skillhub#readme","keywords":["skillhub","ai","coding-agent","skills","cli"],"repository":{"url":"git+https://github.com/iflytek/skillhub.git","type":"git","directory":"cli"},"description":"Manage and install skills for AI coding agents","maintainers":[{"name":"cheney0509","email":"970320820@qq.com"},{"name":"dongmucat","email":"1127093059@qq.com"}],"readme":"# SkillHub CLI\n\nSkillHub CLI is the official command-line tool for SkillHub, designed for searching, installing, managing, and publishing Agent skill packages.\n\n## 📦 Installation\n\n```bash\n# Install globally via npm\nnpm install -g @astron-team/skillhub\n\n# Or run directly with npx\nnpx @astron-team/skillhub@latest version\n\n# Or install globally via Bun\nbun add -g @astron-team/skillhub\n```\n\n## 🚀 Quick Start\n\n```bash\n# Login\nskillhub login --token sk_xxx\n\n# Search skills\nskillhub search pdf\n\n# Install skill to Agent directory\nskillhub install pdf-parser --agent codex\n\n# List installed skills\nskillhub list\n\n# Publish skill\nskillhub publish ./my-skill --namespace myspace\n\n# Synchronize a team workspace\nskillhub sync pull --namespace myspace\n```\n\n## 🌐 Registry Configuration\n\nThe active registry is resolved in the following priority order:\n\n1. `--registry <url>` command-line argument\n2. `SKILLHUB_REGISTRY` environment variable\n3. `registry` in `~/.skillhub/config.json`\n4. Default value `https://skill.xfyun.cn`\n\n```bash\n# Temporarily use another registry\nskillhub search pdf --registry https://skillhub.example.com\n\n# Set via environment variable (Linux/macOS)\nexport SKILLHUB_REGISTRY=https://skillhub.example.com\n```\n\n**Windows PowerShell:**\n\n```powershell\n$env:SKILLHUB_REGISTRY=\"https://skillhub.example.com\"\n```\n\n**Windows CMD:**\n\n```cmd\nset SKILLHUB_REGISTRY=https://skillhub.example.com\n```\n\n## 🔐 Authentication\n\nToken resolution priority:\n\n1. `--token <token>` command-line argument\n2. `SKILLHUB_TOKEN` environment variable\n3. Token stored in `~/.skillhub/credentials.json` (per registry)\n\n### Login\n\n```bash\n# Login with API token\nskillhub login --token sk_xxx\n\n# Login to specific registry\nskillhub login --token sk_xxx --registry https://skillhub.example.com\n```\n\n`login` validates the token, stores it in `~/.skillhub/credentials.json`, and writes the registry to `~/.skillhub/config.json`.\n\nBoth files are updated non-destructively: SkillHub CLI changes only its own `tokens` and `registry`\nfields and preserves unknown fields written by other compatible tools. This allows tools that share\nthe `~/.skillhub` directory to keep independently named state in the same JSON documents.\n\n### Check Current Identity\n\n```bash\nskillhub whoami\n\n# Check specific registry\nskillhub whoami --registry https://skillhub.example.com\n\n# Temporarily use different token\nskillhub whoami --token sk_other\n```\n\n### Logout\n\n```bash\nskillhub logout\n\n# Logout from specific registry\nskillhub logout --registry https://skillhub.example.com\n```\n\nLogout only removes the token for the specified registry, preserving registry configuration and installation records.\n\n## 🔍 Search\n\n```bash\n# Keyword search\nskillhub search pdf\n\n# Search with a one-off token\nskillhub search pdf --token sk_xxx\n\n# List all skills (empty query)\nskillhub search \"\" --limit 50\n\n# JSON output\nskillhub search pdf --json\n```\n\nOutput format: `namespace/slug  version  summary`\n\n## 📥 Install Skills\n\nThe install coordinate accepts a bare slug or any of the equivalent namespace\nforms below:\n\n| Coordinate | Resolved namespace | Resolved slug |\n|------------|--------------------|---------------|\n| `my-skill` | `global` | `my-skill` |\n| `team/my-skill` | `team` | `my-skill` |\n| `@team/my-skill` | `team` | `my-skill` |\n| `team--my-skill` | `team` | `my-skill` |\n\nFor a bare slug, `--namespace team` selects a non-global namespace. A\nnamespaced coordinate may be combined with the same `--namespace` value, but a\nconflicting value is rejected instead of silently overriding the coordinate.\n\n```bash\n# Install to auto-detected Agent directory\nskillhub install pdf-parser\n\n# Equivalent namespaced coordinates\nskillhub install team/my-skill\nskillhub install @team/my-skill\nskillhub install team--my-skill\n\n# Choose install scope explicitly\nskillhub install pdf-parser --scope user\nskillhub install pdf-parser --scope project --agent codex\n\n# Specify namespace for a bare slug (default: global)\nskillhub install pdf-parser --namespace myspace\n\n# Specify version\nskillhub install pdf-parser --version 1.2.0\n\n# Install to specific Agent\nskillhub install pdf-parser --agent codex\n\n# Install to AStudio's fixed user-level directory\nskillhub install pdf-parser --agent astudio\n\n# Install to multiple Agents\nskillhub install pdf-parser --agent codex --agent claude-code\n\n# Install to custom directory\nskillhub install pdf-parser --dir ~/.claude/skills\n\n# Reinstall a SkillHub-managed installation from the same source\nskillhub install pdf-parser --force\n```\n\n### Install Target Resolution\n\nThe CLI determines the installation location using the following logic:\n\n1. If `--dir` is specified: Install to that directory, agent marked as `custom`. `--dir` is mutually exclusive with `--scope` and `--agent`.\n2. If `--scope user|project` is specified: Limit detection to the chosen scope.\n   - With `--agent <profile>`: Install to that profile's user or project skills directory directly.\n   - Without `--agent`: Detect existing skills directories within the chosen scope only. In interactive user scope, the `generic` target (`<home>/.agents/skills/`) is always also offered and can be selected alone or together with detected targets.\n   - No detected directory in the chosen scope → Fallback to `<home>/.agents/skills/` for `--scope user` or `<cwd>/.agents/skills/` for `--scope project`.\n3. If `--agent` is specified (no `--scope`): Install to the corresponding Agent's skills directory (existing behaviour, unchanged).\n4. If none of the above is specified:\n   - **Interactive mode** (stdin and stdout are both TTY, no `--json`): Prompt for `user` or `project` scope first, then continue per the `--scope` rule above.\n   - **Non-interactive mode**: Auto-scan current directory to detect existing Agent config directories. 1 Agent detected → install directly; multiple → error; none detected → fallback to `<cwd>/.agents/skills/`.\n\n> `--dir` cannot be combined with `--scope` or `--agent`.\n\n### Install Paths\n\nMost Agents have both project-level and user-level skills directories. Use `--scope user|project` to control which one is used. AStudio uses its fixed user-level directory only.\n\n| Agent | Project-level Path | User-level Path |\n|-------|-------------------|-----------------|\n| `astudio` (AStudio) | Not supported | `~/.acode/skills/` |\n| `claude-code` | `<project>/.claude/skills/` | `~/.claude/skills/` |\n| `codex` | `<project>/.codex/skills/` | `~/.codex/skills/` |\n| `cursor` | `<project>/.cursor/skills/` | `~/.cursor/skills/` |\n| `github-copilot` | `<project>/.github-copilot/skills/` | `~/.github-copilot/skills/` |\n| `gemini-cli` | `<project>/.gemini/skills/` | `~/.gemini/skills/` |\n| `windsurf` | `<project>/.windsurf/skills/` | `~/.windsurf/skills/` |\n| `kiro-cli` | `<project>/.kiro/skills/` | `~/.kiro/skills/` |\n| `roo` | `<project>/.roo/skills/` | `~/.roo/skills/` |\n| `trae` | `<project>/.trae/skills/` | `~/.trae/skills/` |\n| `trae-cn` | `<project>/.trae-cn/skills/` | `~/.trae-cn/skills/` |\n| `openhands` | `<project>/.openhands/skills/` | `~/.openhands/skills/` |\n| `openclaw` | `<project>/.openclaw/skills/` | `~/.openclaw/skills/` |\n| `opencode` | `<project>/.opencode/skills/` | `~/.opencode/skills/` |\n| `kilo` | `<project>/.kilo/skills/` | `~/.kilo/skills/` |\n| _fallback_ | `<project>/.agents/skills/` | `~/.agents/skills/` |\n\nFor a custom path or an unsupported Agent directory, use `--dir` to specify the installation path. In interactive user scope, the `generic` target is offered alongside detected Agent targets. AStudio appears in that selector when `~/.acode/skills/` exists. When `--scope user|project` finds no matching agent directory, the CLI falls back to the `_fallback_` row above.\n\n### File Structure After Installation\n\n```\n.codex/skills/pdf-parser/\n├── ...                          # Extracted skill package files\n└── .skillhub/\n    └── metadata.json            # Installation metadata\n```\n\n`metadata.json` example:\n\n```json\n{\n  \"schemaVersion\": 1,\n  \"registry\": \"https://skill.xfyun.cn\",\n  \"namespace\": \"global\",\n  \"slug\": \"pdf-parser\",\n  \"version\": \"1.0.0\",\n  \"versionId\": 123,\n  \"fingerprint\": \"sha256:...\",\n  \"files\": { \"SKILL.md\": \"sha256...\" },\n  \"source\": \"skillhub\",\n  \"agent\": \"codex\",\n  \"installedAt\": \"2026-04-28T06:00:00.000Z\"\n}\n```\n\nThe CLI creates `.skillhub/metadata.json` after extracting a downloaded package. It is not part of\nthe published ZIP and is excluded when a managed directory is published again.\n\n## ⬆️ Upgrade Installed Skills\n\n`upgrade` only operates on explicitly selected, SkillHub-managed local installations. It never\ninstalls a missing Skill and has no implicit upgrade-all mode.\n\n```bash\n# Preview without changing files\nskillhub upgrade @global/skillhub-cli --check\n\n# Upgrade one or a bounded list of installed Skills\nskillhub upgrade @global/skillhub-cli\nskillhub upgrade @team/code-review @team/java-guide\n\n# Machine-readable plan\nskillhub upgrade @team/code-review --check --json\n```\n\nThe source identity is `registry + namespace + slug`. `--force` may replace local changes only when\nthat full identity matches the installation metadata; it never overwrites an unmanaged directory or\na Skill installed from another source.\n\nAll targets in one inventory entry are upgraded together. A filter that selects only part of that\nentry is rejected because the current inventory format stores one shared version for all targets.\nThe command also keeps the local files when the registry resolves to an older version.\nIf a multi-Skill run fails after an earlier upgrade commits, execution stops and reports each item\nas `upgraded`, `failed`, or `not-attempted`; a committed upgrade is never rolled back implicitly.\nNew installations store absolute target paths. An older inventory entry with relative target paths\nmust be reinstalled before upgrade because its original working directory cannot be recovered safely.\n\n## 🔄 Namespace Workspaces\n\nUse namespace synchronization to maintain explicitly selected skills from one team space. Every sync action requires\n`--namespace`; `global` is not a valid sync target because it has no namespace membership.\n\n```bash\n# Interactively select new or updated skills in a TTY\nskillhub sync pull --namespace team-a\n\n# Non-interactive/CI pull: repeat --skill for every explicit target\nskillhub sync pull --namespace team-a --skill code-review --skill java-guide\n\n# Use an explicit workspace directory and target\nskillhub sync pull --namespace team-a --skill code-review --dir ./.claude/skills\n\n# Check without downloading\nskillhub sync pull --namespace team-a --check\n\n# Show local edits and remote updates\nskillhub sync status --namespace team-a --json\nskillhub sync diff --namespace team-a\n\n# Remove only an explicitly selected, unchanged managed skill that no longer exists remotely\nskillhub sync pull --namespace team-a --skill retired-guide --prune\n\n# Validate and upload every local skill for review\nskillhub sync push --all --namespace team-a --dry-run\nskillhub sync push --all --namespace team-a --submit-review\n```\n\nThe default workspace is `<cwd>/.agents/skills`. In an interactive TTY, pull presents a multi-select list; an empty\nselection changes nothing. Outside a TTY, and always with `--json`, pull requires one or more repeatable\n`--skill <slug>` options and never prompts. `sync pull --check` is the exception: it checks the entire namespace and\nnever writes local files. Pull never overwrites local changes unless `--force` is supplied, and `--force` applies only\nto explicitly selected skills. Remote removals are reported as `orphaned` and are retained unless both `--prune` and\nthe matching `--skill` are supplied.\n\nSync compares both the published version and package fingerprint. An exact match is `up-to-date`,\nwhile a newer version is `update-available` even when its content is unchanged. An older remote\nversion, an unorderable version pair, or changed remote content without a version bump is `blocked`.\n`--force` cannot bypass these release-safety checks; verify the release and use an explicit\n`skillhub install` when replacement is intentional.\n\nWorkspace push is non-overwriting: an existing namespace/slug/version is reported as a conflict, including versions that are still uploaded or pending review. Other skills in the same `--all` run continue processing.\n\nNamespace sync writes `.skillhub/namespace-sync.json` in the workspace and per-skill `.skillhub/metadata.json` files. These files contain the registry coordinate, published version, aggregate fingerprint, and file hashes used by `status` and `diff`.\n\n## 📋 Local Management\n\n### List Installed Skills\n\n```bash\n# List all installed skills\nskillhub list\n\n# Filter by Agent\nskillhub list --agent codex\n\n# Filter by multiple Agents\nskillhub list --agent codex --agent claude-code\n\n# Filter by directory\nskillhub list --dir ~/.codex/skills\n\n# JSON output\nskillhub list --json\n```\n\n### Remove Skills\n\n```bash\n# A bare slug removes matching local installations across namespaces\nskillhub remove pdf-parser\n\n# A namespaced coordinate removes only that namespace\nskillhub remove myspace/pdf-parser\nskillhub remove @myspace/pdf-parser\nskillhub remove myspace--pdf-parser\n\n# Equivalent precise local removal with an explicit namespace\nskillhub remove pdf-parser --namespace myspace\n\n# Remove only specific Agent's installation\nskillhub remove pdf-parser --agent codex\n\n# Remove all targets (skip interactive confirmation)\nskillhub remove pdf-parser --all\n\n# Remove remote skill (requires authentication, prompts for confirmation)\nskillhub remove pdf-parser --remote --namespace myspace\n\n# Skip remote deletion confirmation\nskillhub remove pdf-parser --remote --hard --namespace myspace\n```\n\n> Parameter exclusivity rules:\n> - `--all` cannot be used with `--agent`\n> - `--remote` cannot be used with `--agent` or `--all`\n> - Remote deletion in non-interactive environments requires `--hard`\n\n### Rebuild Local Inventory\n\n```bash\nskillhub doctor\n```\n\n`doctor` performs the following operations:\n\n1. Scans `<cwd>/.<agent>/skills/<slug>/.skillhub/metadata.json`\n2. Groups by `registry + namespace + slug`\n3. Backs up old `inventory.json` (if exists)\n4. Writes new `inventory.json`\n\nIf the same skill has version conflicts across different targets, that skill will be skipped and reported.\n\n## 🚢 Publishing\n\n```bash\n# Publish directory (auto-packaged as zip)\nskillhub publish ./my-skill --namespace myspace\n\n# Publish existing zip file\nskillhub publish ./my-skill.zip --namespace myspace\n\n# Specify visibility\nskillhub publish ./my-skill --namespace myspace --visibility private\n```\n\nVisibility options:\n- `public` (default) — Visible to everyone\n- `namespace-only` — Visible to namespace members only\n- `private` — Visible to yourself only\n\nAfter the server accepts a submission, the CLI displays the server's current status and the skill detail page URL.\nStatuses such as `SCANNING` and `PENDING_REVIEW` are successful asynchronous submissions, not confirmation that the\nskill is finally published. Check the Web page for the final publish or review state.\n\n## ⬆️ Self-Update\n\n```bash\n# Check for new version\nskillhub update --check\n\n# Execute update\nskillhub update\n```\n\nUpdate mechanism:\n- Installed via npm globally: Auto-executes `npm install -g @astron-team/skillhub@latest`\n- Installed via Bun globally: Auto-executes `bun add -g @astron-team/skillhub@latest`\n- Run via npx: Prompts manual update command\n- Unknown installation method: Prompts manual update\n\n## 🔧 Environment Variables\n\n| Variable | Description | Priority |\n|----------|-------------|----------|\n| `SKILLHUB_REGISTRY` | Default registry URL | Lower than `--registry` parameter |\n| `SKILLHUB_TOKEN` | API token | Lower than `--token` parameter, higher than stored token |\n\n## 📂 Local File Structure\n\n```\n~/.skillhub/\n├── config.json           # User configuration (registry, defaultAgent, etc.)\n├── credentials.json      # API tokens (stored per registry, permissions 0600)\n└── inventory.json        # Installed skills inventory\n```\n\n## 📖 Command Reference\n\n| Command | Description |\n|---------|-------------|\n| `skillhub help [command]` | Display help information |\n| `skillhub version [--json]`, `skillhub --version`, `skillhub -v` | Display CLI version |\n| `skillhub login --token <token> [--registry <url>] [--json]` | Save token and registry configuration |\n| `skillhub logout [--registry <url>] [--json]` | Remove token for specified registry |\n| `skillhub whoami [--registry <url>] [--token <token>] [--json]` | Validate current token and display user information |\n| `skillhub search <query> [--registry <url>] [--token <token>] [--limit <n>] [--json]` | Search published skills |\n| `skillhub install <coordinate> [--scope <user\\|project>] [--namespace <slug>] [--version <v>] [--agent <profile>] [--dir <path>] [--force] [--registry <url>] [--token <token>] [--json]` | Install a skill |\n| `skillhub upgrade <coordinate...> [--namespace <slug>] [--agent <profile>] [--dir <path>] [--registry <url>] [--check] [--force] [--json]` | Upgrade explicitly selected installed skills |\n| `skillhub list [--agent <profile>] [--dir <path>] [--registry <url>] [--json]` | List installed skills |\n| `skillhub remove <coordinate> [--agent <profile>] [--all] [--remote] [--hard] [--namespace <slug>] [--registry <url>] [--token <token>] [--json]` | Remove a skill |\n| `skillhub doctor [--json]` | Scan project directory and rebuild local inventory |\n| `skillhub publish <path> [--namespace <slug>] [--visibility <v>] [--registry <url>] [--token <token>] [--json]` | Publish a skill |\n| `skillhub sync pull --namespace <slug> [--skill <slug>]... [options]` | Pull explicitly selected skills from a non-global namespace |\n| `skillhub sync <status\\|diff\\|push> --namespace <slug> [options]` | Inspect or push a non-global namespace workspace |\n| `skillhub update [--check] [--json]` | Check or execute CLI self-update |\n\n## 🔒 Security Notes\n\n- Tokens are stored only in user directory `~/.skillhub/credentials.json`\n- On Linux/macOS, credential file permissions are automatically set to `0600`\n- Tokens are never written to any project-local files\n- Remote delete operations require explicit confirmation or `--hard` parameter\n- `remove` command validates path safety to prevent deletion of non-skill directories\n\n## 🐛 Troubleshooting\n\n### Authentication Failure\n\n```bash\n# Verify token validity\nskillhub whoami\n\n# Re-login\nskillhub login --token sk_xxx\n```\n\nFor structured registry failures, the CLI prints the server's public `msg` and\n`requestId`. HTTP 403 without a public message falls back to `access denied`;\nit is not automatically described as a missing token scope. Include the\nrequest ID when asking a registry operator to investigate.\n\n### Network Error\n\n```bash\n# Check if registry is accessible\ncurl https://skill.xfyun.cn/api/cli/v1/skills/search?q=test&limit=1\n\n# Use alternative registry\nskillhub search test --registry https://skillhub.example.com\n```\n\n### Installation Directory Conflict\n\n```bash\n# Use --force to overwrite\nskillhub install pdf-parser --force # same SkillHub source only\n\n# Or remove first then install\nskillhub remove pdf-parser\nskillhub install pdf-parser\n```\n\n`--force` does not bypass source ownership. Move or explicitly remove an unmanaged or different-source\ndirectory before installing another Skill with the same visible slug.\n\n### Corrupted Inventory\n\n```bash\n# Rebuild inventory\nskillhub doctor\n```\n\n## 📚 Documentation\n\n- [SkillHub Homepage](https://skill.xfyun.cn)\n- [GitHub Repository](https://github.com/iflytek/skillhub)\n- [CLI Documentation](https://github.com/iflytek/skillhub/blob/main/docs/skillhub/en/guide/cli.md)\n- [Issue Tracker](https://github.com/iflytek/skillhub/issues)\n\n## 📄 License\n\nApache-2.0\n\nCopyright 2026 iFlytek Co., Ltd.\n","readmeFilename":"README.md"}