A flexible skill installation tool with custom path support. iskill allows you to install, manage, and organize agent skills from various sources to any directory you specify.
- Flexible Path Management: Install skills to any custom path
- Multiple Source Formats: Support for GitHub shorthand, URLs, Git repositories, and local paths
- Installation Methods: Choose between symlink (recommended) or copy installation
- Skill Management: List, search, install, update, and remove skills
- Skills Compatibility: Fully compatible with the Agent Skills specification
- Configuration Support: Project and global configuration files
No installation required! Use directly with npx:
npx iskill <command>If you prefer to install globally:
npm install -g iskillInstall skills from a GitHub repository to a custom path:
npx iskill add vercel-labs/agent-skills --path ./my-skillsInstall specific skills:
npx iskill add vercel-labs/agent-skills --path ./my-skills --skill frontend-designList available skills without installing:
npx iskill add vercel-labs/agent-skills --listnpx iskill list --path ./my-skillsSearch interactively:
npx iskill findSearch by keyword:
npx iskill find typescriptRemove a specific skill:
npx iskill remove frontend-design --path ./my-skillsRemove all skills:
npx iskill remove --all --path ./my-skillsCheck for updates:
npx iskill check --path ./my-skillsUpdate all skills:
npx iskill update --path ./my-skillsnpx iskill init my-skillInstall skills from a source to a specified path.
npx iskill add <source> [options]Arguments:
<source>: Skill source (GitHub shorthand, URL, or local path)
Options:
-p, --path <path>: Target installation path (required)-s, --skill <skills...>: Install specific skills (use*for all)-l, --list: List available skills without installing-y, --yes: Skip confirmation prompts-m, --method <method>: Installation method:symlinkorcopy(default:symlink)
Examples:
# Install all skills from a repository
npx iskill add vercel-labs/agent-skills --path ./skills
# Install specific skills
npx iskill add vercel-labs/agent-skills --path ./skills --skill frontend-design backend-helper
# List available skills
npx iskill add vercel-labs/agent-skills --list
# Use copy method instead of symlink
npx iskill add vercel-labs/agent-skills --path ./skills --method copy
# Install from local path
npx iskill add ./local-skills --path ./installed-skills --method copyList installed skills in a specified path.
npx iskill list [options]Options:
-p, --path <path>: Path to list skills from (required)
Example:
npx iskill list --path ./skillsSearch for skills interactively or by keyword.
npx iskill find [query]Arguments:
[query]: Search keyword (optional for interactive mode)
Examples:
# Interactive search
npx iskill find
# Search by keyword
npx iskill find typescriptRemove installed skills from a specified path.
npx iskill remove [skills...] [options]Arguments:
[skills...]: Skills to remove (optional if using--all)
Options:
-p, --path <path>: Path to remove skills from (required)-s, --skill <skills...>: Specify skills to remove-y, --yes: Skip confirmation prompts--all: Remove all skills
Examples:
# Remove specific skill
npx iskill remove frontend-design --path ./skills
# Remove multiple skills
npx iskill remove frontend-design backend-helper --path ./skills
# Remove all skills
npx iskill remove --all --path ./skillsCheck for available skill updates.
npx iskill check [options]Options:
-p, --path <path>: Path to check for updates (required)
Example:
npx iskill check --path ./skillsUpdate installed skills to their latest versions.
npx iskill update [options]Options:
-p, --path <path>: Path to update skills in (required)
Example:
npx iskill update --path ./skillsCreate a new skill template.
npx iskill init [name]Arguments:
[name]: Skill name (optional)
Examples:
# Create skill in current directory
npx iskill init
# Create skill in subdirectory
npx iskill init my-skillnpx iskill add vercel-labs/agent-skills --path ./skillsnpx iskill add https://github.com/vercel-labs/agent-skills --path ./skillsnpx iskill add https://github.com/vercel-labs/agent-skills/tree/main/skills/web-design-guidelines --path ./skillsnpx iskill add https://gitlab.com/org/repo --path ./skillsnpx iskill add git@github.com:vercel-labs/agent-skills.git --path ./skillsnpx iskill add ./local-skills --path ./installed-skills --method copyCreates symbolic links to the skill source. This is the default method and provides:
- Single source of truth
- Easy updates
- Minimal disk space usage
npx iskill add vercel-labs/agent-skills --path ./skills --method symlinkCreates independent copies of each skill. Use when:
- Symlinks aren't supported
- You need offline copies
- You want to modify skills independently
npx iskill add vercel-labs/agent-skills --path ./skills --method copyiskill supports both project-level and global configuration files.
Create .iskillrc.json in your project root:
{
"defaultPath": "./skills",
"paths": ["./skills", "./custom-skills"],
"installMethod": "symlink",
"autoUpdate": false,
"telemetry": false
}Create ~/.iskill/config.json:
{
"defaultPath": "~/skills",
"paths": [],
"installMethod": "symlink",
"autoUpdate": false,
"telemetry": true
}| Option | Type | Description | Default |
|---|---|---|---|
defaultPath |
string | Default installation path | "./skills" |
paths |
string[] | Multiple skill paths | [] |
installMethod |
string | Default installation method (symlink/copy) | "symlink" |
autoUpdate |
boolean | Whether to automatically check for updates | false |
telemetry |
boolean | Whether to enable telemetry | true |
- Command line arguments (highest priority)
- Project-level configuration
- Global-level configuration
- Default values (lowest priority)
Skills are defined in SKILL.md files with YAML frontmatter:
---
name: my-skill
description: What this skill does and when to use it
---
# My Skill
Instructions for the agent to follow when this skill is activated.
## When to Use
Describe the scenarios where this skill should be used.
## Steps
1. First, do this
2. Then, do thatname: Unique identifier (lowercase, hyphens allowed)description: Brief explanation of what the skill does
version: Skill versionmetadata.internal: Set totrueto hide from normal discovery
iskill searches for skills in these locations within a repository:
- Root directory (if it contains
SKILL.md) skills/skills/.curated/skills/.experimental/skills/.system/.agents/skills/.agent/skills/.claude/skills/- And many more agent-specific directories
Ensure the repository contains valid SKILL.md files with both name and description in the frontmatter.
Ensure you have write access to the target directory.
On Windows, you may need to enable Developer Mode or run as administrator. Alternatively, use the --method copy option.
Ensure you have git installed and have network access to the repository.
| Variable | Description |
|---|---|
DISABLE_TELEMETRY |
Disable anonymous usage telemetry |
DO_NOT_TRACK |
Alternative way to disable telemetry |
Contributions are welcome! Please feel free to submit a Pull Request.
MIT
This project is inspired by and compatible with the skills CLI tool.
This project uses GitHub Actions for automated CI/CD:
Continuous Integration runs on:
- Push to
mainordevelopbranches - Pull Requests targeting
mainordevelop
The CI pipeline:
- Runs tests across Node.js versions 18.x, 20.x, and 21.x
- Executes linting and type checking
- Builds the project
Releases are automated via GitHub Actions:
# Patch release (1.0.0 -> 1.0.1)
npm run release:patch
# Minor release (1.0.0 -> 1.1.0)
npm run release:minor
# Major release (1.0.0 -> 2.0.0)
npm run release:majorThese commands will:
- Update the version in
package.json - Commit the version change
- Push to GitHub
- Trigger the release workflow
- Publish to npm
- Create a GitHub Release
For detailed deployment instructions, see DEPLOYMENT.md.
To manually trigger a release:
# Update version
npm version 1.0.1
# Create and push tag
git tag v1.0.1
git push origin v1.0.1This will automatically trigger the release workflow.