@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.
Files changed (387) hide show
  1. package/bin/index.js +253 -715
  2. package/bin/mcp.js +221 -683
  3. package/package.json +1 -1
  4. package/src/cli/cli.test.ts +14 -14
  5. package/src/cli/index.tsx +1 -1
  6. package/src/lib/installer.test.ts +41 -41
  7. package/src/lib/registry.test.ts +10 -10
  8. package/src/lib/registry.ts +10 -472
  9. package/src/lib/skillinfo.test.ts +12 -12
  10. package/src/mcp/index.ts +1 -1
  11. package/skills/skill-architecture-docs/CLAUDE.md +0 -19
  12. package/skills/skill-architecture-docs/package.json +0 -32
  13. package/skills/skill-architecture-docs/src/index.ts +0 -543
  14. package/skills/skill-auto-format/CLAUDE.md +0 -19
  15. package/skills/skill-auto-format/package.json +0 -32
  16. package/skills/skill-auto-format/src/index.ts +0 -103
  17. package/skills/skill-auto-format/tsconfig.json +0 -14
  18. package/skills/skill-brainstorm/README.md +0 -17
  19. package/skills/skill-brainstorm/install.sh +0 -112
  20. package/skills/skill-brainstorm/src/auth.ts +0 -49
  21. package/skills/skill-brainstorm/src/installer.ts +0 -324
  22. package/skills/skill-brainstorm/src/skill-install.ts +0 -205
  23. package/skills/skill-browser-agent/CLAUDE.md +0 -19
  24. package/skills/skill-browser-agent/package.json +0 -32
  25. package/skills/skill-browser-agent/src/index.ts +0 -626
  26. package/skills/skill-browser-agent/tsconfig.json +0 -14
  27. package/skills/skill-browseruse/LICENSE +0 -21
  28. package/skills/skill-browseruse/README.md +0 -27
  29. package/skills/skill-browseruse/SKILL.md +0 -113
  30. package/skills/skill-browseruse/install.sh +0 -112
  31. package/skills/skill-browseruse/package.json +0 -31
  32. package/skills/skill-browseruse/src/auth.ts +0 -49
  33. package/skills/skill-browseruse/src/installer.ts +0 -324
  34. package/skills/skill-browseruse/src/skill-install.ts +0 -174
  35. package/skills/skill-calculate/LICENSE +0 -21
  36. package/skills/skill-calculate/README.md +0 -17
  37. package/skills/skill-calculate/install.sh +0 -112
  38. package/skills/skill-calculate/package.json +0 -31
  39. package/skills/skill-calculate/src/auth.ts +0 -49
  40. package/skills/skill-calculate/src/installer.ts +0 -324
  41. package/skills/skill-calculate/src/skill-install.ts +0 -205
  42. package/skills/skill-chromedevtools/LICENSE +0 -21
  43. package/skills/skill-chromedevtools/README.md +0 -27
  44. package/skills/skill-chromedevtools/SKILL.md +0 -110
  45. package/skills/skill-chromedevtools/install.sh +0 -112
  46. package/skills/skill-chromedevtools/package.json +0 -31
  47. package/skills/skill-chromedevtools/src/auth.ts +0 -49
  48. package/skills/skill-chromedevtools/src/installer.ts +0 -324
  49. package/skills/skill-chromedevtools/src/skill-install.ts +0 -174
  50. package/skills/skill-companyguide/LICENSE +0 -21
  51. package/skills/skill-companyguide/README.md +0 -17
  52. package/skills/skill-companyguide/install.sh +0 -112
  53. package/skills/skill-companyguide/package.json +0 -31
  54. package/skills/skill-companyguide/src/auth.ts +0 -49
  55. package/skills/skill-companyguide/src/installer.ts +0 -324
  56. package/skills/skill-companyguide/src/skill-install.ts +0 -205
  57. package/skills/skill-compose-gmail/tsconfig.json +0 -14
  58. package/skills/skill-context7/LICENSE +0 -21
  59. package/skills/skill-context7/README.md +0 -27
  60. package/skills/skill-context7/SKILL.md +0 -103
  61. package/skills/skill-context7/install.sh +0 -112
  62. package/skills/skill-context7/package.json +0 -31
  63. package/skills/skill-context7/src/auth.ts +0 -49
  64. package/skills/skill-context7/src/installer.ts +0 -324
  65. package/skills/skill-context7/src/skill-install.ts +0 -174
  66. package/skills/skill-crawl/LICENSE +0 -21
  67. package/skills/skill-crawl/README.md +0 -17
  68. package/skills/skill-crawl/install.sh +0 -112
  69. package/skills/skill-crawl/package.json +0 -31
  70. package/skills/skill-crawl/src/auth.ts +0 -49
  71. package/skills/skill-crawl/src/installer.ts +0 -324
  72. package/skills/skill-crawl/src/skill-install.ts +0 -205
  73. package/skills/skill-csv-transformer/CLAUDE.md +0 -19
  74. package/skills/skill-csv-transformer/package.json +0 -32
  75. package/skills/skill-csv-transformer/src/index.ts +0 -81
  76. package/skills/skill-csv-transformer/tsconfig.json +0 -14
  77. package/skills/skill-debug/LICENSE +0 -21
  78. package/skills/skill-debug/README.md +0 -17
  79. package/skills/skill-debug/install.sh +0 -112
  80. package/skills/skill-debug/package.json +0 -31
  81. package/skills/skill-debug/src/auth.ts +0 -49
  82. package/skills/skill-debug/src/installer.ts +0 -324
  83. package/skills/skill-debug/src/skill-install.ts +0 -205
  84. package/skills/skill-deep-research/CLAUDE.md +0 -19
  85. package/skills/skill-deep-research/package.json +0 -32
  86. package/skills/skill-deep-research/src/index.ts +0 -1149
  87. package/skills/skill-deep-research/tsconfig.json +0 -14
  88. package/skills/skill-dns-manager/CLAUDE.md +0 -19
  89. package/skills/skill-dns-manager/package.json +0 -32
  90. package/skills/skill-dns-manager/src/index.ts +0 -92
  91. package/skills/skill-dns-manager/tsconfig.json +0 -14
  92. package/skills/skill-download/LICENSE +0 -21
  93. package/skills/skill-download/README.md +0 -17
  94. package/skills/skill-download/install.sh +0 -112
  95. package/skills/skill-download/package.json +0 -31
  96. package/skills/skill-download/src/auth.ts +0 -49
  97. package/skills/skill-download/src/installer.ts +0 -324
  98. package/skills/skill-download/src/skill-install.ts +0 -205
  99. package/skills/skill-exa/LICENSE +0 -21
  100. package/skills/skill-exa/README.md +0 -26
  101. package/skills/skill-exa/SKILL.md +0 -92
  102. package/skills/skill-exa/install.sh +0 -112
  103. package/skills/skill-exa/package.json +0 -31
  104. package/skills/skill-exa/src/auth.ts +0 -49
  105. package/skills/skill-exa/src/installer.ts +0 -324
  106. package/skills/skill-exa/src/skill-install.ts +0 -174
  107. package/skills/skill-filesearch/LICENSE +0 -21
  108. package/skills/skill-filesearch/README.md +0 -17
  109. package/skills/skill-filesearch/install.sh +0 -112
  110. package/skills/skill-filesearch/package.json +0 -31
  111. package/skills/skill-filesearch/src/auth.ts +0 -49
  112. package/skills/skill-filesearch/src/installer.ts +0 -324
  113. package/skills/skill-filesearch/src/skill-install.ts +0 -205
  114. package/skills/skill-fill/LICENSE +0 -21
  115. package/skills/skill-fill/README.md +0 -17
  116. package/skills/skill-fill/install.sh +0 -112
  117. package/skills/skill-fill/package.json +0 -31
  118. package/skills/skill-fill/src/auth.ts +0 -49
  119. package/skills/skill-fill/src/installer.ts +0 -324
  120. package/skills/skill-fill/src/skill-install.ts +0 -205
  121. package/skills/skill-generate-audio/CLAUDE.md +0 -3
  122. package/skills/skill-generate-audio/SKILL.md +0 -53
  123. package/skills/skill-generate-audio/package.json +0 -30
  124. package/skills/skill-generate-audio/src/index.ts +0 -656
  125. package/skills/skill-generate-audio/tsconfig.json +0 -18
  126. package/skills/skill-generate-readme/CLAUDE.md +0 -19
  127. package/skills/skill-generate-readme/package.json +0 -32
  128. package/skills/skill-generate-readme/src/index.ts +0 -867
  129. package/skills/skill-generate-readme/tsconfig.json +0 -14
  130. package/skills/skill-generate-slides/CLAUDE.md +0 -19
  131. package/skills/skill-generate-slides/package.json +0 -32
  132. package/skills/skill-generate-slides/src/ai.ts +0 -140
  133. package/skills/skill-generate-slides/src/cli.ts +0 -161
  134. package/skills/skill-generate-slides/src/export.ts +0 -65
  135. package/skills/skill-generate-slides/src/index.ts +0 -1417
  136. package/skills/skill-generate-slides/src/layout.ts +0 -31
  137. package/skills/skill-generate-slides/src/parse.ts +0 -282
  138. package/skills/skill-generate-slides/src/render.ts +0 -711
  139. package/skills/skill-generate-slides/tsconfig.json +0 -14
  140. package/skills/skill-get-api-docs/CLAUDE.md +0 -19
  141. package/skills/skill-get-api-docs/package.json +0 -32
  142. package/skills/skill-get-api-docs/src/index.ts +0 -1176
  143. package/skills/skill-get-api-docs/tsconfig.json +0 -14
  144. package/skills/skill-googledrive/LICENSE +0 -21
  145. package/skills/skill-googledrive/README.md +0 -27
  146. package/skills/skill-googledrive/SKILL.md +0 -140
  147. package/skills/skill-googledrive/install.sh +0 -112
  148. package/skills/skill-googledrive/package.json +0 -31
  149. package/skills/skill-googledrive/src/auth.ts +0 -49
  150. package/skills/skill-googledrive/src/installer.ts +0 -324
  151. package/skills/skill-googledrive/src/skill-install.ts +0 -174
  152. package/skills/skill-grant-compliance-scanner/CLAUDE.md +0 -19
  153. package/skills/skill-grant-compliance-scanner/package.json +0 -32
  154. package/skills/skill-grant-compliance-scanner/src/index.ts +0 -94
  155. package/skills/skill-grant-compliance-scanner/tsconfig.json +0 -14
  156. package/skills/skill-hubsearch/LICENSE +0 -21
  157. package/skills/skill-hubsearch/README.md +0 -17
  158. package/skills/skill-hubsearch/install.sh +0 -112
  159. package/skills/skill-hubsearch/package.json +0 -31
  160. package/skills/skill-hubsearch/src/auth.ts +0 -49
  161. package/skills/skill-hubsearch/src/installer.ts +0 -324
  162. package/skills/skill-hubsearch/src/skill-install.ts +0 -205
  163. package/skills/skill-implementation-architecture/CLAUDE.md +0 -19
  164. package/skills/skill-implementation-architecture/package.json +0 -32
  165. package/skills/skill-implementation-architecture/src/index.ts +0 -460
  166. package/skills/skill-implementation-architecture/tsconfig.json +0 -14
  167. package/skills/skill-implementation-audit/CLAUDE.md +0 -19
  168. package/skills/skill-implementation-audit/package.json +0 -32
  169. package/skills/skill-implementation-audit/src/index.ts +0 -502
  170. package/skills/skill-implementation-audit/tsconfig.json +0 -14
  171. package/skills/skill-implementation-cost/CLAUDE.md +0 -19
  172. package/skills/skill-implementation-cost/package.json +0 -32
  173. package/skills/skill-implementation-cost/src/index.ts +0 -873
  174. package/skills/skill-implementation-cost/tsconfig.json +0 -14
  175. package/skills/skill-implementation-dispatch/CLAUDE.md +0 -19
  176. package/skills/skill-implementation-dispatch/package.json +0 -32
  177. package/skills/skill-implementation-dispatch/src/index.ts +0 -390
  178. package/skills/skill-implementation-dispatch/tsconfig.json +0 -14
  179. package/skills/skill-implementation-hook/CLAUDE.md +0 -19
  180. package/skills/skill-implementation-hook/package.json +0 -32
  181. package/skills/skill-implementation-hook/src/index.ts +0 -787
  182. package/skills/skill-implementation-hook/tsconfig.json +0 -14
  183. package/skills/skill-implementation-index/CLAUDE.md +0 -19
  184. package/skills/skill-implementation-index/package.json +0 -32
  185. package/skills/skill-implementation-index/src/index.ts +0 -767
  186. package/skills/skill-implementation-index/tsconfig.json +0 -14
  187. package/skills/skill-implementation-init/CLAUDE.md +0 -19
  188. package/skills/skill-implementation-init/package.json +0 -32
  189. package/skills/skill-implementation-init/src/index.ts +0 -378
  190. package/skills/skill-implementation-init/tsconfig.json +0 -14
  191. package/skills/skill-implementation-memento/CLAUDE.md +0 -19
  192. package/skills/skill-implementation-memento/package.json +0 -32
  193. package/skills/skill-implementation-memento/src/index.ts +0 -442
  194. package/skills/skill-implementation-memento/tsconfig.json +0 -14
  195. package/skills/skill-linear/LICENSE +0 -21
  196. package/skills/skill-linear/README.md +0 -28
  197. package/skills/skill-linear/SKILL.md +0 -94
  198. package/skills/skill-linear/install.sh +0 -112
  199. package/skills/skill-linear/package.json +0 -31
  200. package/skills/skill-linear/src/auth.ts +0 -49
  201. package/skills/skill-linear/src/installer.ts +0 -324
  202. package/skills/skill-linear/src/skill-install.ts +0 -174
  203. package/skills/skill-mail/LICENSE +0 -21
  204. package/skills/skill-mail/README.md +0 -17
  205. package/skills/skill-mail/install.sh +0 -112
  206. package/skills/skill-mail/package.json +0 -31
  207. package/skills/skill-mail/src/auth.ts +0 -49
  208. package/skills/skill-mail/src/installer.ts +0 -324
  209. package/skills/skill-mail/src/skill-install.ts +0 -205
  210. package/skills/skill-manage-gmail/CLAUDE.md +0 -19
  211. package/skills/skill-manage-gmail/package.json +0 -32
  212. package/skills/skill-manage-gmail/src/index.ts +0 -504
  213. package/skills/skill-manage-gmail/tsconfig.json +0 -14
  214. package/skills/skill-merch-mockup-factory/CLAUDE.md +0 -19
  215. package/skills/skill-merch-mockup-factory/package.json +0 -32
  216. package/skills/skill-merch-mockup-factory/src/index.ts +0 -296
  217. package/skills/skill-merch-mockup-factory/tsconfig.json +0 -14
  218. package/skills/skill-message/LICENSE +0 -21
  219. package/skills/skill-message/README.md +0 -17
  220. package/skills/skill-message/install.sh +0 -112
  221. package/skills/skill-message/package.json +0 -31
  222. package/skills/skill-message/src/auth.ts +0 -49
  223. package/skills/skill-message/src/installer.ts +0 -324
  224. package/skills/skill-message/src/skill-install.ts +0 -205
  225. package/skills/skill-newsletter-campaign-planner/CLAUDE.md +0 -19
  226. package/skills/skill-newsletter-campaign-planner/package.json +0 -32
  227. package/skills/skill-newsletter-campaign-planner/src/index.ts +0 -252
  228. package/skills/skill-newsletter-campaign-planner/tsconfig.json +0 -14
  229. package/skills/skill-notify/LICENSE +0 -21
  230. package/skills/skill-notify/README.md +0 -17
  231. package/skills/skill-notify/install.sh +0 -112
  232. package/skills/skill-notify/package.json +0 -31
  233. package/skills/skill-notify/src/auth.ts +0 -49
  234. package/skills/skill-notify/src/installer.ts +0 -324
  235. package/skills/skill-notify/src/skill-install.ts +0 -205
  236. package/skills/skill-notion/LICENSE +0 -21
  237. package/skills/skill-notion/README.md +0 -27
  238. package/skills/skill-notion/SKILL.md +0 -115
  239. package/skills/skill-notion/install.sh +0 -112
  240. package/skills/skill-notion/package.json +0 -31
  241. package/skills/skill-notion/src/auth.ts +0 -49
  242. package/skills/skill-notion/src/installer.ts +0 -324
  243. package/skills/skill-notion/src/skill-install.ts +0 -174
  244. package/skills/skill-parse-pdf/CLAUDE.md +0 -19
  245. package/skills/skill-parse-pdf/package.json +0 -32
  246. package/skills/skill-parse-pdf/src/index.ts +0 -581
  247. package/skills/skill-parse-pdf/tsconfig.json +0 -14
  248. package/skills/skill-playwright/LICENSE +0 -21
  249. package/skills/skill-playwright/README.md +0 -27
  250. package/skills/skill-playwright/SKILL.md +0 -116
  251. package/skills/skill-playwright/install.sh +0 -112
  252. package/skills/skill-playwright/package.json +0 -31
  253. package/skills/skill-playwright/src/auth.ts +0 -49
  254. package/skills/skill-playwright/src/installer.ts +0 -324
  255. package/skills/skill-playwright/src/skill-install.ts +0 -174
  256. package/skills/skill-projectbuild/LICENSE +0 -21
  257. package/skills/skill-projectbuild/README.md +0 -17
  258. package/skills/skill-projectbuild/install.sh +0 -112
  259. package/skills/skill-projectbuild/package.json +0 -31
  260. package/skills/skill-projectbuild/src/auth.ts +0 -49
  261. package/skills/skill-projectbuild/src/installer.ts +0 -324
  262. package/skills/skill-projectbuild/src/skill-install.ts +0 -205
  263. package/skills/skill-read-gmail/CLAUDE.md +0 -19
  264. package/skills/skill-read-gmail/package.json +0 -32
  265. package/skills/skill-read-gmail/src/index.ts +0 -343
  266. package/skills/skill-read-gmail/tsconfig.json +0 -14
  267. package/skills/skill-remember/LICENSE +0 -21
  268. package/skills/skill-remember/README.md +0 -17
  269. package/skills/skill-remember/install.sh +0 -112
  270. package/skills/skill-remember/package.json +0 -31
  271. package/skills/skill-remember/src/auth.ts +0 -49
  272. package/skills/skill-remember/src/installer.ts +0 -324
  273. package/skills/skill-remember/src/skill-install.ts +0 -205
  274. package/skills/skill-schedule/README.md +0 -17
  275. package/skills/skill-schedule/install.sh +0 -112
  276. package/skills/skill-schedule/src/auth.ts +0 -49
  277. package/skills/skill-schedule/src/installer.ts +0 -324
  278. package/skills/skill-schedule/src/skill-install.ts +0 -205
  279. package/skills/skill-search/LICENSE +0 -21
  280. package/skills/skill-search/README.md +0 -17
  281. package/skills/skill-search/install.sh +0 -112
  282. package/skills/skill-search/package.json +0 -31
  283. package/skills/skill-search/src/auth.ts +0 -49
  284. package/skills/skill-search/src/installer.ts +0 -324
  285. package/skills/skill-search/src/skill-install.ts +0 -205
  286. package/skills/skill-shadcn/LICENSE +0 -21
  287. package/skills/skill-shadcn/README.md +0 -27
  288. package/skills/skill-shadcn/SKILL.md +0 -113
  289. package/skills/skill-shadcn/install.sh +0 -112
  290. package/skills/skill-shadcn/package.json +0 -31
  291. package/skills/skill-shadcn/src/auth.ts +0 -49
  292. package/skills/skill-shadcn/src/installer.ts +0 -324
  293. package/skills/skill-shadcn/src/skill-install.ts +0 -174
  294. package/skills/skill-shadcn-theme/CLAUDE.md +0 -19
  295. package/skills/skill-shadcn-theme/package.json +0 -32
  296. package/skills/skill-shadcn-theme/src/index.ts +0 -16
  297. package/skills/skill-shadcn-theme/tsconfig.json +0 -14
  298. package/skills/skill-social-template-kit/CLAUDE.md +0 -19
  299. package/skills/skill-social-template-kit/package.json +0 -32
  300. package/skills/skill-social-template-kit/src/index.ts +0 -303
  301. package/skills/skill-social-template-kit/tsconfig.json +0 -14
  302. package/skills/skill-summarize/LICENSE +0 -21
  303. package/skills/skill-summarize/README.md +0 -17
  304. package/skills/skill-summarize/install.sh +0 -112
  305. package/skills/skill-summarize/package.json +0 -31
  306. package/skills/skill-summarize/src/auth.ts +0 -49
  307. package/skills/skill-summarize/src/installer.ts +0 -324
  308. package/skills/skill-summarize/src/skill-install.ts +0 -205
  309. package/skills/skill-sync/LICENSE +0 -21
  310. package/skills/skill-sync/README.md +0 -17
  311. package/skills/skill-sync/install.sh +0 -112
  312. package/skills/skill-sync/package.json +0 -31
  313. package/skills/skill-sync/src/auth.ts +0 -49
  314. package/skills/skill-sync/src/installer.ts +0 -324
  315. package/skills/skill-sync/src/skill-install.ts +0 -205
  316. package/skills/skill-time-blocking-orchestrator/CLAUDE.md +0 -19
  317. package/skills/skill-time-blocking-orchestrator/package.json +0 -32
  318. package/skills/skill-time-blocking-orchestrator/src/index.ts +0 -328
  319. package/skills/skill-time-blocking-orchestrator/tsconfig.json +0 -14
  320. package/skills/skill-transform/.env.example +0 -2
  321. package/skills/skill-transform/LICENSE +0 -21
  322. package/skills/skill-transform/README.md +0 -17
  323. package/skills/skill-transform/SKILL.md +0 -127
  324. package/skills/skill-transform/install.sh +0 -112
  325. package/skills/skill-transform/package.json +0 -37
  326. package/skills/skill-transform/src/auth.ts +0 -49
  327. package/skills/skill-transform/src/http-client.ts +0 -128
  328. package/skills/skill-transform/src/index-http.ts +0 -111
  329. package/skills/skill-transform/src/index-local.ts +0 -368
  330. package/skills/skill-transform/src/index.ts +0 -111
  331. package/skills/skill-transform/src/installer.ts +0 -324
  332. package/skills/skill-transform/src/skill-install.ts +0 -205
  333. package/skills/skill-transform/src/transformers/ai-transformer.ts +0 -202
  334. package/skills/skill-transform/src/transformers/format-detector.ts +0 -147
  335. package/skills/skill-transform/src/types.ts +0 -95
  336. package/skills/skill-transform/tsconfig.json +0 -18
  337. package/skills/skill-translate/LICENSE +0 -21
  338. package/skills/skill-translate/README.md +0 -17
  339. package/skills/skill-translate/install.sh +0 -112
  340. package/skills/skill-translate/package.json +0 -31
  341. package/skills/skill-translate/src/auth.ts +0 -49
  342. package/skills/skill-translate/src/installer.ts +0 -324
  343. package/skills/skill-translate/src/skill-install.ts +0 -205
  344. package/skills/skill-vendor-comparison-coach/CLAUDE.md +0 -19
  345. package/skills/skill-vendor-comparison-coach/package.json +0 -32
  346. package/skills/skill-vendor-comparison-coach/src/index.ts +0 -337
  347. package/skills/skill-vendor-comparison-coach/tsconfig.json +0 -14
  348. package/skills/skill-videodownload/.env.example +0 -5
  349. package/skills/skill-videodownload/CLAUDE.md +0 -64
  350. package/skills/skill-videodownload/LICENSE +0 -21
  351. package/skills/skill-videodownload/README.md +0 -166
  352. package/skills/skill-videodownload/package.json +0 -49
  353. package/skills/skill-videodownload/src/commands/config.ts +0 -89
  354. package/skills/skill-videodownload/src/commands/download.ts +0 -61
  355. package/skills/skill-videodownload/src/commands/info.ts +0 -83
  356. package/skills/skill-videodownload/src/commands/list.ts +0 -84
  357. package/skills/skill-videodownload/src/lib/downloader.ts +0 -270
  358. package/skills/skill-videodownload/src/lib/storage.ts +0 -167
  359. package/skills/skill-videodownload/src/types/index.ts +0 -64
  360. package/skills/skill-videodownload/src/utils/logger.ts +0 -49
  361. package/skills/skill-videodownload/src/utils/paths.ts +0 -94
  362. package/skills/skill-videodownload/tsconfig.json +0 -17
  363. package/skills/skill-voiceover/.env.example +0 -5
  364. package/skills/skill-voiceover/CLAUDE.md +0 -40
  365. package/skills/skill-voiceover/LICENSE +0 -21
  366. package/skills/skill-voiceover/README.md +0 -64
  367. package/skills/skill-voiceover/package.json +0 -43
  368. package/skills/skill-voiceover/src/commands/config.ts +0 -38
  369. package/skills/skill-voiceover/src/commands/generate.ts +0 -37
  370. package/skills/skill-voiceover/src/commands/voices.ts +0 -33
  371. package/skills/skill-voiceover/src/lib/generator.ts +0 -159
  372. package/skills/skill-voiceover/src/lib/storage.ts +0 -55
  373. package/skills/skill-voiceover/src/types/index.ts +0 -55
  374. package/skills/skill-voiceover/src/utils/logger.ts +0 -30
  375. package/skills/skill-voiceover/src/utils/paths.ts +0 -22
  376. package/skills/skill-voiceover/tsconfig.json +0 -17
  377. package/skills/skill-websearch/LICENSE +0 -21
  378. package/skills/skill-websearch/README.md +0 -17
  379. package/skills/skill-websearch/install.sh +0 -112
  380. package/skills/skill-websearch/package.json +0 -31
  381. package/skills/skill-websearch/src/auth.ts +0 -49
  382. package/skills/skill-websearch/src/installer.ts +0 -324
  383. package/skills/skill-websearch/src/skill-install.ts +0 -205
  384. /package/skills/{skill-compose-gmail → skill-gmail}/CLAUDE.md +0 -0
  385. /package/skills/{skill-compose-gmail → skill-gmail}/package.json +0 -0
  386. /package/skills/{skill-compose-gmail → skill-gmail}/src/index.ts +0 -0
  387. /package/skills/{skill-architecture-docs → skill-gmail}/tsconfig.json +0 -0
