diff --git a/COPY.md b/COPY.md index f8e77708..898b59c8 100644 --- a/COPY.md +++ b/COPY.md @@ -28,13 +28,13 @@ These exact strings. Do not paraphrase them per page. | Promo label | Teach your agent skilld | guidance only: the last item of the homepage claims line. It opens a popover with `npx skilld install skilld --global` | | Promo panel note | No terminal? Paste this into your agent. | guidance only: the promo popover, under the install command and over the setup prompt | | Setup prompt | Read https://skilld.dev/agent.md and follow it to set up skilld for me. | guidance only: `agentSetupPrompt()` in `shared/agent-setup.ts` builds it for the promo popover and the homepage Agents section. `/agent.md` serves the steps it points at | -| Hero Agent logos | The seven `AGENT_LOGOS` icons, then `+12` | guidance only: the quiet row under the homepage claims line. Links `#agents`. Its label names each Agent. 12 is `AGENT_TARGETS` minus `AGENT_LOGOS` | +| Hero Agent logos | The seven `AGENT_LOGOS` icons, then `+66` | guidance only: the quiet row under the homepage claims line. Links `#agents`. Its label names each Agent. 66 is `AGENT_TARGETS` minus `AGENT_LOGOS` | | Step 1: find | Find Skills · Curated, plus what devs talk about. | guidance only: the first step of the homepage lifecycle band. The step name comes first, then one line. Links `/skills` | | Step 2: run | Run, Fork or Install · Run leaves nothing on disk. Fork or install to keep it. | guidance only: a homepage lifecycle step. Links `/cli#run`. It carries the band's one rose dot, because run is the default | | Step 3: update | Keep up to date · Watch repos and get a digest when Skills change. | guidance only: a homepage lifecycle step. Links `/cli#update` | | Pitch lines | Stay hyped. · No more skill bloat. · Keep updated. · Built to be built on. | guidance only: approved pitch lines for find, run, update and build on. The DESIGN.md motifs pair with them | | Home section: trending | Trending skills this week. | guidance only: the homepage trending section heading | -| Home section: agents | Works with your agent. · The CLI installs into 19 Agents. ChatGPT, Claude, and other MCP apps search the registry from the chat. | guidance only: the homepage Agents section heading and line. 19 is `AGENT_TARGETS.length` | +| Home section: agents | Works with your agent. · The CLI installs into 73 Agents. ChatGPT, Claude, and other MCP apps search the registry from the chat. | guidance only: the homepage Agents section heading and line. 73 is `AGENT_TARGETS.length` | | Agents way: prompt | Paste into any agent · Your agent reads the setup steps and picks the path that fits it. | guidance only: the first way in the homepage Agents section, over the setup prompt | | Agents way: terminal | From a terminal · Teaches your agent to search and run Skills in every project. | guidance only: the second way, over `npx skilld install skilld --global` | | Agents way: MCP | In ChatGPT, Claude, and other MCP apps · Add the server once. Then ask the chat to find a Skill. | guidance only: the third way, over the MCP server URL. Its link, "Setup steps for each app", opens `/developers?setup=mcp` | @@ -67,7 +67,7 @@ These exact strings. Do not paraphrase them per page. | CLI H1 | The skilld CLI | guidance only: the `/cli` H1 and its OG title | | CLI line | Search, run, install, and keep Skills current. | guidance only: the `/cli` line under the H1. It is the CLI's own `--help` line, so change it in the CLI first | | CLI intro | Give your Agent Skills that real maintainers write. A run reads the current source every time, and one command updates the Skills you install. Install the skilld Skill once, and your Agent searches and loads Skills on its own. | guidance only: the `/cli` intro under the line | -| CLI claims line | Open-source CLI · No telemetry · 19 Agent targets | guidance only: the `/cli` claims line. The page counts the `--agent` values of `skilld install --help` | +| CLI claims line | Open-source CLI · No telemetry · 73 Agent targets | guidance only: the `/cli` claims line. The page counts the `--agent` values of `skilld install --help` | | CLI install label | Install the CLI | guidance only: the label beside the CLI install chip on `/cli`. A switch above the chip picks `macOS / Linux`, `Windows`, or `npm`, and `macOS / Linux` is preselected | | CLI install consequence | One native binary. It upgrades itself from signed releases. · Needs Node.js. npm handles upgrades. | guidance only: the line under the CLI install chip on `/cli`. The first is for `macOS / Linux` and `Windows`, the second for `npm`. `crates/skilld-command/src/upgrade.rs` in the CLI decides both. If it changes, change these strings | | Claim: open source | open source | guidance only: the CLI and the site. `skilld-dev/skilld` and `skilld-dev/skilld.dev` are both public under MIT, checked 2026-10-07. If either repository goes private, narrow the claim to the one a reader can clone. "No telemetry" still names the CLI only | diff --git a/app/components/AgentTargets.vue b/app/components/AgentTargets.vue index a127d2f8..931802c7 100644 --- a/app/components/AgentTargets.vue +++ b/app/components/AgentTargets.vue @@ -1,9 +1,18 @@ @@ -24,19 +33,41 @@ const listId = useId() aria-hidden="true" /> -
-
-
- {{ agent.label }} -
-
- {{ agent.verify }} -
-
-
+
+
+
+ {{ agent.label }} +
+
+ {{ agent.verify }} +
+
+
+ + diff --git a/app/utils/agents.ts b/app/utils/agents.ts index c950034d..7de5e884 100644 --- a/app/utils/agents.ts +++ b/app/utils/agents.ts @@ -2,7 +2,7 @@ * The coding agents skilld can install into. * * Mirrored by hand from the CLI's agent registry at - * `crates/skilld-core/src/target.rs`, in the same order, as of skilld 3.6.0. + * `crates/skilld-core/src/target.rs`, in the same order, as of skilld 3.6.4. * The site and the CLI share no code, so this table drifts if a target is * added there without being added here. `/cli` lists these ids as the * `--agent` values and counts them. @@ -10,110 +10,458 @@ * The site never builds a per-agent command. The CLI detects the agent and * reports where it installed. Only `verify` survives here, because nothing the * CLI prints tells a user how to confirm the install landed in their editor. + * The 54 targets 3.6.4 added have no checked step yet, so they carry `null` + * and the site shows their project folder instead. Add a step only after + * checking it in that Agent's own docs. */ export interface AgentTarget { id: string /** Display name, matching the CLI's `displayName`. */ label: string - /** What to do after installing, so the user can confirm it worked. */ - verify: string + /** Where a project install lands, matching the CLI's `project_skills_dir`. */ + projectDir: string + /** What to do after installing, so the user can confirm it worked. Null until someone checks it. */ + verify: string | null } export const AGENT_TARGETS: readonly AgentTarget[] = [ { id: 'claude-code', label: 'Claude Code', + projectDir: '.claude/skills', verify: 'Start a new Claude Code session. Skills load automatically.', }, { id: 'cursor', label: 'Cursor', + projectDir: '.cursor/skills', verify: 'Restart Cursor. Skills appear under Settings, Cursor Rules.', }, { id: 'windsurf', label: 'Windsurf', + projectDir: '.windsurf/skills', verify: 'Restart Windsurf. Skills invoke when their description matches.', }, { id: 'cline', label: 'Cline', + projectDir: '.cline/skills', verify: 'Restart your editor. Cline reads skill descriptions at startup.', }, { id: 'codex', label: 'Codex', + projectDir: '.agents/skills', verify: 'Start a new Codex session. Skills are discovered at startup.', }, { id: 'github-copilot', label: 'GitHub Copilot', + projectDir: '.github/skills', verify: 'Restart your editor. Copilot reads .github/skills at startup.', }, { id: 'gemini-cli', label: 'Gemini CLI', + projectDir: '.gemini/skills', verify: 'Start a new Gemini CLI session. Verify with /skills list.', }, { id: 'goose', label: 'Goose', + projectDir: '.goose/skills', verify: 'Start a new Goose session. Skills are discovered at startup.', }, { id: 'amp', label: 'Amp', + projectDir: '.agents/skills', verify: 'Start a new Amp session. Skill descriptions load at startup.', }, { id: 'opencode', label: 'OpenCode', + projectDir: '.opencode/skills', verify: 'Start a new OpenCode session. Skills are discovered at startup.', }, { id: 'roo', label: 'Roo Code', + projectDir: '.roo/skills', verify: 'Restart your editor. Roo reads skill descriptions at startup.', }, { id: 'antigravity', label: 'Antigravity', + projectDir: '.agent/skills', verify: 'Restart Antigravity. Skills are discovered at startup.', }, { id: 'openclaw', label: 'OpenClaw', + projectDir: 'skills', verify: 'Start a new OpenClaw session. Verify with openclaw skills list.', }, { id: 'hermes', label: 'Hermes Agent', + projectDir: '.hermes/skills', verify: 'Start a new Hermes session. Verify with /skills. Project Skills load after hermes skills trust.', }, { id: 'kiro', label: 'Kiro CLI', + projectDir: '.kiro/skills', verify: 'Start a new Kiro CLI session. Type / to see Skills as slash commands.', }, { id: 'kilo', label: 'Kilo Code', + projectDir: '.kilo/skills', verify: 'Run /reload in Kilo Code, or start a new session. Then ask which Skills it has.', }, { id: 'droid', label: 'Droid', + projectDir: '.factory/skills', verify: 'Start a new Droid session. Verify with /skills.', }, { id: 'trae', label: 'Trae', + projectDir: '.trae/skills', verify: 'Open Trae. Skills appear under Settings, Skills & Commands.', }, { id: 'zed', label: 'Zed', + projectDir: '.agents/skills', verify: 'No restart needed. Type / in the Zed message editor to pick a Skill.', }, + { + id: 'aider-desk', + label: 'AiderDesk', + projectDir: '.aider-desk/skills', + verify: null, + }, + { + id: 'antigravity-cli', + label: 'Antigravity CLI', + projectDir: '.agents/skills', + verify: null, + }, + { + id: 'astrbot', + label: 'AstrBot', + projectDir: 'data/skills', + verify: null, + }, + { + id: 'augment', + label: 'Augment', + projectDir: '.augment/skills', + verify: null, + }, + { + id: 'bob', + label: 'IBM Bob', + projectDir: '.bob/skills', + verify: null, + }, + { + id: 'codearts-agent', + label: 'CodeArts Agent', + projectDir: '.codeartsdoer/skills', + verify: null, + }, + { + id: 'codebuddy', + label: 'CodeBuddy', + projectDir: '.codebuddy/skills', + verify: null, + }, + { + id: 'codemaker', + label: 'Codemaker', + projectDir: '.codemaker/skills', + verify: null, + }, + { + id: 'codestudio', + label: 'Code Studio', + projectDir: '.codestudio/skills', + verify: null, + }, + { + id: 'command-code', + label: 'Command Code', + projectDir: '.commandcode/skills', + verify: null, + }, + { + id: 'continue', + label: 'Continue', + projectDir: '.continue/skills', + verify: null, + }, + { + id: 'cortex', + label: 'Cortex Code', + projectDir: '.cortex/skills', + verify: null, + }, + { + id: 'crush', + label: 'Crush', + projectDir: '.crush/skills', + verify: null, + }, + { + id: 'deepagents', + label: 'Deep Agents', + projectDir: '.agents/skills', + verify: null, + }, + { + id: 'devin', + label: 'Devin for Terminal', + projectDir: '.devin/skills', + verify: null, + }, + { + id: 'dexto', + label: 'Dexto', + projectDir: '.agents/skills', + verify: null, + }, + { + id: 'firebender', + label: 'Firebender', + projectDir: '.agents/skills', + verify: null, + }, + { + id: 'forgecode', + label: 'ForgeCode', + projectDir: '.forge/skills', + verify: null, + }, + { + id: 'fx', + label: 'fx', + projectDir: '.fx/skills', + verify: null, + }, + { + id: 'inference-sh', + label: 'inference.sh', + projectDir: '.inferencesh/skills', + verify: null, + }, + { + id: 'jazz', + label: 'Jazz', + projectDir: '.jazz/skills', + verify: null, + }, + { + id: 'junie', + label: 'Junie', + projectDir: '.junie/skills', + verify: null, + }, + { + id: 'iflow-cli', + label: 'iFlow CLI', + projectDir: '.iflow/skills', + verify: null, + }, + { + id: 'kimchi', + label: 'Kimchi', + projectDir: '.kimchi/skills', + verify: null, + }, + { + id: 'kimi-code-cli', + label: 'Kimi Code CLI', + projectDir: '.agents/skills', + verify: null, + }, + { + id: 'kode', + label: 'Kode', + projectDir: '.kode/skills', + verify: null, + }, + { + id: 'lingma', + label: 'Lingma', + projectDir: '.lingma/skills', + verify: null, + }, + { + id: 'loaf', + label: 'Loaf', + projectDir: '.agents/skills', + verify: null, + }, + { + id: 'mcpjam', + label: 'MCPJam', + projectDir: '.mcpjam/skills', + verify: null, + }, + { + id: 'minimax-code', + label: 'MiniMax Code', + projectDir: '.minimax/skills', + verify: null, + }, + { + id: 'moxby', + label: 'Moxby', + projectDir: '.moxby/skills', + verify: null, + }, + { + id: 'mux', + label: 'Mux', + projectDir: '.mux/skills', + verify: null, + }, + { + id: 'openhands', + label: 'OpenHands', + projectDir: '.openhands/skills', + verify: null, + }, + { + id: 'ona', + label: 'Ona', + projectDir: '.ona/skills', + verify: null, + }, + { + id: 'pi', + label: 'Pi', + projectDir: '.agents/skills', + verify: null, + }, + { + id: 'posit-assistant', + label: 'Posit Assistant', + projectDir: '.posit/assistant/skills', + verify: null, + }, + { + id: 'qoder', + label: 'Qoder', + projectDir: '.qoder/skills', + verify: null, + }, + { + id: 'qoder-cn', + label: 'Qoder CN', + projectDir: '.qoder/skills', + verify: null, + }, + { + id: 'qwen-code', + label: 'Qwen Code', + projectDir: '.qwen/skills', + verify: null, + }, + { + id: 'replit', + label: 'Replit', + projectDir: '.agents/skills', + verify: null, + }, + { + id: 'reasonix', + label: 'Reasonix', + projectDir: '.reasonix/skills', + verify: null, + }, + { + id: 'rovodev', + label: 'Rovo Dev', + projectDir: '.rovodev/skills', + verify: null, + }, + { + id: 'sarvam-code', + label: 'Sarvam Code', + projectDir: '.agents/skills', + verify: null, + }, + { + id: 'tabnine-cli', + label: 'Tabnine CLI', + projectDir: '.tabnine/agent/skills', + verify: null, + }, + { + id: 'terramind', + label: 'Terramind', + projectDir: '.terramind/skills', + verify: null, + }, + { + id: 'tinycloud', + label: 'Tinycloud', + projectDir: '.tinycloud/skills', + verify: null, + }, + { + id: 'trae-cn', + label: 'Trae CN', + projectDir: '.trae/skills', + verify: null, + }, + { + id: 'warp', + label: 'Warp', + projectDir: '.agents/skills', + verify: null, + }, + { + id: 'zcode', + label: 'ZCode', + projectDir: '.zcode/skills', + verify: null, + }, + { + id: 'zencoder', + label: 'Zencoder', + projectDir: '.zencoder/skills', + verify: null, + }, + { + id: 'zenflow', + label: 'Zenflow', + projectDir: '.zencoder/skills', + verify: null, + }, + { + id: 'neovate', + label: 'Neovate', + projectDir: '.neovate/skills', + verify: null, + }, + { + id: 'pochi', + label: 'Pochi', + projectDir: '.pochi/skills', + verify: null, + }, + { + id: 'adal', + label: 'AdaL', + projectDir: '.adal/skills', + verify: null, + }, ] as const diff --git a/layers/marketing/app/pages/cli/index.vue b/layers/marketing/app/pages/cli/index.vue index e9c60b9b..9ba66821 100644 --- a/layers/marketing/app/pages/cli/index.vue +++ b/layers/marketing/app/pages/cli/index.vue @@ -30,6 +30,16 @@ import { pageRobots } from '../../utils/page-admissions' /** Every `--agent` value of `skilld install --help`, mirrored in `AGENT_TARGETS`. */ const targetCount = AGENT_TARGETS.length +/** + * Values shown before the rest fold away. Seventy-three chips made a wall + * twelve rows tall, so the list leads with the CLI's first targets, which are + * the Agents most devs run, and the rest wait behind one button. + */ +const LEADING_AGENT_VALUES = 12 +const showAllAgentValues = ref(false) +const agentValues = computed(() => showAllAgentValues.value ? AGENT_TARGETS : AGENT_TARGETS.slice(0, LEADING_AGENT_VALUES)) +const hiddenAgentValues = AGENT_TARGETS.length - LEADING_AGENT_VALUES + /** The README's example Skill. Its installed name is the last segment. */ const EXAMPLE = { owner: 'antfu', repo: 'skills', skill: 'vue' } as const @@ -284,14 +294,25 @@ const codeClass = 'font-mono text-xs text-default'

skilld install detects the Agents you use and writes the same Skill to each. Name one with --agent:

-