Overview
Skill commands provide comprehensive management of FastSkill skills through the command line interface.
Command Reference
fastskill init
Initialize skill-project.toml for skill authors in the current skill directory. This command extracts metadata from SKILL.md frontmatter and prompts for additional fields to create a comprehensive metadata file.
# Create skill-project.toml interactively
fastskill init
# Set version directly
fastskill init --version 1.2.3
# Skip prompts, use defaults
fastskill init --yes
# Force overwrite existing skill-project.toml
fastskill init --force
What it does:
- Derives skill ID from current directory name (required)
- Extracts available fields from
SKILL.md frontmatter (name, description, version, author, tags, capabilities)
- Prompts interactively for missing fields (when not using
--yes)
- Creates
skill-project.toml with all metadata fields including required id and version
Example skill-project.toml structure (note: id field is required):
[metadata]
id = "my-skill" # Required: Skill ID (must not contain slashes or scope)
version = "1.0.0" # Required: Semantic version
description = "Skill description" # Optional
author = "Author Name" # Optional
tags = ["tag1", "tag2"] # Optional
capabilities = ["cap1", "cap2"] # Optional
download_url = "https://example.com/skill.zip" # Optional
Important Notes:
- The
id field must not contain forward slashes or scope information (e.g., use “my-skill” not “dev-user/my-skill”)
- Scope is applied separately during publishing (from JWT token), resulting in final package name like “dev-user/my-skill”
- Skill name for display comes from
SKILL.md frontmatter, not from skill-project.toml
- This command is for skill authors working on individual skills. Run it from within a skill directory that contains
SKILL.md
fastskill read
Retrieve skill documentation and base directory path in an agent-optimized format. This command is designed for programmatic consumption by AI agents and automation tools.
# Read a skill by ID
fastskill read <skill-id>
# Example
fastskill read pptx
Output Format:
The command outputs structured text with:
- Skill identifier
- Base directory (absolute path)
- Complete SKILL.md content
Example Output:
Reading: pptx
Base directory: /home/user/.claude/skills/pptx
---
description: "Presentation creation and editing"
---
# PPTX Skill
This skill provides tools for creating and editing PowerPoint presentations.
Skill read: pptx
Use Cases:
- Load skill documentation into agent context
- Resolve skill resources (scripts, references, assets)
- Check skill availability programmatically
Error Handling:
- Exit code 0: Success
- Exit code 1: Skill not found or invalid identifier
- Exit code 2: System error (file access, size limit exceeded)
Limitations:
- Maximum file size: 500KB for SKILL.md files
- Single skill per invocation
- Read-only operation (does not execute scripts or modify data)
- Only works with already-installed skills
fastskill install
Install skills from skill-project.toml to the skills storage directory (like poetry install). The storage location is configured in .fastskill/config.yaml via skills_directory (default: .claude/skills/).
# Install all skills from skill-project.toml
fastskill install
# Install without dev group skills
fastskill install --without dev
# Install only production group skills
fastskill install --only prod
# Install from lock file (reproducible)
fastskill install --lock
fastskill update
Update skills in the skills storage directory to their latest versions from source. The storage location is configured in .fastskill/config.yaml via skills_directory (default: .claude/skills/).
# Update all skills
fastskill update
# Update specific skill
fastskill update my-skill-id
# Check for updates without installing
fastskill update --check
# Show what would be updated
fastskill update --dry-run
fastskill show
Display skill information and dependency tree.
# Show all skills
fastskill show
# Show specific skill
fastskill show my-skill-id
# Show dependency tree
fastskill show --tree
# Show dependency tree for specific skill
fastskill show my-skill-id --tree
fastskill add
Add a skill from a source (git URL, local folder, or zip file) and install it to the skills storage directory. Updates both skill-project.toml and skills.lock.
Storage Location: Skills are installed to the directory configured in .fastskill/config.yaml via the skills_directory setting (default: .claude/skills/). Repository configuration is stored in [tool.fastskill.repositories] section of skill-project.toml.
# Add skill from git URL
fastskill add https://github.com/org/skill.git
# Add skill in editable mode (for local development)
fastskill add ./local-skill -e
# Add skill to a group
fastskill add https://github.com/org/skill.git --group dev
# Add editable skill to dev group
fastskill add ./local-skill -e --group dev
Options:
-e, --editable: Install skill in editable mode (symlink/reference for local development)
--group <GROUP>: Add skill to a specific group (e.g., “dev”, “prod”)
--branch <BRANCH>: Git branch to checkout (for git URLs)
--tag <TAG>: Git tag to checkout (for git URLs)
--force: Force registration even if skill already exists
fastskill remove
Remove a skill from the skills storage directory and update both skill-project.toml and skills.lock. The storage location is configured in .fastskill/config.yaml via skills_directory (default: .claude/skills/).
# Remove skill (with confirmation)
fastskill remove my-skill-id
# Force removal without confirmation
fastskill remove my-skill-id --force
# Remove multiple skills
fastskill remove skill1 skill2 skill3
fastskill registry
Manage skill repositories for discovering and installing skills.
# Add a repository
fastskill registry add team-tools --repo-type git-marketplace https://github.com/org/team-skills.git
# List all repositories
fastskill registry list
# Remove a repository
fastskill registry remove team-tools
# Update repository metadata
fastskill registry update team-tools --branch develop
# List skills from a repository
fastskill registry list-skills
# Search for skills
fastskill registry search "web scraping"
fastskill register
Register new skills from files or directories.
# Register single skill
fastskill register ./skills/text-processor/skill.json
# Register from directory
fastskill register ./skills/ --recursive
# Register with validation
fastskill register skill.json --validate
# Register multiple files
fastskill register ./skills/**/*.json
# Register from URL
fastskill register https://example.com/skill.json
Options:
--validate: Validate before registration
--recursive: Register skills recursively
--batch: Batch mode for multiple files
--force: Overwrite existing skills
fastskill list
List locally installed skills with reconciliation against project and lock files. Similar to pip list or uv list.
# List all installed skills (grid format)
fastskill list
# List in JSON format
fastskill list --json
# Explicitly request grid format
fastskill list --grid
Output Format:
- Grid (default): Human-readable table with columns: id, version, description, source, installed_path, installed_at (if available), status
- JSON: Machine-readable array with same fields plus reconciliation status
Reconciliation Status:
ok: Skill is installed and matches project/lock files
missing: Skill is in skill-project.toml but not installed
extraneous: Skill is installed but not in skill-project.toml
mismatch: Installed version differs from skills.lock
Options:
--json: Output in JSON format (mutually exclusive with --grid)
--grid: Output in grid table format (default, mutually exclusive with --json)
Example JSON Output:
[
{
"id": "pptx",
"version": "1.2.3",
"description": "Presentation creation and editing",
"source": "registry",
"installed_path": "/home/user/.claude/skills/pptx",
"installed_at": "2025-01-15T10:30:00Z",
"status": "ok"
}
]
Note: This command reads installed skill manifests from the skills directory as the source of truth and cross-references skill-project.toml (desired) and skills.lock (pinned) to report reconciliation status.
fastskill validate
Validate skill definitions without registering them.
# Validate single skill
fastskill validate skill.json
# Validate with security checks
fastskill validate skill.json --security
# Validate with quality report
fastskill validate skill.json --quality --report report.json
# Batch validation
fastskill validate ./skills/**/*.json --batch
fastskill update
Update existing skill definitions.
# Update skill from file
fastskill update skill.json
# Update specific fields
fastskill update skill-id --version 1.1.0 --description "New description"
# Update with validation
fastskill update skill.json --validate
fastskill enable/disable
Enable or disable skills.
# Enable skill
fastskill enable text-processor
# Disable skill
fastskill disable text-processor
# Batch operations
fastskill enable skill1 skill2 skill3
fastskill disable skill1 skill2 skill3
fastskill remove
Remove skills from the service.
# Remove single skill
fastskill remove text-processor
# Remove with confirmation
fastskill remove text-processor --confirm
# Batch removal
fastskill remove skill1 skill2 skill3 --batch
Options:
--confirm: Skip confirmation prompt
--batch: Batch mode for multiple skills
--force: Force removal without validation
Examples
Skill Development Workflow
# 1. Create skill definition
echo '{
"id": "my-skill",
"name": "My Custom Skill",
"description": "Custom skill for testing",
"version": "1.0.0"
}' > skill.json
# 2. Validate skill
fastskill validate skill.json --security --quality
# 3. Register skill
fastskill register skill.json
# 4. List skills
fastskill list --tags custom
# 5. Test skill
fastskill execute my-skill test_tool
# 6. Update skill
fastskill update skill.json --version 1.1.0
# 7. Disable if needed
fastskill disable my-skill
# 8. Remove skill
fastskill remove my-skill --confirm
Batch Operations
# Register all skills in directory
fastskill register ./skills/ --recursive --validate
# List skills by category
fastskill list --tags data,analysis --format table
# Validate all skills
fastskill validate ./skills/**/*.json --batch --report validation-report.json
# Update all skills to new version
for skill in $(fastskill list --format json | jq -r '.data[].id'); do
fastskill update $skill --version 2.0.0
done
Skill commands support both interactive use and automation. Use appropriate options for your workflow.