Skip to content

Commit 29ce855

Browse files
authored
feat(cli): add the /cli landing page and a CLI header link (#435)
The CLI had only a generated help-text reference, so nothing sold what it gets you: Skills in your Agent, kept current. The page leads with that outcome and treats the CLI as the way there, then links /docs/cli for every flag. Every command it prints comes from shared/skill-commands.ts. The new search, outdated, update, and remove builders join the deploy grammar gate. The page mirrors /developers: noindex and out of the sitemap until a measured query admits it.
1 parent 42c99fc commit 29ce855

13 files changed

Lines changed: 618 additions & 3 deletions

File tree

‎COPY.md‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@ These exact strings. Do not paraphrase them per page.
3333
| Home section: trending | Trending skills this week. | guidance only: the homepage trending section heading |
3434
| Home section: changes | Keep up with skill changes. | guidance only: the homepage section heading for watching and the digest |
3535
| Home section: authoring | Write a skill for your project. | guidance only: the homepage section heading for making a Skill |
36+
| Nav: CLI | CLI | guidance only: the header nav and the mobile menu item that link `/cli` |
37+
| CLI H1 | The skilld CLI | guidance only: the `/cli` H1 and its OG title |
38+
| 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 |
39+
| 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 |
40+
| 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` |
41+
| CLI install label | Install the CLI | guidance only: the label beside `npm install --global skilld` on `/cli` |
3642
| Claim: open source | open-source CLI | guidance only: the CLI. Never call skilld.dev or its site open source |
3743
| Claim: privacy | analytics without cookies or IPs | guidance only: analytics and privacy copy. Never the bare "privacy-friendly" |
3844
| Claim: comparison | skills.sh alternative | guidance only: always a link to `/vs/skills-sh` |

‎app/app.vue‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,14 @@ watch(() => route.fullPath, () => {
155155
size="sm"
156156
class="hidden lg:inline-flex"
157157
/>
158+
<UButton
159+
to="/cli"
160+
label="CLI"
161+
color="neutral"
162+
variant="ghost"
163+
size="sm"
164+
class="hidden lg:inline-flex"
165+
/>
158166
<UButton
159167
to="/make-skill"
160168
label="Make a skill"
@@ -215,6 +223,14 @@ watch(() => route.fullPath, () => {
215223
block
216224
class="min-h-11 justify-start"
217225
/>
226+
<UButton
227+
to="/cli"
228+
label="CLI"
229+
color="neutral"
230+
variant="ghost"
231+
block
232+
class="min-h-11 justify-start"
233+
/>
218234
<UButton
219235
to="/make-skill"
220236
label="Make a skill"

‎app/components/CliInstallChip.vue‎

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<script setup lang="ts">
2+
import type { InstallTarget } from '~/composables/useInstallCopy'
3+
import { cliGlobalInstallCmd } from '#shared/skill-commands'
4+
import CommandChip from './_CommandChip.vue'
5+
6+
/**
7+
* The solid install chip for the CLI itself: one global npm install. It sits
8+
* beside `SkilldInstallChip` on the `/cli` page, which teaches the Agent to
9+
* drive what this one installs.
10+
*/
11+
const { surface } = defineProps<{
12+
/** The analytics surface, such as `cli-hero`. */
13+
surface: string
14+
}>()
15+
16+
const command = cliGlobalInstallCmd()
17+
// The CLI is the `skilld-dev/skilld` Repository, not a Skill, so copies count as a repo target.
18+
const target: InstallTarget = { kind: 'repo', owner: 'skilld-dev', repo: 'skilld' }
19+
const consequenceId = useId()
20+
</script>
21+
22+
<template>
23+
<div class="min-w-0">
24+
<CommandChip
25+
:command="command"
26+
mode="install"
27+
size="sm"
28+
:surface="surface"
29+
:target="target"
30+
copy-label="Copy CLI install command"
31+
:described-by="consequenceId"
32+
/>
33+
<span :id="consequenceId" class="sr-only">Installs the skilld CLI for your user account.</span>
34+
</div>
35+
</template>

‎app/utils/install-cmd.ts‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ export interface InstallToken {
1717
}
1818

1919
const RUNNERS = new Set(['npx', 'pnpx', 'bunx', 'npm', 'pnpm', 'yarn', 'bun', 'deno'])
20-
const SUBCOMMANDS = new Set(['add', 'remove', 'update', 'list', 'install', 'run', 'dlx', 'exec'])
20+
const SUBCOMMANDS = new Set(['add', 'remove', 'update', 'list', 'install', 'run', 'search', 'outdated', 'dlx', 'exec'])
2121

2222
/**
2323
* Colours an install command by role so the eye lands on the part that changes.

0 commit comments

Comments
 (0)