import { e as createComponent, m as maybeRenderHead, g as addAttribute, r as renderTemplate, h as createAstro, k as renderComponent, l as renderScript } from '../chunks/astro/server_B-2LxKLH.mjs'; import 'piccolore'; import { _ as _export_sfc, $ as $$Base } from '../chunks/_plugin-vue_export-helper_B1lnwsE2.mjs'; import 'clsx'; import { useSSRContext, defineComponent, ref, watch, mergeProps } from 'vue'; import { ssrRenderAttrs, ssrRenderAttr } from 'vue/server-renderer'; import { l as listSkills } from '../chunks/skills_COWfD5oy.mjs'; import { b as buildSyncScript } from '../chunks/sync_B_Og9xl3.mjs'; export { renderers } from '../renderers.mjs'; const $$Astro$1 = createAstro(); const $$SkillCard = createComponent(($$result, $$props, $$slots) => { const Astro2 = $$result.createAstro($$Astro$1, $$props, $$slots); Astro2.self = $$SkillCard; const { slug, name, description, "allowed-tools": allowedTools } = Astro2.props; const truncated = description.length > 120 ? description.slice(0, 120) + "..." : description; return renderTemplate`${maybeRenderHead()}

${name}

${truncated && renderTemplate`

${truncated}

`} ${allowedTools.length > 0 && renderTemplate`
${allowedTools.map((tool) => renderTemplate` ${tool} `)}
`}
`; }, "/Users/alex/projects/skillit/src/components/SkillCard.astro", void 0); const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "SkillSearch", setup(__props, { expose: __expose }) { __expose(); const query = ref(""); watch(query, (val) => { const q = val.toLowerCase().trim(); const cards = document.querySelectorAll("[data-skill]"); cards.forEach((card) => { const name = card.dataset.name || ""; const desc = card.dataset.description || ""; const tools = card.dataset.tools || ""; const match = !q || name.includes(q) || desc.includes(q) || tools.includes(q); card.style.display = match ? "" : "none"; }); }); const __returned__ = { query }; Object.defineProperty(__returned__, "__isScriptSetup", { enumerable: false, value: true }); return __returned__; } }); function _sfc_ssrRender(_ctx, _push, _parent, _attrs, $props, $setup, $data, $options) { _push(`
`); } const _sfc_setup = _sfc_main.setup; _sfc_main.setup = (props, ctx) => { const ssrContext = useSSRContext(); (ssrContext.modules || (ssrContext.modules = /* @__PURE__ */ new Set())).add("src/components/SkillSearch.vue"); return _sfc_setup ? _sfc_setup(props, ctx) : void 0; }; const SkillSearch = /* @__PURE__ */ _export_sfc(_sfc_main, [["ssrRender", _sfc_ssrRender]]); const $$Astro = createAstro(); const $$Index = createComponent(async ($$result, $$props, $$slots) => { const Astro2 = $$result.createAstro($$Astro, $$props, $$slots); Astro2.self = $$Index; const accept = Astro2.request.headers.get("accept") || ""; if (!accept.includes("text/html")) { const script = await buildSyncScript(Astro2.url.origin, ".claude/skills"); return new Response(script, { headers: { "Content-Type": "text/plain; charset=utf-8" } }); } const skills = await listSkills(); return renderTemplate`${renderComponent($$result, "Base", $$Base, { "title": "Skillit \u2014 Claude Code Skills" }, { "default": async ($$result2) => renderTemplate`${skills.length === 0 ? renderTemplate`${maybeRenderHead()}

No skills yet

Create your first skill to get started.

Create your first skill
` : renderTemplate`

Skills

Manage and distribute Claude Code skills. Skills are prompt files that Claude loads automatically to learn custom behaviors and workflows.

Quick install

Run this in your project root to sync all skills. They'll be saved to .claude/skills/ and Claude Code will pick them up automatically on the next conversation.

curl -fsSL ${Astro2.url.origin} | bash
More options

Install globally (available in all projects):

curl -fsSL ${Astro2.url.origin}/gi | bash

Push local skills to the server:

curl -fsSL ${Astro2.url.origin}/p | bash
${renderComponent($$result2, "SkillSearch", SkillSearch, { "client:load": true, "client:component-hydration": "load", "client:component-path": "/Users/alex/projects/skillit/src/components/SkillSearch.vue", "client:component-export": "default" })}
${skills.map((skill) => renderTemplate`
${renderComponent($$result2, "SkillCard", $$SkillCard, { ...skill })}
`)}
`}` })} ${renderScript($$result, "/Users/alex/projects/skillit/src/pages/index.astro?astro&type=script&index=0&lang.ts")}`; }, "/Users/alex/projects/skillit/src/pages/index.astro", void 0); const $$file = "/Users/alex/projects/skillit/src/pages/index.astro"; const $$url = ""; const _page = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.defineProperty({ __proto__: null, default: $$Index, file: $$file, url: $$url }, Symbol.toStringTag, { value: 'Module' })); const page = () => _page; export { page };