@hasna/skills 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/index.js +253 -715
- package/bin/mcp.js +221 -683
- package/package.json +1 -1
- package/src/cli/cli.test.ts +14 -14
- package/src/cli/index.tsx +1 -1
- package/src/lib/installer.test.ts +41 -41
- package/src/lib/registry.test.ts +10 -10
- package/src/lib/registry.ts +10 -472
- package/src/lib/skillinfo.test.ts +12 -12
- package/src/mcp/index.ts +1 -1
- package/skills/skill-architecture-docs/CLAUDE.md +0 -19
- package/skills/skill-architecture-docs/package.json +0 -32
- package/skills/skill-architecture-docs/src/index.ts +0 -543
- package/skills/skill-auto-format/CLAUDE.md +0 -19
- package/skills/skill-auto-format/package.json +0 -32
- package/skills/skill-auto-format/src/index.ts +0 -103
- package/skills/skill-auto-format/tsconfig.json +0 -14
- package/skills/skill-brainstorm/README.md +0 -17
- package/skills/skill-brainstorm/install.sh +0 -112
- package/skills/skill-brainstorm/src/auth.ts +0 -49
- package/skills/skill-brainstorm/src/installer.ts +0 -324
- package/skills/skill-brainstorm/src/skill-install.ts +0 -205
- package/skills/skill-browser-agent/CLAUDE.md +0 -19
- package/skills/skill-browser-agent/package.json +0 -32
- package/skills/skill-browser-agent/src/index.ts +0 -626
- package/skills/skill-browser-agent/tsconfig.json +0 -14
- package/skills/skill-browseruse/LICENSE +0 -21
- package/skills/skill-browseruse/README.md +0 -27
- package/skills/skill-browseruse/SKILL.md +0 -113
- package/skills/skill-browseruse/install.sh +0 -112
- package/skills/skill-browseruse/package.json +0 -31
- package/skills/skill-browseruse/src/auth.ts +0 -49
- package/skills/skill-browseruse/src/installer.ts +0 -324
- package/skills/skill-browseruse/src/skill-install.ts +0 -174
- package/skills/skill-calculate/LICENSE +0 -21
- package/skills/skill-calculate/README.md +0 -17
- package/skills/skill-calculate/install.sh +0 -112
- package/skills/skill-calculate/package.json +0 -31
- package/skills/skill-calculate/src/auth.ts +0 -49
- package/skills/skill-calculate/src/installer.ts +0 -324
- package/skills/skill-calculate/src/skill-install.ts +0 -205
- package/skills/skill-chromedevtools/LICENSE +0 -21
- package/skills/skill-chromedevtools/README.md +0 -27
- package/skills/skill-chromedevtools/SKILL.md +0 -110
- package/skills/skill-chromedevtools/install.sh +0 -112
- package/skills/skill-chromedevtools/package.json +0 -31
- package/skills/skill-chromedevtools/src/auth.ts +0 -49
- package/skills/skill-chromedevtools/src/installer.ts +0 -324
- package/skills/skill-chromedevtools/src/skill-install.ts +0 -174
- package/skills/skill-companyguide/LICENSE +0 -21
- package/skills/skill-companyguide/README.md +0 -17
- package/skills/skill-companyguide/install.sh +0 -112
- package/skills/skill-companyguide/package.json +0 -31
- package/skills/skill-companyguide/src/auth.ts +0 -49
- package/skills/skill-companyguide/src/installer.ts +0 -324
- package/skills/skill-companyguide/src/skill-install.ts +0 -205
- package/skills/skill-compose-gmail/tsconfig.json +0 -14
- package/skills/skill-context7/LICENSE +0 -21
- package/skills/skill-context7/README.md +0 -27
- package/skills/skill-context7/SKILL.md +0 -103
- package/skills/skill-context7/install.sh +0 -112
- package/skills/skill-context7/package.json +0 -31
- package/skills/skill-context7/src/auth.ts +0 -49
- package/skills/skill-context7/src/installer.ts +0 -324
- package/skills/skill-context7/src/skill-install.ts +0 -174
- package/skills/skill-crawl/LICENSE +0 -21
- package/skills/skill-crawl/README.md +0 -17
- package/skills/skill-crawl/install.sh +0 -112
- package/skills/skill-crawl/package.json +0 -31
- package/skills/skill-crawl/src/auth.ts +0 -49
- package/skills/skill-crawl/src/installer.ts +0 -324
- package/skills/skill-crawl/src/skill-install.ts +0 -205
- package/skills/skill-csv-transformer/CLAUDE.md +0 -19
- package/skills/skill-csv-transformer/package.json +0 -32
- package/skills/skill-csv-transformer/src/index.ts +0 -81
- package/skills/skill-csv-transformer/tsconfig.json +0 -14
- package/skills/skill-debug/LICENSE +0 -21
- package/skills/skill-debug/README.md +0 -17
- package/skills/skill-debug/install.sh +0 -112
- package/skills/skill-debug/package.json +0 -31
- package/skills/skill-debug/src/auth.ts +0 -49
- package/skills/skill-debug/src/installer.ts +0 -324
- package/skills/skill-debug/src/skill-install.ts +0 -205
- package/skills/skill-deep-research/CLAUDE.md +0 -19
- package/skills/skill-deep-research/package.json +0 -32
- package/skills/skill-deep-research/src/index.ts +0 -1149
- package/skills/skill-deep-research/tsconfig.json +0 -14
- package/skills/skill-dns-manager/CLAUDE.md +0 -19
- package/skills/skill-dns-manager/package.json +0 -32
- package/skills/skill-dns-manager/src/index.ts +0 -92
- package/skills/skill-dns-manager/tsconfig.json +0 -14
- package/skills/skill-download/LICENSE +0 -21
- package/skills/skill-download/README.md +0 -17
- package/skills/skill-download/install.sh +0 -112
- package/skills/skill-download/package.json +0 -31
- package/skills/skill-download/src/auth.ts +0 -49
- package/skills/skill-download/src/installer.ts +0 -324
- package/skills/skill-download/src/skill-install.ts +0 -205
- package/skills/skill-exa/LICENSE +0 -21
- package/skills/skill-exa/README.md +0 -26
- package/skills/skill-exa/SKILL.md +0 -92
- package/skills/skill-exa/install.sh +0 -112
- package/skills/skill-exa/package.json +0 -31
- package/skills/skill-exa/src/auth.ts +0 -49
- package/skills/skill-exa/src/installer.ts +0 -324
- package/skills/skill-exa/src/skill-install.ts +0 -174
- package/skills/skill-filesearch/LICENSE +0 -21
- package/skills/skill-filesearch/README.md +0 -17
- package/skills/skill-filesearch/install.sh +0 -112
- package/skills/skill-filesearch/package.json +0 -31
- package/skills/skill-filesearch/src/auth.ts +0 -49
- package/skills/skill-filesearch/src/installer.ts +0 -324
- package/skills/skill-filesearch/src/skill-install.ts +0 -205
- package/skills/skill-fill/LICENSE +0 -21
- package/skills/skill-fill/README.md +0 -17
- package/skills/skill-fill/install.sh +0 -112
- package/skills/skill-fill/package.json +0 -31
- package/skills/skill-fill/src/auth.ts +0 -49
- package/skills/skill-fill/src/installer.ts +0 -324
- package/skills/skill-fill/src/skill-install.ts +0 -205
- package/skills/skill-generate-audio/CLAUDE.md +0 -3
- package/skills/skill-generate-audio/SKILL.md +0 -53
- package/skills/skill-generate-audio/package.json +0 -30
- package/skills/skill-generate-audio/src/index.ts +0 -656
- package/skills/skill-generate-audio/tsconfig.json +0 -18
- package/skills/skill-generate-readme/CLAUDE.md +0 -19
- package/skills/skill-generate-readme/package.json +0 -32
- package/skills/skill-generate-readme/src/index.ts +0 -867
- package/skills/skill-generate-readme/tsconfig.json +0 -14
- package/skills/skill-generate-slides/CLAUDE.md +0 -19
- package/skills/skill-generate-slides/package.json +0 -32
- package/skills/skill-generate-slides/src/ai.ts +0 -140
- package/skills/skill-generate-slides/src/cli.ts +0 -161
- package/skills/skill-generate-slides/src/export.ts +0 -65
- package/skills/skill-generate-slides/src/index.ts +0 -1417
- package/skills/skill-generate-slides/src/layout.ts +0 -31
- package/skills/skill-generate-slides/src/parse.ts +0 -282
- package/skills/skill-generate-slides/src/render.ts +0 -711
- package/skills/skill-generate-slides/tsconfig.json +0 -14
- package/skills/skill-get-api-docs/CLAUDE.md +0 -19
- package/skills/skill-get-api-docs/package.json +0 -32
- package/skills/skill-get-api-docs/src/index.ts +0 -1176
- package/skills/skill-get-api-docs/tsconfig.json +0 -14
- package/skills/skill-googledrive/LICENSE +0 -21
- package/skills/skill-googledrive/README.md +0 -27
- package/skills/skill-googledrive/SKILL.md +0 -140
- package/skills/skill-googledrive/install.sh +0 -112
- package/skills/skill-googledrive/package.json +0 -31
- package/skills/skill-googledrive/src/auth.ts +0 -49
- package/skills/skill-googledrive/src/installer.ts +0 -324
- package/skills/skill-googledrive/src/skill-install.ts +0 -174
- package/skills/skill-grant-compliance-scanner/CLAUDE.md +0 -19
- package/skills/skill-grant-compliance-scanner/package.json +0 -32
- package/skills/skill-grant-compliance-scanner/src/index.ts +0 -94
- package/skills/skill-grant-compliance-scanner/tsconfig.json +0 -14
- package/skills/skill-hubsearch/LICENSE +0 -21
- package/skills/skill-hubsearch/README.md +0 -17
- package/skills/skill-hubsearch/install.sh +0 -112
- package/skills/skill-hubsearch/package.json +0 -31
- package/skills/skill-hubsearch/src/auth.ts +0 -49
- package/skills/skill-hubsearch/src/installer.ts +0 -324
- package/skills/skill-hubsearch/src/skill-install.ts +0 -205
- package/skills/skill-implementation-architecture/CLAUDE.md +0 -19
- package/skills/skill-implementation-architecture/package.json +0 -32
- package/skills/skill-implementation-architecture/src/index.ts +0 -460
- package/skills/skill-implementation-architecture/tsconfig.json +0 -14
- package/skills/skill-implementation-audit/CLAUDE.md +0 -19
- package/skills/skill-implementation-audit/package.json +0 -32
- package/skills/skill-implementation-audit/src/index.ts +0 -502
- package/skills/skill-implementation-audit/tsconfig.json +0 -14
- package/skills/skill-implementation-cost/CLAUDE.md +0 -19
- package/skills/skill-implementation-cost/package.json +0 -32
- package/skills/skill-implementation-cost/src/index.ts +0 -873
- package/skills/skill-implementation-cost/tsconfig.json +0 -14
- package/skills/skill-implementation-dispatch/CLAUDE.md +0 -19
- package/skills/skill-implementation-dispatch/package.json +0 -32
- package/skills/skill-implementation-dispatch/src/index.ts +0 -390
- package/skills/skill-implementation-dispatch/tsconfig.json +0 -14
- package/skills/skill-implementation-hook/CLAUDE.md +0 -19
- package/skills/skill-implementation-hook/package.json +0 -32
- package/skills/skill-implementation-hook/src/index.ts +0 -787
- package/skills/skill-implementation-hook/tsconfig.json +0 -14
- package/skills/skill-implementation-index/CLAUDE.md +0 -19
- package/skills/skill-implementation-index/package.json +0 -32
- package/skills/skill-implementation-index/src/index.ts +0 -767
- package/skills/skill-implementation-index/tsconfig.json +0 -14
- package/skills/skill-implementation-init/CLAUDE.md +0 -19
- package/skills/skill-implementation-init/package.json +0 -32
- package/skills/skill-implementation-init/src/index.ts +0 -378
- package/skills/skill-implementation-init/tsconfig.json +0 -14
- package/skills/skill-implementation-memento/CLAUDE.md +0 -19
- package/skills/skill-implementation-memento/package.json +0 -32
- package/skills/skill-implementation-memento/src/index.ts +0 -442
- package/skills/skill-implementation-memento/tsconfig.json +0 -14
- package/skills/skill-linear/LICENSE +0 -21
- package/skills/skill-linear/README.md +0 -28
- package/skills/skill-linear/SKILL.md +0 -94
- package/skills/skill-linear/install.sh +0 -112
- package/skills/skill-linear/package.json +0 -31
- package/skills/skill-linear/src/auth.ts +0 -49
- package/skills/skill-linear/src/installer.ts +0 -324
- package/skills/skill-linear/src/skill-install.ts +0 -174
- package/skills/skill-mail/LICENSE +0 -21
- package/skills/skill-mail/README.md +0 -17
- package/skills/skill-mail/install.sh +0 -112
- package/skills/skill-mail/package.json +0 -31
- package/skills/skill-mail/src/auth.ts +0 -49
- package/skills/skill-mail/src/installer.ts +0 -324
- package/skills/skill-mail/src/skill-install.ts +0 -205
- package/skills/skill-manage-gmail/CLAUDE.md +0 -19
- package/skills/skill-manage-gmail/package.json +0 -32
- package/skills/skill-manage-gmail/src/index.ts +0 -504
- package/skills/skill-manage-gmail/tsconfig.json +0 -14
- package/skills/skill-merch-mockup-factory/CLAUDE.md +0 -19
- package/skills/skill-merch-mockup-factory/package.json +0 -32
- package/skills/skill-merch-mockup-factory/src/index.ts +0 -296
- package/skills/skill-merch-mockup-factory/tsconfig.json +0 -14
- package/skills/skill-message/LICENSE +0 -21
- package/skills/skill-message/README.md +0 -17
- package/skills/skill-message/install.sh +0 -112
- package/skills/skill-message/package.json +0 -31
- package/skills/skill-message/src/auth.ts +0 -49
- package/skills/skill-message/src/installer.ts +0 -324
- package/skills/skill-message/src/skill-install.ts +0 -205
- package/skills/skill-newsletter-campaign-planner/CLAUDE.md +0 -19
- package/skills/skill-newsletter-campaign-planner/package.json +0 -32
- package/skills/skill-newsletter-campaign-planner/src/index.ts +0 -252
- package/skills/skill-newsletter-campaign-planner/tsconfig.json +0 -14
- package/skills/skill-notify/LICENSE +0 -21
- package/skills/skill-notify/README.md +0 -17
- package/skills/skill-notify/install.sh +0 -112
- package/skills/skill-notify/package.json +0 -31
- package/skills/skill-notify/src/auth.ts +0 -49
- package/skills/skill-notify/src/installer.ts +0 -324
- package/skills/skill-notify/src/skill-install.ts +0 -205
- package/skills/skill-notion/LICENSE +0 -21
- package/skills/skill-notion/README.md +0 -27
- package/skills/skill-notion/SKILL.md +0 -115
- package/skills/skill-notion/install.sh +0 -112
- package/skills/skill-notion/package.json +0 -31
- package/skills/skill-notion/src/auth.ts +0 -49
- package/skills/skill-notion/src/installer.ts +0 -324
- package/skills/skill-notion/src/skill-install.ts +0 -174
- package/skills/skill-parse-pdf/CLAUDE.md +0 -19
- package/skills/skill-parse-pdf/package.json +0 -32
- package/skills/skill-parse-pdf/src/index.ts +0 -581
- package/skills/skill-parse-pdf/tsconfig.json +0 -14
- package/skills/skill-playwright/LICENSE +0 -21
- package/skills/skill-playwright/README.md +0 -27
- package/skills/skill-playwright/SKILL.md +0 -116
- package/skills/skill-playwright/install.sh +0 -112
- package/skills/skill-playwright/package.json +0 -31
- package/skills/skill-playwright/src/auth.ts +0 -49
- package/skills/skill-playwright/src/installer.ts +0 -324
- package/skills/skill-playwright/src/skill-install.ts +0 -174
- package/skills/skill-projectbuild/LICENSE +0 -21
- package/skills/skill-projectbuild/README.md +0 -17
- package/skills/skill-projectbuild/install.sh +0 -112
- package/skills/skill-projectbuild/package.json +0 -31
- package/skills/skill-projectbuild/src/auth.ts +0 -49
- package/skills/skill-projectbuild/src/installer.ts +0 -324
- package/skills/skill-projectbuild/src/skill-install.ts +0 -205
- package/skills/skill-read-gmail/CLAUDE.md +0 -19
- package/skills/skill-read-gmail/package.json +0 -32
- package/skills/skill-read-gmail/src/index.ts +0 -343
- package/skills/skill-read-gmail/tsconfig.json +0 -14
- package/skills/skill-remember/LICENSE +0 -21
- package/skills/skill-remember/README.md +0 -17
- package/skills/skill-remember/install.sh +0 -112
- package/skills/skill-remember/package.json +0 -31
- package/skills/skill-remember/src/auth.ts +0 -49
- package/skills/skill-remember/src/installer.ts +0 -324
- package/skills/skill-remember/src/skill-install.ts +0 -205
- package/skills/skill-schedule/README.md +0 -17
- package/skills/skill-schedule/install.sh +0 -112
- package/skills/skill-schedule/src/auth.ts +0 -49
- package/skills/skill-schedule/src/installer.ts +0 -324
- package/skills/skill-schedule/src/skill-install.ts +0 -205
- package/skills/skill-search/LICENSE +0 -21
- package/skills/skill-search/README.md +0 -17
- package/skills/skill-search/install.sh +0 -112
- package/skills/skill-search/package.json +0 -31
- package/skills/skill-search/src/auth.ts +0 -49
- package/skills/skill-search/src/installer.ts +0 -324
- package/skills/skill-search/src/skill-install.ts +0 -205
- package/skills/skill-shadcn/LICENSE +0 -21
- package/skills/skill-shadcn/README.md +0 -27
- package/skills/skill-shadcn/SKILL.md +0 -113
- package/skills/skill-shadcn/install.sh +0 -112
- package/skills/skill-shadcn/package.json +0 -31
- package/skills/skill-shadcn/src/auth.ts +0 -49
- package/skills/skill-shadcn/src/installer.ts +0 -324
- package/skills/skill-shadcn/src/skill-install.ts +0 -174
- package/skills/skill-shadcn-theme/CLAUDE.md +0 -19
- package/skills/skill-shadcn-theme/package.json +0 -32
- package/skills/skill-shadcn-theme/src/index.ts +0 -16
- package/skills/skill-shadcn-theme/tsconfig.json +0 -14
- package/skills/skill-social-template-kit/CLAUDE.md +0 -19
- package/skills/skill-social-template-kit/package.json +0 -32
- package/skills/skill-social-template-kit/src/index.ts +0 -303
- package/skills/skill-social-template-kit/tsconfig.json +0 -14
- package/skills/skill-summarize/LICENSE +0 -21
- package/skills/skill-summarize/README.md +0 -17
- package/skills/skill-summarize/install.sh +0 -112
- package/skills/skill-summarize/package.json +0 -31
- package/skills/skill-summarize/src/auth.ts +0 -49
- package/skills/skill-summarize/src/installer.ts +0 -324
- package/skills/skill-summarize/src/skill-install.ts +0 -205
- package/skills/skill-sync/LICENSE +0 -21
- package/skills/skill-sync/README.md +0 -17
- package/skills/skill-sync/install.sh +0 -112
- package/skills/skill-sync/package.json +0 -31
- package/skills/skill-sync/src/auth.ts +0 -49
- package/skills/skill-sync/src/installer.ts +0 -324
- package/skills/skill-sync/src/skill-install.ts +0 -205
- package/skills/skill-time-blocking-orchestrator/CLAUDE.md +0 -19
- package/skills/skill-time-blocking-orchestrator/package.json +0 -32
- package/skills/skill-time-blocking-orchestrator/src/index.ts +0 -328
- package/skills/skill-time-blocking-orchestrator/tsconfig.json +0 -14
- package/skills/skill-transform/.env.example +0 -2
- package/skills/skill-transform/LICENSE +0 -21
- package/skills/skill-transform/README.md +0 -17
- package/skills/skill-transform/SKILL.md +0 -127
- package/skills/skill-transform/install.sh +0 -112
- package/skills/skill-transform/package.json +0 -37
- package/skills/skill-transform/src/auth.ts +0 -49
- package/skills/skill-transform/src/http-client.ts +0 -128
- package/skills/skill-transform/src/index-http.ts +0 -111
- package/skills/skill-transform/src/index-local.ts +0 -368
- package/skills/skill-transform/src/index.ts +0 -111
- package/skills/skill-transform/src/installer.ts +0 -324
- package/skills/skill-transform/src/skill-install.ts +0 -205
- package/skills/skill-transform/src/transformers/ai-transformer.ts +0 -202
- package/skills/skill-transform/src/transformers/format-detector.ts +0 -147
- package/skills/skill-transform/src/types.ts +0 -95
- package/skills/skill-transform/tsconfig.json +0 -18
- package/skills/skill-translate/LICENSE +0 -21
- package/skills/skill-translate/README.md +0 -17
- package/skills/skill-translate/install.sh +0 -112
- package/skills/skill-translate/package.json +0 -31
- package/skills/skill-translate/src/auth.ts +0 -49
- package/skills/skill-translate/src/installer.ts +0 -324
- package/skills/skill-translate/src/skill-install.ts +0 -205
- package/skills/skill-vendor-comparison-coach/CLAUDE.md +0 -19
- package/skills/skill-vendor-comparison-coach/package.json +0 -32
- package/skills/skill-vendor-comparison-coach/src/index.ts +0 -337
- package/skills/skill-vendor-comparison-coach/tsconfig.json +0 -14
- package/skills/skill-videodownload/.env.example +0 -5
- package/skills/skill-videodownload/CLAUDE.md +0 -64
- package/skills/skill-videodownload/LICENSE +0 -21
- package/skills/skill-videodownload/README.md +0 -166
- package/skills/skill-videodownload/package.json +0 -49
- package/skills/skill-videodownload/src/commands/config.ts +0 -89
- package/skills/skill-videodownload/src/commands/download.ts +0 -61
- package/skills/skill-videodownload/src/commands/info.ts +0 -83
- package/skills/skill-videodownload/src/commands/list.ts +0 -84
- package/skills/skill-videodownload/src/lib/downloader.ts +0 -270
- package/skills/skill-videodownload/src/lib/storage.ts +0 -167
- package/skills/skill-videodownload/src/types/index.ts +0 -64
- package/skills/skill-videodownload/src/utils/logger.ts +0 -49
- package/skills/skill-videodownload/src/utils/paths.ts +0 -94
- package/skills/skill-videodownload/tsconfig.json +0 -17
- package/skills/skill-voiceover/.env.example +0 -5
- package/skills/skill-voiceover/CLAUDE.md +0 -40
- package/skills/skill-voiceover/LICENSE +0 -21
- package/skills/skill-voiceover/README.md +0 -64
- package/skills/skill-voiceover/package.json +0 -43
- package/skills/skill-voiceover/src/commands/config.ts +0 -38
- package/skills/skill-voiceover/src/commands/generate.ts +0 -37
- package/skills/skill-voiceover/src/commands/voices.ts +0 -33
- package/skills/skill-voiceover/src/lib/generator.ts +0 -159
- package/skills/skill-voiceover/src/lib/storage.ts +0 -55
- package/skills/skill-voiceover/src/types/index.ts +0 -55
- package/skills/skill-voiceover/src/utils/logger.ts +0 -30
- package/skills/skill-voiceover/src/utils/paths.ts +0 -22
- package/skills/skill-voiceover/tsconfig.json +0 -17
- package/skills/skill-websearch/LICENSE +0 -21
- package/skills/skill-websearch/README.md +0 -17
- package/skills/skill-websearch/install.sh +0 -112
- package/skills/skill-websearch/package.json +0 -31
- package/skills/skill-websearch/src/auth.ts +0 -49
- package/skills/skill-websearch/src/installer.ts +0 -324
- package/skills/skill-websearch/src/skill-install.ts +0 -205
- /package/skills/{skill-compose-gmail → skill-gmail}/CLAUDE.md +0 -0
- /package/skills/{skill-compose-gmail → skill-gmail}/package.json +0 -0
- /package/skills/{skill-compose-gmail → skill-gmail}/src/index.ts +0 -0
- /package/skills/{skill-architecture-docs → skill-gmail}/tsconfig.json +0 -0
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Skill Installation Handler
|
|
3
|
-
*
|
|
4
|
-
* Add this code to your skill's index.ts to enable:
|
|
5
|
-
* skill-[name] install claude
|
|
6
|
-
* skill-[name] install codex
|
|
7
|
-
* skill-[name] uninstall claude
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import { writeFileSync, mkdirSync, existsSync } from 'fs';
|
|
11
|
-
import { join } from 'path';
|
|
12
|
-
import { homedir } from 'os';
|
|
13
|
-
|
|
14
|
-
interface SkillMeta {
|
|
15
|
-
name: string;
|
|
16
|
-
description: string;
|
|
17
|
-
version: string;
|
|
18
|
-
commands: string; // Help text or command list
|
|
19
|
-
requiredEnvVars?: string[];
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
export async function handleInstallCommand(meta: SkillMeta, args: string[]): Promise<boolean> {
|
|
23
|
-
const command = args[0];
|
|
24
|
-
const assistant = args[1];
|
|
25
|
-
|
|
26
|
-
if (command !== 'install' && command !== 'uninstall') {
|
|
27
|
-
return false; // Not an install command
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
if (!assistant || !['claude', 'codex', 'windsurf', 'cursor'].includes(assistant)) {
|
|
31
|
-
console.error('❌ Error: Please specify an assistant');
|
|
32
|
-
console.error('');
|
|
33
|
-
console.error('Usage:');
|
|
34
|
-
console.error(` ${meta.name} install [claude|codex|windsurf|cursor]`);
|
|
35
|
-
console.error(` ${meta.name} uninstall [claude|codex|windsurf|cursor]`);
|
|
36
|
-
console.error('');
|
|
37
|
-
console.error('Examples:');
|
|
38
|
-
console.error(` ${meta.name} install claude`);
|
|
39
|
-
console.error(` ${meta.name} install codex`);
|
|
40
|
-
process.exit(1);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
if (command === 'install') {
|
|
44
|
-
await installSkill(meta, assistant);
|
|
45
|
-
} else {
|
|
46
|
-
await uninstallSkill(meta, assistant);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
return true;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
async function installSkill(meta: SkillMeta, assistant: string): Promise<void> {
|
|
53
|
-
console.log(`📦 Installing ${meta.name} for ${assistant}...`);
|
|
54
|
-
console.log('');
|
|
55
|
-
|
|
56
|
-
const assistantPaths: Record<string, string> = {
|
|
57
|
-
claude: '.claude/skills',
|
|
58
|
-
codex: '.codex/skills',
|
|
59
|
-
windsurf: '.windsurf/skills',
|
|
60
|
-
cursor: '.cursor/skills',
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
const skillDir = join(homedir(), assistantPaths[assistant], meta.name);
|
|
64
|
-
mkdirSync(skillDir, { recursive: true });
|
|
65
|
-
console.log(`✓ Created: ${skillDir}`);
|
|
66
|
-
|
|
67
|
-
// Generate SKILL.md
|
|
68
|
-
const skillMd = generateSkillMd(meta);
|
|
69
|
-
writeFileSync(join(skillDir, 'SKILL.md'), skillMd);
|
|
70
|
-
console.log(`✓ Created: SKILL.md`);
|
|
71
|
-
|
|
72
|
-
// Generate README.md
|
|
73
|
-
const readme = generateReadme(meta);
|
|
74
|
-
writeFileSync(join(skillDir, 'README.md'), readme);
|
|
75
|
-
console.log(`✓ Created: README.md`);
|
|
76
|
-
|
|
77
|
-
// Create log file
|
|
78
|
-
const logFile = join(skillDir, `${meta.name}.log`);
|
|
79
|
-
if (!existsSync(logFile)) {
|
|
80
|
-
writeFileSync(logFile, `# ${meta.name} execution log\n# Created: ${new Date().toISOString()}\n\n`);
|
|
81
|
-
console.log(`✓ Created: ${meta.name}.log`);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
console.log('');
|
|
85
|
-
console.log(`✅ ${meta.name} installed successfully!`);
|
|
86
|
-
console.log('');
|
|
87
|
-
console.log('Location:', skillDir);
|
|
88
|
-
console.log('');
|
|
89
|
-
console.log('Files created:');
|
|
90
|
-
console.log(' - SKILL.md (documentation)');
|
|
91
|
-
console.log(' - README.md (quick reference)');
|
|
92
|
-
console.log(` - ${meta.name}.log (execution logs)`);
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
async function uninstallSkill(meta: SkillMeta, assistant: string): Promise<void> {
|
|
96
|
-
console.log(`🗑️ Uninstalling ${meta.name} from ${assistant}...`);
|
|
97
|
-
console.log('');
|
|
98
|
-
|
|
99
|
-
const assistantPaths: Record<string, string> = {
|
|
100
|
-
claude: '.claude/skills',
|
|
101
|
-
codex: '.codex/skills',
|
|
102
|
-
windsurf: '.windsurf/skills',
|
|
103
|
-
cursor: '.cursor/skills',
|
|
104
|
-
};
|
|
105
|
-
|
|
106
|
-
const skillDir = join(homedir(), assistantPaths[assistant], meta.name);
|
|
107
|
-
|
|
108
|
-
if (existsSync(skillDir)) {
|
|
109
|
-
console.log(`⚠️ Directory preserved: ${skillDir}`);
|
|
110
|
-
console.log(' (contains logs and configuration)');
|
|
111
|
-
console.log(' Delete manually if needed:');
|
|
112
|
-
console.log(` rm -rf ${skillDir}`);
|
|
113
|
-
} else {
|
|
114
|
-
console.log(`✓ ${meta.name} is not installed for ${assistant}`);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
function generateSkillMd(meta: SkillMeta): string {
|
|
119
|
-
// Extract skill type from name (e.g., "skill-audio" -> "audio")
|
|
120
|
-
const skillType = meta.name.replace('skill-', '');
|
|
121
|
-
|
|
122
|
-
// Create gerund form for description trigger (e.g., "audio" -> "generating audio")
|
|
123
|
-
const gerundForms: Record<string, string> = {
|
|
124
|
-
audio: 'generating audio',
|
|
125
|
-
image: 'generating images',
|
|
126
|
-
video: 'generating videos',
|
|
127
|
-
browse: 'browsing websites',
|
|
128
|
-
codefix: 'fixing code',
|
|
129
|
-
convert: 'converting files',
|
|
130
|
-
deploy: 'deploying applications',
|
|
131
|
-
emoji: 'generating emojis',
|
|
132
|
-
extract: 'extracting data',
|
|
133
|
-
transcript: 'transcribing audio',
|
|
134
|
-
transform: 'transforming data',
|
|
135
|
-
write: 'writing content',
|
|
136
|
-
};
|
|
137
|
-
|
|
138
|
-
const gerund = gerundForms[skillType] || `using ${skillType}`;
|
|
139
|
-
|
|
140
|
-
// Enhanced description with usage triggers
|
|
141
|
-
const enhancedDesc = `${meta.description}. Use when ${gerund} or when the user mentions ${skillType}.`;
|
|
142
|
-
|
|
143
|
-
const envSection = meta.requiredEnvVars?.length ? `
|
|
144
|
-
|
|
145
|
-
## Environment Variables
|
|
146
|
-
|
|
147
|
-
${meta.requiredEnvVars.map(v => `- \`${v}\``).join('\n')}
|
|
148
|
-
|
|
149
|
-
Add to your \`~/.zshrc\` or \`~/.bashrc\`:
|
|
150
|
-
\`\`\`bash
|
|
151
|
-
${meta.requiredEnvVars.map(v => `export ${v}=your_key_here`).join('\n')}
|
|
152
|
-
\`\`\`
|
|
153
|
-
` : '';
|
|
154
|
-
|
|
155
|
-
return `---
|
|
156
|
-
name: ${meta.name}
|
|
157
|
-
description: ${enhancedDesc}
|
|
158
|
-
---
|
|
159
|
-
|
|
160
|
-
# ${meta.name.split('-').map(w => w.charAt(0).toUpperCase() + w.slice(1)).join(' ')}
|
|
161
|
-
|
|
162
|
-
${meta.description}
|
|
163
|
-
|
|
164
|
-
## Quick Start
|
|
165
|
-
|
|
166
|
-
\`\`\`bash
|
|
167
|
-
${meta.commands}
|
|
168
|
-
\`\`\`
|
|
169
|
-
|
|
170
|
-
## Version
|
|
171
|
-
|
|
172
|
-
${meta.version}${envSection}
|
|
173
|
-
|
|
174
|
-
## Installation
|
|
175
|
-
|
|
176
|
-
Installed at: \`~/.claude/skills/${meta.name}/\`
|
|
177
|
-
|
|
178
|
-
## Logs
|
|
179
|
-
|
|
180
|
-
Execution logs: \`~/.claude/skills/${meta.name}/${meta.name}.log\`
|
|
181
|
-
|
|
182
|
-
## Support
|
|
183
|
-
|
|
184
|
-
For issues, visit: https://github.com/hasnaxyz/${meta.name}/issues
|
|
185
|
-
`;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
function generateReadme(meta: SkillMeta): string {
|
|
189
|
-
return `# ${meta.name}
|
|
190
|
-
|
|
191
|
-
${meta.description}
|
|
192
|
-
|
|
193
|
-
**Version:** ${meta.version}
|
|
194
|
-
|
|
195
|
-
## Documentation
|
|
196
|
-
|
|
197
|
-
See [SKILL.md](./SKILL.md) for complete documentation.
|
|
198
|
-
|
|
199
|
-
## Quick Reference
|
|
200
|
-
|
|
201
|
-
\`\`\`bash
|
|
202
|
-
${meta.name} --help
|
|
203
|
-
\`\`\`
|
|
204
|
-
`;
|
|
205
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2022",
|
|
4
|
-
"module": "ES2022",
|
|
5
|
-
"moduleResolution": "bundler",
|
|
6
|
-
"esModuleInterop": true,
|
|
7
|
-
"strict": true,
|
|
8
|
-
"skipLibCheck": true,
|
|
9
|
-
"outDir": "dist",
|
|
10
|
-
"declaration": true,
|
|
11
|
-
"types": ["bun-types"]
|
|
12
|
-
},
|
|
13
|
-
"include": ["src/**/*", "bin/**/*"]
|
|
14
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 Hasna
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# skill-context7
|
|
2
|
-
|
|
3
|
-
Access up-to-date library documentation and code examples
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
This Skill provides access to curated, current documentation for programming libraries and frameworks through Context7's documentation database.
|
|
8
|
-
|
|
9
|
-
## MCP Server
|
|
10
|
-
|
|
11
|
-
Uses the Context7 MCP server for documentation retrieval.
|
|
12
|
-
|
|
13
|
-
Connection: NPM package `@upstash/context7-mcp`
|
|
14
|
-
|
|
15
|
-
## Usage
|
|
16
|
-
|
|
17
|
-
This Skill is automatically invoked by Claude Code when looking up library documentation.
|
|
18
|
-
|
|
19
|
-
Example requests:
|
|
20
|
-
- "How do I use React's useEffect?"
|
|
21
|
-
- "Show me FastAPI authentication examples"
|
|
22
|
-
- "What are Next.js 14 best practices?"
|
|
23
|
-
- "Give me Pandas DataFrame examples"
|
|
24
|
-
|
|
25
|
-
## Setup
|
|
26
|
-
|
|
27
|
-
No API key required - Context7 is free and open.
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: skill-context7
|
|
3
|
-
description: Access up-to-date library documentation and code examples. Get current API references, usage examples, and best practices for any programming library or framework. Use when working with external libraries or needing documentation.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Context7 Documentation Skill
|
|
7
|
-
|
|
8
|
-
## What this Skill does
|
|
9
|
-
|
|
10
|
-
This Skill provides access to up-to-date documentation and code examples for programming libraries and frameworks through Context7's curated documentation database.
|
|
11
|
-
|
|
12
|
-
## When to use this Skill
|
|
13
|
-
|
|
14
|
-
Use this Skill when you need to:
|
|
15
|
-
- Look up current library documentation
|
|
16
|
-
- Find code examples for specific APIs
|
|
17
|
-
- Learn best practices for frameworks
|
|
18
|
-
- Get usage examples for library features
|
|
19
|
-
- Understand API signatures and parameters
|
|
20
|
-
- Find integration guides and tutorials
|
|
21
|
-
- Access documentation for multiple library versions
|
|
22
|
-
|
|
23
|
-
## MCP Server Connection
|
|
24
|
-
|
|
25
|
-
The Context7 MCP server provides access to curated library documentation.
|
|
26
|
-
|
|
27
|
-
```json
|
|
28
|
-
{
|
|
29
|
-
"context7": {
|
|
30
|
-
"command": "npx",
|
|
31
|
-
"args": ["-y", "@upstash/context7-mcp@latest"]
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
**No API key required** - Context7 is free and open
|
|
37
|
-
|
|
38
|
-
## Available Operations
|
|
39
|
-
|
|
40
|
-
The Context7 MCP server provides tools for:
|
|
41
|
-
|
|
42
|
-
- **Library Search**: Find libraries by name or functionality
|
|
43
|
-
- **Documentation Retrieval**: Get API docs and guides
|
|
44
|
-
- **Code Examples**: Access practical usage examples
|
|
45
|
-
- **Version Support**: View docs for specific versions
|
|
46
|
-
- **Best Practices**: Learn recommended patterns
|
|
47
|
-
- **Integration Guides**: Step-by-step setup instructions
|
|
48
|
-
|
|
49
|
-
## Supported Libraries
|
|
50
|
-
|
|
51
|
-
Context7 covers popular libraries across:
|
|
52
|
-
- **JavaScript/TypeScript**: React, Next.js, Express, Vue, etc.
|
|
53
|
-
- **Python**: FastAPI, Django, Flask, Pandas, etc.
|
|
54
|
-
- **Go**: Gin, Echo, GORM, etc.
|
|
55
|
-
- **Rust**: Actix, Tokio, Diesel, etc.
|
|
56
|
-
- **And many more**: Database drivers, cloud SDKs, utilities
|
|
57
|
-
|
|
58
|
-
## Documentation Modes
|
|
59
|
-
|
|
60
|
-
Context7 provides two search modes:
|
|
61
|
-
- **Code Mode** (default): API references and code examples
|
|
62
|
-
- **Info Mode**: Conceptual guides and narrative documentation
|
|
63
|
-
|
|
64
|
-
## Examples
|
|
65
|
-
|
|
66
|
-
### Example 1: API reference lookup
|
|
67
|
-
"How do I use React's useEffect hook?"
|
|
68
|
-
→ Claude retrieves current useEffect documentation and examples
|
|
69
|
-
|
|
70
|
-
### Example 2: Library integration
|
|
71
|
-
"Show me how to set up FastAPI with PostgreSQL"
|
|
72
|
-
→ Claude fetches integration guide and code examples
|
|
73
|
-
|
|
74
|
-
### Example 3: Best practices
|
|
75
|
-
"What are the best practices for Next.js data fetching?"
|
|
76
|
-
→ Claude finds recommended patterns and examples
|
|
77
|
-
|
|
78
|
-
### Example 4: Version-specific docs
|
|
79
|
-
"How do I use React Server Components in Next.js 14?"
|
|
80
|
-
→ Claude retrieves version-specific documentation
|
|
81
|
-
|
|
82
|
-
### Example 5: Code examples
|
|
83
|
-
"Give me examples of using Pandas groupby with aggregation"
|
|
84
|
-
→ Claude provides practical code examples
|
|
85
|
-
|
|
86
|
-
## Best practices
|
|
87
|
-
|
|
88
|
-
- Specify the library and feature you need help with
|
|
89
|
-
- Mention version numbers if working with specific releases
|
|
90
|
-
- Ask for code examples when learning new APIs
|
|
91
|
-
- Use for discovering best practices and patterns
|
|
92
|
-
- Leverage for integration and setup guides
|
|
93
|
-
- Reference when working with unfamiliar libraries
|
|
94
|
-
|
|
95
|
-
## Integration Notes
|
|
96
|
-
|
|
97
|
-
The Context7 MCP server automatically handles:
|
|
98
|
-
- Library name resolution
|
|
99
|
-
- Version matching
|
|
100
|
-
- Documentation retrieval
|
|
101
|
-
- Code example extraction
|
|
102
|
-
- Best practice identification
|
|
103
|
-
- Multi-library comparisons
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
|
|
3
|
-
# Install script for skills
|
|
4
|
-
# Installs the skill either globally for Claude Code or locally in a project
|
|
5
|
-
|
|
6
|
-
set -e
|
|
7
|
-
|
|
8
|
-
SKILL_NAME="$(basename "$(pwd)")"
|
|
9
|
-
SKILL_PATH="$(pwd)"
|
|
10
|
-
|
|
11
|
-
echo "📦 Installing $SKILL_NAME..."
|
|
12
|
-
echo ""
|
|
13
|
-
|
|
14
|
-
# Check if Claude Code is installed
|
|
15
|
-
if ! command -v claude &> /dev/null; then
|
|
16
|
-
echo "⚠️ Claude Code not found in PATH"
|
|
17
|
-
echo " Please install Claude Code first: https://claude.com/claude-code"
|
|
18
|
-
exit 1
|
|
19
|
-
fi
|
|
20
|
-
|
|
21
|
-
# Check if we're in a git repository
|
|
22
|
-
if git rev-parse --git-dir > /dev/null 2>&1; then
|
|
23
|
-
IN_REPO=true
|
|
24
|
-
REPO_ROOT="$(git rev-parse --show-toplevel)"
|
|
25
|
-
echo "📁 Detected git repository: $REPO_ROOT"
|
|
26
|
-
else
|
|
27
|
-
IN_REPO=false
|
|
28
|
-
echo "📁 Not in a git repository"
|
|
29
|
-
fi
|
|
30
|
-
|
|
31
|
-
# Ask installation type
|
|
32
|
-
echo ""
|
|
33
|
-
echo "Where would you like to install this skill?"
|
|
34
|
-
if [ "$IN_REPO" = true ]; then
|
|
35
|
-
echo " 1) Locally (this repository only)"
|
|
36
|
-
echo " 2) Globally (all Claude Code sessions)"
|
|
37
|
-
read -p "Choose [1/2]: " choice
|
|
38
|
-
else
|
|
39
|
-
echo " Installing globally (not in a git repository)"
|
|
40
|
-
choice=2
|
|
41
|
-
fi
|
|
42
|
-
|
|
43
|
-
# Install function
|
|
44
|
-
install_skill() {
|
|
45
|
-
local config_dir=$1
|
|
46
|
-
local config_file="$config_dir/claude_mcp_config.json"
|
|
47
|
-
|
|
48
|
-
# Create config directory if it doesn't exist
|
|
49
|
-
mkdir -p "$config_dir"
|
|
50
|
-
|
|
51
|
-
# Create or update config file
|
|
52
|
-
if [ ! -f "$config_file" ]; then
|
|
53
|
-
echo "{" > "$config_file"
|
|
54
|
-
echo ' "mcpServers": {}' >> "$config_file"
|
|
55
|
-
echo "}" >> "$config_file"
|
|
56
|
-
fi
|
|
57
|
-
|
|
58
|
-
# Add skill to config using bun
|
|
59
|
-
bun -e "
|
|
60
|
-
const fs = require('fs');
|
|
61
|
-
const config = JSON.parse(fs.readFileSync('$config_file', 'utf8'));
|
|
62
|
-
|
|
63
|
-
if (!config.mcpServers) config.mcpServers = {};
|
|
64
|
-
|
|
65
|
-
config.mcpServers['$SKILL_NAME'] = {
|
|
66
|
-
command: 'bun',
|
|
67
|
-
args: ['run', '$SKILL_PATH/src/index.ts'],
|
|
68
|
-
env: {
|
|
69
|
-
SKILL_API_KEY: process.env.SKILL_API_KEY || '',
|
|
70
|
-
ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY || '',
|
|
71
|
-
OPENAI_API_KEY: process.env.OPENAI_API_KEY || '',
|
|
72
|
-
ELEVENLABS_API_KEY: process.env.ELEVENLABS_API_KEY || '',
|
|
73
|
-
GEMINI_API_KEY: process.env.GEMINI_API_KEY || '',
|
|
74
|
-
XAI_API_KEY: process.env.XAI_API_KEY || '',
|
|
75
|
-
GOOGLE_API_KEY: process.env.GOOGLE_API_KEY || '',
|
|
76
|
-
GOOGLE_PROJECT_ID: process.env.GOOGLE_PROJECT_ID || '',
|
|
77
|
-
BROWSER_USE_API_KEY: process.env.BROWSER_USE_API_KEY || '',
|
|
78
|
-
RUNWAY_API_KEY: process.env.RUNWAY_API_KEY || ''
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
|
|
82
|
-
fs.writeFileSync('$config_file', JSON.stringify(config, null, 2));
|
|
83
|
-
"
|
|
84
|
-
|
|
85
|
-
echo "✅ Installed $SKILL_NAME to $config_file"
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
# Install based on choice
|
|
89
|
-
if [ "$choice" = "1" ]; then
|
|
90
|
-
# Local installation
|
|
91
|
-
install_skill "$REPO_ROOT/.claude"
|
|
92
|
-
echo ""
|
|
93
|
-
echo "🎉 $SKILL_NAME installed locally!"
|
|
94
|
-
echo " Config: $REPO_ROOT/.claude/claude_mcp_config.json"
|
|
95
|
-
elif [ "$choice" = "2" ]; then
|
|
96
|
-
# Global installation
|
|
97
|
-
install_skill "$HOME/.config/claude-code"
|
|
98
|
-
echo ""
|
|
99
|
-
echo "🎉 $SKILL_NAME installed globally!"
|
|
100
|
-
echo " Config: $HOME/.config/claude-code/claude_mcp_config.json"
|
|
101
|
-
else
|
|
102
|
-
echo "❌ Invalid choice"
|
|
103
|
-
exit 1
|
|
104
|
-
fi
|
|
105
|
-
|
|
106
|
-
echo ""
|
|
107
|
-
echo "📝 Next steps:"
|
|
108
|
-
echo " 1. Restart Claude Code"
|
|
109
|
-
echo " 2. The skill will be available as: $SKILL_NAME"
|
|
110
|
-
echo ""
|
|
111
|
-
echo " Usage: Claude Code will automatically detect and use this skill"
|
|
112
|
-
echo " based on your prompts and task context."
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "skill-context7",
|
|
3
|
-
"version": "1.0.0",
|
|
4
|
-
"description": "Access up-to-date library documentation and code examples",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "src/index.ts",
|
|
7
|
-
"bin": {
|
|
8
|
-
"skill-context7": "src/index.ts"
|
|
9
|
-
},
|
|
10
|
-
"scripts": {
|
|
11
|
-
"start": "bun run src/index.ts",
|
|
12
|
-
"dev": "bun run --watch src/index.ts"
|
|
13
|
-
},
|
|
14
|
-
"keywords": [
|
|
15
|
-
"claude",
|
|
16
|
-
"ai",
|
|
17
|
-
"skill"
|
|
18
|
-
],
|
|
19
|
-
"author": "",
|
|
20
|
-
"license": "MIT",
|
|
21
|
-
"devDependencies": {
|
|
22
|
-
"@types/bun": "latest"
|
|
23
|
-
},
|
|
24
|
-
"peerDependencies": {
|
|
25
|
-
"typescript": "^5.0.0"
|
|
26
|
-
},
|
|
27
|
-
"repository": {
|
|
28
|
-
"type": "git",
|
|
29
|
-
"url": "git+https://github.com/hasnaxyz/skill-context7.git"
|
|
30
|
-
}
|
|
31
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Skill Authentication Check
|
|
3
|
-
* Add this to the top of any skill's main function
|
|
4
|
-
*/
|
|
5
|
-
|
|
6
|
-
export function checkSkillAuth(): void {
|
|
7
|
-
const SKILL_API_KEY = process.env.SKILL_API_KEY;
|
|
8
|
-
|
|
9
|
-
// Check if SKILL_API_KEY is set
|
|
10
|
-
if (!SKILL_API_KEY) {
|
|
11
|
-
console.error('❌ Error: SKILL_API_KEY environment variable not set');
|
|
12
|
-
console.error('');
|
|
13
|
-
console.error('To use this skill, you must set your SKILL_API_KEY:');
|
|
14
|
-
console.error('');
|
|
15
|
-
console.error(' export SKILL_API_KEY=your-api-key-here');
|
|
16
|
-
console.error('');
|
|
17
|
-
console.error('Contact your administrator to get your API key.');
|
|
18
|
-
process.exit(1);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
// Validate key format
|
|
22
|
-
if (!SKILL_API_KEY.startsWith('sk-skill-')) {
|
|
23
|
-
console.error('❌ Error: Invalid SKILL_API_KEY format');
|
|
24
|
-
console.error('Expected format: sk-skill-xxxxxxxxxxxx');
|
|
25
|
-
process.exit(1);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
// Key is valid - skill can proceed
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Check if running remotely (via SSH or network)
|
|
33
|
-
*/
|
|
34
|
-
export function isRemoteExecution(): boolean {
|
|
35
|
-
return !!(
|
|
36
|
-
process.env.SSH_CONNECTION ||
|
|
37
|
-
process.env.SSH_CLIENT ||
|
|
38
|
-
process.env.SSH_TTY
|
|
39
|
-
);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Require auth only if remote execution
|
|
44
|
-
*/
|
|
45
|
-
export function requireAuthIfRemote(): void {
|
|
46
|
-
if (isRemoteExecution()) {
|
|
47
|
-
checkSkillAuth();
|
|
48
|
-
}
|
|
49
|
-
}
|