Skill Creator
A powerful composite tool for creating and managing Claude Code skills. It serves as both:
- CLI Tool - A TypeScript/Node.js command-line interface for skill management
- Claude Code Subagent - An intelligent agent that automates skill creation workflow
Features
Core Capabilities
- 🚀 Automated Skill Creation: Generate skills with proper folder naming (
package@version format)
- 📚 Context7 Integration: Resolve the best Context7 project ID, then download and slice documentation automatically
- 🔍 Intelligent Search: Lightweight local full-text search with optional explicit vector mode
- 💾 Dynamic Content Management: Add custom knowledge with deduplication
CLI & Subagent
- 🛠️ Modern TypeScript: Full type safety with ESM modules
- 🎯 CLI-first Workflow: Non-interactive by default, with explicit interactive prompts when requested
- 🤖 Subagent Mode: Intelligent agent that handles the entire skill creation workflow
- 📦 Flexible Storage: Store skills in project (
.claude/skills/) or user directory (~/.claude/skills)
Installation
Install skill-creator
npm install -g skill-creator
Verify Installation
After installation, verify that the CLI is available:
skill-creator --help
If the help output renders, the local skill workflow is available.
Runtime Prerequisites
skill-creator does not require Claude Code MCP servers for its core CLI workflow.
It uses:
- npm registry HTTP APIs for
search and get-info
- Context7 HTTP APIs for
resolve-context7 and download-context7
You only need normal outbound network access when using those commands.
Quick Start
1. Install as CLI Tool
npm install -g skill-creator
2. Setup for Claude Code
skill-creator init
skill-creator init --scope auto
skill-creator init-cc --json
skill-creator download-context7 --pwd ~/.claude/skills/zustand@5 --package zustand --package-version 5.0.0 --json
skill-creator add-skill --package zustand --title "Best Practices" --content "Your custom notes" --json
skill-creator build-index --pwd ~/.claude/skills/zustand@5 --json
3. Choose Your Usage Mode
CLI Mode - Full Control
Use commands directly for complete control over the skill creation process.
Subagent Mode - Effortless
Simply describe what you want, and let the subagent handle everything automatically.
User: Use skill-creator subagent to help me create a vitest skill
User: Tell me about vitest testing patterns
The skill-creator subagent will handle the entire workflow automatically.
4. Create a Skill by cli
skill-creator search "react query"
skill-creator get-info @tanstack/react-query
skill-creator create-cc-skill --scope user --name "@tanstack/react-query" --description "React Query for data fetching" @tanstack/react-query@5 --json
skill-creator create-cc-skill --scope user --name "@tanstack/react-query" --skill-name "react-query" --description "React Query for data fetching" @tanstack/react-query@5 --json
skill-creator create-cc-skill --scope auto --name zod --description "Zod validation skill" zod@4 --json
skill-creator create-cc-skill --scope user --interactive --description "React Query for data fetching" @tanstack/react-query@5
skill-creator resolve-context7 @tanstack/react-query
skill-creator resolve-context7 is-odd --package-version 3.0.1
skill-creator download-context7 --package @tanstack/react-query --package-version 5.0.0
skill-creator download-context7 --pwd ~/.claude/skills/@tanstack__react-query@5
skill-creator download-context7 --package @tanstack/react-query /tanstack/react-query
skill-creator search-skill --package @tanstack/react-query "useQuery hook"
skill-creator add-skill --package @tanstack/react-query --title "Bundle guidance" --content "Prefer React Query cache ownership conventions in bundle-sensitive apps." --force-append
Commands
Installation & Setup
init | Install skill-creator as Claude Code subagent (user, current, or auto) |
init-cc | Install skill-creator as subagent in user directory |
Skill Creation (CLI Mode)
search <keywords> | Search npm packages |
get-info <package> | Get detailed package information |
resolve-context7 <package> | Resolve the best Context7 library id |
create-cc-skill <name> | Create a new skill directory |
Content Management
download-context7 [project_id] | Download and slice Context7 documentation |
build-index | Build or refresh the local search index |
search-skill <query> | Search in skill knowledge base |
add-skill | Add custom knowledge to skill |
Tip: When using the skill-creator as a subagent, you don't need to remember these commands. Just tell Claude what you want to create, and the subagent will handle the entire workflow automatically.
Options
--scope <user|current|auto>: Storage location for skills (required). auto resolves to current when .claude/agents/skill-creator.md exists, otherwise user
--name <name>: Package name for the skill (recommended)
--skill-name <name>: Visible skill name written into SKILL.md. When omitted, the visible skill name defaults to --name when present, otherwise skill_dir_name
--pwd <path>: Working directory for skill operations
--package <name>: Use package name to find skill directory
--package-version <version>: Version hint for Context7 library resolution
--description <description>: Custom description for the skill
--force: Replace the closest matching user knowledge note when adding content
--force-append: Append a structured knowledge update into the closest matching user note
--skip-indexing: Skip automatic local index building
--interactive: Enable interactive prompts
--json: Print machine-readable output for init, init-cc, create-cc-skill, download-context7, add-skill, and build-index
When --package <name> is used to find an existing skill, the CLI first checks the
<skill-package ...> metadata stored in SKILL.md. Directory-name matching is only a fallback.
Workflow
Complete Skill Creation Workflow
-
Search Package: Find the right package for your skill
skill-creator search "state management"
-
Get Package Info: Retrieve detailed information
skill-creator get-info zustand
-
Create Skill: Set up skill directory (requires --scope, recommended to use --name)
skill-creator create-cc-skill --scope current --name zustand --description "Zustand state management" zustand@5 --json
skill-creator create-cc-skill --scope current --name @tanstack/router --skill-name router-skill --description "Router workflow skill" tanstack-router@1 --json
skill-creator create-cc-skill --scope auto --name zod --description "Zod validation skill" zod@4 --json
skill-creator create-cc-skill --scope current --interactive zustand
--name records the source package identity for later package-aware workflows. --skill-name only controls the visible skill title written into SKILL.md.
-
Resolve Context7 Project ID: Pick the strongest Context7 source for the package
skill-creator resolve-context7 zustand --package-version 5.0.0
-
Download Documentation: Get Context7 docs with automatic indexing
skill-creator download-context7 --pwd ~/.claude/skills/zustand@5
skill-creator download-context7 --package zustand --package-version 5.0.0
skill-creator download-context7 --package zustand /zustand
-
Add Custom Knowledge: Enhance with your own content
skill-creator add-skill --package zustand --title "Best Practices" --content "Your custom notes"
skill-creator add-skill --package zustand --title "Best Practices" --content "Updated note" --force
skill-creator add-skill --package zustand --title "Operational update" --content "Additional guidance" --force-append
-
Search Knowledge Base: Query your skill
skill-creator search-skill --package zustand "typescript patterns"
Directory Structure
.claude/skills/
└── package@version/
├── assets/
│ ├── references/
│ ├── context7/ # Auto-sliced Context7 docs
│ └── user/ # Custom knowledge files
│ └── search/ # Local search indexes and state
└── SKILL.md # Skill documentation
Development
Development Setup
npm install
npm run dev
npm run build
npm test
npm run test:coverage
pnpm ts
Testing Context7 Integration
To test the built-in Context7 workflow during development:
skill-creator resolve-context7 vitest --package-version 4.1.7
skill-creator download-context7 --help
Verifying Installed Binaries During Development
When validating the real installed CLI during local development, prefer isolated install roots instead of relying on your machine's global package manager state:
pnpm verify:workflow
pnpm verify:installed
pnpm verify:linked
These workflow gates now also prove the vector-runtime contract:
- if the local runtime supports
node:sqlite and sqlite-vec, the verification path builds and queries a real --mode=vector index
- otherwise, the verification path proves that the CLI returns the expected runtime-support error
If you still want a linked local binary for ad hoc manual testing, use an isolated prefix:
TMP_PREFIX="$(mktemp -d /tmp/skill-creator-link-XXXXXX)"
npm_config_prefix="$TMP_PREFIX" npm link
PATH="$TMP_PREFIX/bin:$PATH" skill-creator --help
This avoids toolchain managers such as Volta interfering with the linked executable.
If you intentionally skip indexing during documentation download, rebuild it explicitly with:
skill-creator build-index --pwd ~/.claude/skills/zustand@5
build-index supports the same persistent index modes as the runtime:
--mode=auto: build the default lightweight persisted index path
--mode=fulltext: build the explicit MiniSearch index
--mode=vector: build the explicit SQLite vector index when the runtime supports it
For offline or deterministic local vector verification, pass an explicit embedder:
skill-creator build-index --pwd ~/.claude/skills/zustand@5 --mode vector --vector-embedder deterministic
skill-creator search-skill --pwd ~/.claude/skills/zustand@5 --mode vector --vector-embedder deterministic "query ownership"
--vector-embedder deterministic switches vector mode to the built-in local deterministic embedder instead of the default runtime embedder.
--mode=fuzzy is intentionally rejected because fuzzy search does not use a standalone persisted index.
Release Readiness
pnpm pre-release-check is a release gate, not a diagnostic summary. It now fails when:
- the current
package.json version is already published to npm
- the published npm version cannot be verified
That means a green result is evidence that the repository is both technically verified and version-ready for release.
Search Modes
auto: default path, tries full-text first and falls back to fuzzy when quality is weak
fulltext: explicit MiniSearch-backed local index
fuzzy: explicit uFuzzy fallback for path/term-style matching
vector: explicit SQLite vector search path when the local runtime supports it
chroma remains accepted only as an undocumented legacy alias for vector.
Architecture
- TypeScript + ESM: Modern JavaScript with full type safety
- Search Runtime: MiniSearch-backed local full-text indexing by default, with explicit vector mode available when runtime support exists
- Context7 API: Automated documentation downloading and slicing
- CLI-first Design: Professional command-line interface
- Modular Architecture: Clean separation of concerns
License
MIT
For detailed subagent usage, see templates/skill-creator.md