@@ -1,324 +0,0 @@
1
- #!/usr/bin/env bun
2
-
3
- /**
4
- * Skill Installer Module
5
- *
6
- * Universal installer for skills to integrate with AI code assistants
7
- * Usage: skill-[name] install [claude|codex|windsurf|cursor]
8
- */
9
-
10
- import { writeFileSync, mkdirSync, existsSync, readFileSync } from 'fs';
11
- import { resolve, join } from 'path';
12
- import { homedir } from 'os';
13
-
14
- export interface SkillConfig {
15
- name: string;
16
- description: string;
17
- version: string;
18
- commands: Array<{
19
- name: string;
20
- description: string;
21
- usage: string;
22
- examples: string[];
23
- }>;
24
- requiredEnvVars?: string[];
25
- optionalEnvVars?: string[];
26
- }
27
-
28
- export type AssistantType = 'claude' | 'codex' | 'windsurf' | 'cursor';
29
-
30
- const ASSISTANT_PATHS: Record<AssistantType, string> = {
31
- claude: '.claude/skills',
32
- codex: '.codex/skills',
33
- windsurf: '.windsurf/skills',
34
- cursor: '.cursor/skills',
35
- };
36
-
37
- export class SkillInstaller {
38
- private config: SkillConfig;
39
- private skillPath: string;
40
-
41
- constructor(config: SkillConfig, currentFilePath: string) {
42
- this.config = config;
43
- // Get the root directory of the skill (where package.json is)
44
- this.skillPath = resolve(currentFilePath, '..');
45
- }
46
-
47
- /**
48
- * Install the skill to specified AI assistant
49
- */
50
- async install(assistant: AssistantType): Promise<void> {
51
- console.log(`📦 Installing ${this.config.name} for ${assistant}...`);
52
- console.log('');
53
-
54
- const assistantPath = ASSISTANT_PATHS[assistant];
55
- if (!assistantPath) {
56
- throw new Error(`Unknown assistant: ${assistant}`);
57
- }
58
-
59
- // Create skill directory
60
- const skillDir = join(homedir(), assistantPath, this.config.name);
61
- mkdirSync(skillDir, { recursive: true });
62
- console.log(`✓ Created: ${skillDir}`);
63
-
64
- // Generate and write SKILL.md
65
- const skillMd = this.generateSkillMd();
66
- writeFileSync(join(skillDir, 'SKILL.md'), skillMd);
67
- console.log(`✓ Created: SKILL.md`);
68
-
69
- // Generate and write README.md
70
- const readme = this.generateReadme();
71
- writeFileSync(join(skillDir, 'README.md'), readme);
72
- console.log(`✓ Created: README.md`);
73
-
74
- // Create log file
75
- const logFile = join(skillDir, `${this.config.name}.log`);
76
- if (!existsSync(logFile)) {
77
- writeFileSync(logFile, `# ${this.config.name} execution log\n# Created: ${new Date().toISOString()}\n\n`);
78
- console.log(`✓ Created: ${this.config.name}.log`);
79
- }
80
-
81
- // Update MCP config
82
- this.updateMcpConfig(assistant, skillDir);
83
-
84
- console.log('');
85
- console.log(`✅ ${this.config.name} installed successfully!`);
86
- console.log('');
87
- console.log('Location:', skillDir);
88
- console.log('');
89
- console.log('Usage:');
90
- this.config.commands.slice(0, 3).forEach(cmd => {
91
- console.log(` ${this.config.name} ${cmd.usage}`);
92
- });
93
- }
94
-
95
- /**
96
- * Generate SKILL.md documentation
97
- */
98
- private generateSkillMd(): string {
99
- const envVarsSection = this.config.requiredEnvVars?.length || this.config.optionalEnvVars?.length ? `
100
-
101
- ## Environment Variables
102
-
103
- ${this.config.requiredEnvVars?.length ? `### Required
104
- ${this.config.requiredEnvVars.map(v => `- \`${v}\``).join('\n')}
105
- ` : ''}
106
- ${this.config.optionalEnvVars?.length ? `### Optional
107
- ${this.config.optionalEnvVars.map(v => `- \`${v}\``).join('\n')}
108
- ` : ''}` : '';
109
-
110
- return `# ${this.config.name}
111
-
112
- ${this.config.description}
113
-
114
- ## Version
115
- ${this.config.version}
116
-
117
- ## Commands
118
-
119
- ${this.config.commands.map(cmd => `### ${cmd.name}
120
-
121
- ${cmd.description}
122
-
123
- **Usage:**
124
- \`\`\`bash
125
- ${this.config.name} ${cmd.usage}
126
- \`\`\`
127
-
128
- **Examples:**
129
- ${cmd.examples.map(ex => `\`\`\`bash
130
- ${ex}
131
- \`\`\``).join('\n')}
132
- `).join('\n')}
133
- ${envVarsSection}
134
-
135
- ## Installation
136
-
137
- This skill is installed at:
138
- \`~/.claude/skills/${this.config.name}/\`
139
-
140
- ## Logs
141
-
142
- Execution logs are written to:
143
- \`~/.claude/skills/${this.config.name}/${this.config.name}.log\`
144
-
145
- ## Support
146
-
147
- For issues, visit: https://github.com/hasnaxyz/${this.config.name}/issues
148
- `;
149
- }
150
-
151
- /**
152
- * Generate README.md
153
- */
154
- private generateReadme(): string {
155
- return `# ${this.config.name}
156
-
157
- ${this.config.description}
158
-
159
- ## Quick Start
160
-
161
- \`\`\`bash
162
- ${this.config.commands[0] ? `${this.config.name} ${this.config.commands[0].usage}` : `${this.config.name} --help`}
163
- \`\`\`
164
-
165
- ## Documentation
166
-
167
- See [SKILL.md](./SKILL.md) for complete documentation.
168
-
169
- ## Version
170
-
171
- ${this.config.version}
172
- `;
173
- }
174
-
175
- /**
176
- * Update MCP config to register the skill
177
- */
178
- private updateMcpConfig(assistant: AssistantType, skillDir: string): void {
179
- const configPaths: Record<AssistantType, string> = {
180
- claude: join(homedir(), '.config/claude-code/claude_mcp_config.json'),
181
- codex: join(homedir(), '.config/codex/mcp_config.json'),
182
- windsurf: join(homedir(), '.config/windsurf/mcp_config.json'),
183
- cursor: join(homedir(), '.config/cursor/mcp_config.json'),
184
- };
185
-
186
- const configPath = configPaths[assistant];
187
-
188
- // Read existing config or create new
189
- let config: any = { mcpServers: {} };
190
- if (existsSync(configPath)) {
191
- const content = readFileSync(configPath, 'utf8');
192
- config = JSON.parse(content);
193
- }
194
-
195
- if (!config.mcpServers) {
196
- config.mcpServers = {};
197
- }
198
-
199
- // Add or update this skill
200
- config.mcpServers[this.config.name] = {
201
- command: 'bun',
202
- args: ['run', join(this.skillPath, 'src/index.ts')],
203
- env: this.getEnvConfig(),
204
- };
205
-
206
- // Write config
207
- mkdirSync(resolve(configPath, '..'), { recursive: true });
208
- writeFileSync(configPath, JSON.stringify(config, null, 2));
209
- console.log(`✓ Updated: ${assistant} MCP config`);
210
- }
211
-
212
- /**
213
- * Get environment variables config
214
- */
215
- private getEnvConfig(): Record<string, string> {
216
- const env: Record<string, string> = {
217
- SKILL_API_KEY: process.env.SKILL_API_KEY || '',
218
- };
219
-
220
- // Add required env vars
221
- this.config.requiredEnvVars?.forEach(key => {
222
- env[key] = process.env[key] || '';
223
- });
224
-
225
- // Add optional env vars
226
- this.config.optionalEnvVars?.forEach(key => {
227
- env[key] = process.env[key] || '';
228
- });
229
-
230
- return env;
231
- }
232
-
233
- /**
234
- * Uninstall the skill from specified AI assistant
235
- */
236
- async uninstall(assistant: AssistantType): Promise<void> {
237
- console.log(`🗑️ Uninstalling ${this.config.name} from ${assistant}...`);
238
- console.log('');
239
-
240
- const assistantPath = ASSISTANT_PATHS[assistant];
241
- const skillDir = join(homedir(), assistantPath, this.config.name);
242
-
243
- if (existsSync(skillDir)) {
244
- // Remove from MCP config first
245
- this.removeFromMcpConfig(assistant);
246
-
247
- // Note: We don't delete the directory to preserve logs and user data
248
- console.log(`✓ Removed from ${assistant} MCP config`);
249
- console.log('');
250
- console.log(`⚠️ Directory preserved: ${skillDir}`);
251
- console.log(' (contains logs and configuration)');
252
- console.log(' Delete manually if needed.');
253
- } else {
254
- console.log(`⚠️ ${this.config.name} is not installed for ${assistant}`);
255
- }
256
- }
257
-
258
- /**
259
- * Remove skill from MCP config
260
- */
261
- private removeFromMcpConfig(assistant: AssistantType): void {
262
- const configPaths: Record<AssistantType, string> = {
263
- claude: join(homedir(), '.config/claude-code/claude_mcp_config.json'),
264
- codex: join(homedir(), '.config/codex/mcp_config.json'),
265
- windsurf: join(homedir(), '.config/windsurf/mcp_config.json'),
266
- cursor: join(homedir(), '.config/cursor/mcp_config.json'),
267
- };
268
-
269
- const configPath = configPaths[assistant];
270
-
271
- if (existsSync(configPath)) {
272
- const content = readFileSync(configPath, 'utf8');
273
- const config = JSON.parse(content);
274
-
275
- if (config.mcpServers && config.mcpServers[this.config.name]) {
276
- delete config.mcpServers[this.config.name];
277
- writeFileSync(configPath, JSON.stringify(config, null, 2));
278
- }
279
- }
280
- }
281
- }
282
-
283
- /**
284
- * Helper to run installer from skill CLI
285
- */
286
- export async function runInstaller(
287
- config: SkillConfig,
288
- currentFilePath: string,
289
- args: string[]
290
- ): Promise<void> {
291
- const installer = new SkillInstaller(config, currentFilePath);
292
-
293
- const command = args[0];
294
- const assistant = args[1] as AssistantType;
295
-
296
- if (command === 'install') {
297
- if (!assistant || !['claude', 'codex', 'windsurf', 'cursor'].includes(assistant)) {
298
- console.error('❌ Error: Please specify an assistant');
299
- console.error('');
300
- console.error('Usage:');
301
- console.error(` ${config.name} install [claude|codex|windsurf|cursor]`);
302
- console.error('');
303
- console.error('Examples:');
304
- console.error(` ${config.name} install claude`);
305
- console.error(` ${config.name} install codex`);
306
- process.exit(1);
307
- }
308
-
309
- await installer.install(assistant);
310
- } else if (command === 'uninstall') {
311
- if (!assistant || !['claude', 'codex', 'windsurf', 'cursor'].includes(assistant)) {
312
- console.error('❌ Error: Please specify an assistant');
313
- console.error('');
314
- console.error('Usage:');
315
- console.error(` ${config.name} uninstall [claude|codex|windsurf|cursor]`);
316
- process.exit(1);
317
- }
318
-
319
- await installer.uninstall(assistant);
320
- } else {
321
- console.error(`❌ Unknown installer command: ${command}`);
322
- process.exit(1);
323
- }
324
- }
@@ -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,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,26 +0,0 @@
1
- # skill-exa
2
-
3
- Advanced web search and code search using Exa AI
4
-
5
- ## Overview
6
-
7
- This Skill provides semantic web search capabilities powered by Exa AI, specializing in finding code examples, technical documentation, and high-quality technical content.
8
-
9
- ## MCP Server
10
-
11
- Uses the Exa MCP server for AI-powered search.
12
-
13
- Connection: NPM package `exa-mcp-server`
14
-
15
- ## Usage
16
-
17
- This Skill is automatically invoked by Claude Code when performing web or code searches.
18
-
19
- Example requests:
20
- - "Search for React useState examples"
21
- - "Find FastAPI authentication documentation"
22
- - "What are best practices for Redis caching?"
23
-
24
- ## Setup
25
-
26
- Get your Exa API key from: https://exa.ai
@@ -1,92 +0,0 @@
1
- ---
2
- name: skill-exa
3
- description: Advanced web search and code search using Exa AI. Search the web with semantic understanding, find code examples, documentation, and technical content. Use for research, finding examples, or discovering technical information.
4
- ---
5
-
6
- # Exa AI Search Skill
7
-
8
- ## What this Skill does
9
-
10
- This Skill provides advanced web search capabilities using Exa AI, which specializes in semantic search, code discovery, and technical content retrieval.
11
-
12
- ## When to use this Skill
13
-
14
- Use this Skill when you need to:
15
- - Search the web with semantic understanding
16
- - Find code examples and snippets
17
- - Discover documentation and technical articles
18
- - Research libraries, frameworks, and APIs
19
- - Get contextual information from web content
20
- - Find high-quality technical resources
21
-
22
- ## MCP Server Connection
23
-
24
- The Exa MCP server provides access to Exa AI's search capabilities.
25
-
26
- ```json
27
- {
28
- "exa": {
29
- "command": "npx",
30
- "args": ["-y", "exa-mcp-server"],
31
- "env": {
32
- "EXA_API_KEY": "your-api-key-here"
33
- }
34
- }
35
- }
36
- ```
37
-
38
- **Setup**: Get your API key from [exa.ai](https://exa.ai)
39
-
40
- ## Available Operations
41
-
42
- The Exa MCP server provides tools for:
43
-
44
- - **Web Search**: Semantic web search with high-quality results
45
- - **Code Search**: Find code examples and implementations
46
- - **Documentation Search**: Discover technical documentation
47
- - **Content Extraction**: Get detailed content from URLs
48
- - **Similar Content**: Find related articles and resources
49
-
50
- ## Search Capabilities
51
-
52
- Exa excels at:
53
- - Understanding intent and context
54
- - Finding technical and programming content
55
- - Filtering for quality sources
56
- - Providing relevant code examples
57
- - Discovering documentation and guides
58
-
59
- ## Examples
60
-
61
- ### Example 1: Find code examples
62
- "Search for React hooks examples using useEffect for data fetching"
63
- → Claude uses Exa to find relevant code examples
64
-
65
- ### Example 2: Research a library
66
- "Find documentation and examples for FastAPI authentication"
67
- → Claude searches for FastAPI auth resources
68
-
69
- ### Example 3: Technical research
70
- "What are the best practices for PostgreSQL connection pooling?"
71
- → Claude uses Exa to find technical articles and documentation
72
-
73
- ### Example 4: Find similar content
74
- "Find articles similar to this URL about microservices patterns"
75
- → Claude discovers related technical content
76
-
77
- ## Best practices
78
-
79
- - Use specific, technical queries for better results
80
- - Include programming languages or frameworks when searching for code
81
- - Ask for examples, documentation, or guides explicitly
82
- - Leverage semantic search for concept-based queries
83
- - Use Exa for technical content over general web search
84
-
85
- ## Integration Notes
86
-
87
- The Exa MCP server automatically handles:
88
- - API authentication
89
- - Query optimization
90
- - Result ranking and filtering
91
- - Content extraction from URLs
92
- - Rate limiting