Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@getskillmd/cli) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@getskillmd/cli
Spin up themed Next.js / Vite / Astro projects from any website, with AI agent rules pre-installed. Or drop a
skill.mdinto Claude Code, Cursor, Windsurf, Antigravity, or VS Code in one command.
skillmd turns any public URL into a design-system bundle (tokens, fonts, screenshots, skill.md) and applies it to your project — so your agent (Claude Code, Cursor, Windsurf, Antigravity, VS Code Copilot) already knows the brand before you type a prompt.
Install
Use npx (recommended):
npx @getskillmd/cli init stripe my-appOr install globally:
npm i -g @getskillmd/cli
skillmd init stripe my-appCommands
| Command | What it does |
|---|---|
skillmd init <slug-or-url> [name] |
Scaffold a themed project (Next/Vite/Astro) with agent rules pre-installed |
skillmd add <slug-or-url> |
Install a skill.md into an existing project (Claude/Cursor/Windsurf/Antigravity/VS Code) |
skillmd sync |
Re-pull and re-apply the latest tokens for the current project |
skillmd watch [slug] |
Watch a skill and auto-apply token changes (Pro) |
skillmd list |
List skills installed in the current project |
skillmd login |
Sign in via the browser (loopback OAuth; --device for headless) |
skillmd logout |
Remove the local CLI credentials |
skillmd whoami |
Print the current account and quota |
skillmd -v |
Print the CLI version |
init — scaffold a themed project
Clone a starter template, fetch the skill's tokens + fonts + screenshots, write app/globals.css / lib/tokens.ts, drop in the agent rule files, install deps, and git init. One command, ready to pnpm dev.
# Slug — uses a previously generated skill
skillmd init stripe my-stripe-clone
# URL — generates the skill on the fly, then scaffolds
skillmd init https://stripe.com my-stripe-clone
# Pick a template (default: next)
skillmd init linear my-app --template vite
skillmd init linear my-app --template astro
# Use your own custom template (Pro)
skillmd init linear my-app --template user/my-template-slug
# Pick which agents get rules installed
skillmd init stripe my-app --ide claude
skillmd init stripe my-app --ide cursor
skillmd init stripe my-app --ide all # default in non-TTY
# Pick the package manager (auto-detected by default)
skillmd init stripe my-app --package-manager pnpm
# Skip the side effects
skillmd init stripe my-app --no-install --no-git
# See what would happen without writing anything
skillmd init stripe my-app --dry-runOptions
| Flag | Description |
|---|---|
-t, --template <name> |
next (default), vite, astro, or user/<slug> for your custom template |
--package-manager <pm> |
pnpm | npm | bun | yarn — auto-detected if omitted |
--ide <ide> |
claude | cursor | windsurf | antigravity | vscode | all |
--mode <mode> |
URL generation mode: design (default) | api | library | generic |
--no-install |
Skip dependency install |
--no-git |
Skip git init |
--dry-run |
Print the plan without writing files |
--token <token> |
Override the CLI token (otherwise loaded from credentials / env) |
--cwd <path> |
Working directory (defaults to current) |
A .skillmd.json lockfile is written to the project root so sync and watch know which skill to track.
add — install a skill into an existing project
Drop the skill.md into your editor's rules directory without touching anything else.
# By slug — must already exist on getskillmd.com (browse https://getskillmd.com/discover)
skillmd add paystack-api
skillmd add paystack-api --ide cursor
# Or from a URL — generates a brand-new skill first
skillmd add https://stripe.com/docs/api --mode api
skillmd add https://nextjs.org/docs --mode libraryA slug only resolves if that skill was already generated on getskillmd.com. If it doesn't exist yet, pass the source URL instead and the CLI generates it on the fly.
If --ide is omitted, the CLI detects which config dirs already exist in your project (for VS Code, a .vscode folder or an existing .github/copilot-instructions.md). When multiple (or none) are found, you are prompted.
| IDE | Path written | Notes |
|---|---|---|
| Claude Code | .claude/skills/<slug>/SKILL.md |
Directory created if missing |
| Cursor | .cursor/rules/<slug>.mdc |
Wrapped with Cursor frontmatter |
| Windsurf | .windsurfrules |
Appended in a labelled section |
| Antigravity | .antigravity/AGENTS.md |
Appended in a labelled section |
| VS Code | .github/copilot-instructions.md |
Appended in a labelled section |
sync — re-pull the latest tokens
Run inside a project initialized with skillmd init. Re-fetches the skill bundle and re-applies app/globals.css + lib/tokens.ts only if the upstream tokensHash has changed.
skillmd sync
skillmd sync --force # re-apply even if the hash is unchangedwatch — auto-apply changes (Pro)
Long-running process that polls the skill bundle and re-applies tokens whenever they change upstream. Useful when iterating on a brand in the dashboard.
skillmd watch
skillmd watch --interval 60 # poll every 60s (default 30s, min 5, max 3600)
skillmd watch <slug> # override the lockfile slugPress Ctrl+C to stop. Requires a Pro account; sign in with skillmd login first.
login / logout / whoami
skillmd login # opens the browser, captures the token on localhost
skillmd login --device # device-code flow for SSH / headless / no-browser
skillmd whoami # email, plan, and inits used this month
skillmd logout # clears the credentials fileskillmd login runs a loopback OAuth flow (authorization code + PKCE): it starts a short-lived local server, opens your browser to approve, and exchanges the returned code for a token — nothing to copy or paste. If the browser flow can't complete (SSH, containers, ChromeOS, no browser), the CLI automatically falls back to the device-code flow; --device skips straight to it.
The same sign-in also authenticates the MCP server — log in once, and npx @getskillmd/mcp picks up the session automatically.
Credentials are stored at the OS-standard config location (~/.config/getskillmd/credentials.json, or $XDG_CONFIG_HOME/getskillmd/credentials.json). Access tokens refresh automatically.
list — what's installed here?
skillmd listScans .claude/skills, .cursor/rules, .windsurfrules, .antigravity/AGENTS.md, and .github/copilot-instructions.md in the current project and groups the result by IDE.
Templates
Three official starters live at:
tekcify/getskillmd-template-next— Next.js 16 + Tailwind 4 + shadcn/uitekcify/getskillmd-template-vite— Vite + React + Tailwind 4tekcify/getskillmd-template-astro— Astro + Tailwind 4
Pro accounts can register their own repos at https://getskillmd.com/account/templates and use them with --template user/<slug>.
Generation modes (for URL inputs)
| Mode | Best for |
|---|---|
design |
Product / marketing sites (default) |
api |
REST / GraphQL reference docs |
library |
SDKs, frameworks, language docs |
generic |
Anything else |
Environment variables
| Var | Purpose |
|---|---|
GETSKILLMD_API_URL |
Override the API base. Defaults to https://getskillmd.com. |
GETSKILLMD_TOKEN |
Override the CLI token (alternative to --token and credentials file). |
GETSKILLMD_TEMPLATE_PATH |
Use a local directory as the template source (for template development). |
Account and pricing
Free accounts can generate and install skills. Pro is required for watch, custom templates, and higher monthly init limits. See https://getskillmd.com/pricing.
License
MIT