WaylonWalker/skills

★ 0Forks 0GoGitHub ↗Compare

README

skills

A personal collection of agent skills for AI coding assistants.

This is not a public registry or shared marketplace -- it is a personal repo for skills you create, copy, and vet yourself. You use the skills CLI to apply them to your projects or globally across your machine.

With no subcommand, skills behaves like skills use.

Skills follow the agentskills.io specification: each skill is a directory containing a SKILL.md file with YAML frontmatter.

Install

Install the latest GitHub Release with mise:

mise use -g github:WaylonWalker/skills

Or install the latest GitHub Release with eget:

eget WaylonWalker/skills --to ~/.local/bin

Or install from source:

go install github.com/WaylonWalker/skills@latest

Or build from source locally:

git clone https://github.com/WaylonWalker/skills.git
cd skills
just build

Quick Start

# Apply a skill to the current project
skills

# Add a new skill to your collection
skills add

# Open a skill in your editor
skills edit go-conventions

# Browse and preview available skills
skills list

# Apply a skill to the current project
skills use

# Apply a skill globally
skills use -g

# Install a skill (alias for use)
skills install go-conventions

# Remove a skill from the current project
skills remove

# Show current configuration
skills config

# Show the installed CLI version
skills version

Configuration

Skills Directory

Set SKILLS_DIR to configure where your skills are stored:

export SKILLS_DIR="~/.config/skills"

Multiple directories are supported (comma-separated). The CLI searches all of them, and new skills are created in the first directory:

export SKILLS_DIR="~/.config/skills,~/git/skills/skills,~/private/skills"

Default: ~/.config/skills

Tool Support

Set SKILLS_TOOL to specify which AI tools to target:

export SKILLS_TOOL="claude-code,github-copilot,opencode"

By default (when SKILLS_TOOL is not set), skills are only installed into the project-local .agents/skills/ directory. This is the safest default since many agents share this path. To target specific tool directories or install globally, you must set SKILLS_TOOL explicitly.

The special value all targets every supported agent:

export SKILLS_TOOL="all"

Global installs (-g) require explicit tool configuration -- the CLI will refuse to install globally without SKILLS_TOOL set.

All tools follow the agentskills.io specification and install skills as <dir>/<name>/ symlinks in both project and global scopes.

GitHub Copilot supports multiple documented locations for agent skills. When targeting github-copilot, this CLI installs to both project paths (.agents/skills/ and .github/skills/) and both global paths (~/.copilot/skills/ and ~/.agents/skills/).

The full agent table is derived from vercel-labs/skills.

The supported-agent registry is kept in the agent-support skill and mirrored in the CLI. Run skills supported for the current project and global paths. Use skills list -g to browse only skills installed globally for the tools in SKILLS_TOOL.

The interactive skills use picker shows installation status only for the tools in SKILLS_TOOL. Paths shared by configured harnesses are labeled shared path because their original installer cannot be determined.

Skills Directory Structure

Skills follow the agentskills.io specification. Each skill is a directory containing a SKILL.md file with YAML frontmatter:

~/.config/skills/
  python-best-practices/
    SKILL.md
  go-conventions/
    SKILL.md
  docker-security/
    SKILL.md

The SKILL.md file contains YAML frontmatter with name and description fields, followed by the skill content:

---
name: go-conventions
description: Go coding conventions and best practices
---

# Go Conventions

Your instructions here.

Legacy flat .md files (e.g. my-skill.md) are also supported for backward compatibility.

Commands

Short aliases

The canonical command names remain the clearest form for scripts and documentation. These short aliases support an interactive, Vim-like workflow:

Command Short alias
skills add skills a
skills edit skills e
skills list skills l
skills use skills i or skills u
skills remove skills d or skills r
skills config skills c or skills conf
skills config show skills c s
skills supported skills s
skills completion skills comp
skills disable skills di
skills enable skills en
skills version skills v, skills ver, or skills vers

skills

With no subcommand, skills behaves like skills use.

skills                        # pick from available skills
skills apply go-conventions # alias for `skills use go-conventions`
skills install go-conventions # alias for `skills use go-conventions`

Use an explicit skills use <name> or skills install <name> command to apply a named skill. The first argument is always interpreted as a CLI command or command alias; a bare skill name is rejected.

skills use [name]

Apply a skill to the current project by creating symlinks in the tool-specific directories. Without a name, opens a fuzzy picker.

skills use                     # pick from available skills
skills use go-conventions      # apply a specific skill
skills use -g                  # pick and apply globally
skills use -g go-conventions   # apply a specific skill globally
skills apply go-conventions    # alias for use
skills install go-conventions  # alias for use

In the picker, use ↑/↓ to navigate, / to filter, Enter to select, and Esc to clear a filter or cancel. Uninstalled skills are prioritized ahead of installed skills.

skills list

Browse all available skills with an interactive preview.

skills list                    # browse skills, shows project install status
skills list -g                 # browse globally installed skills
                              # press d to disable, e to re-enable

skills add

Create a new skill from a template (creates <name>/SKILL.md with frontmatter).

skills add                     # prompted for name
skills add my-new-skill        # create with given name
skills new my-new-skill        # alias for add
skills create my-new-skill     # alias for add

skills edit [name]

Open a discovered skill's source file in the command configured by EDITOR. Without a name, it opens the same fuzzy picker as skills use.

skills edit                # pick a skill to edit
skills edit go-conventions

skills remove [name]

Remove a managed skill from the current project. A skill is managed when its installed entry is a symlink that resolves within one of the configured SKILLS_DIR directories. Manual directories and symlinks to other skill collections are not listed or removed.

skills remove                  # pick from installed skills
skills remove -g               # pick from globally installed skills
skills delete go-conventions   # alias for remove

skills disable / skills enable

Temporarily disable or re-enable a globally installed skill. Disabling renames the installed entry to <name>.disabled; it does not delete or modify the source skill.

skills disable -g agent-browser
skills enable -g agent-browser

skills config

Show current configuration (skills directories, tool filter, etc.).

skills config                  # show configuration
skills config show             # same as above
skills config view             # alias for show

skills supported

Show the supported agent/tool paths.

skills supported               # show supported tools and install paths
skills tools                   # alias for supported
skills agents                  # alias for supported

skills completion [shell]

Generate a shell completion script. Source or install the resulting script using your shell's normal completion setup.

skills completion bash
skills comp zsh

skills version

Print the installed CLI version.

skills version

Releases

From a clean, up-to-date main branch, create and push the next patch release:

just release

The first release is v0.1.0. Later releases increment the newest semantic version tag from the configured GitHub remote, for example from v0.1.0 to v0.1.1. Pushing the tag starts the GitHub Actions GoReleaser workflow. Do not move or reuse a published tag; make a new patch release instead.

Flags

Flag Description
-g, --global Operate on global tool directories instead of project
-v, --version Print version
-h, --help Print help

Environment Variables

Variable Description Default
SKILLS_DIR Comma-separated list of skills directories ~/.config/skills
SKILLS_TOOL Comma-separated list of tools to target (all for all) .agents/skills/ only
NO_COLOR Disable colored output unset

License

MIT

Contributors

WaylonWalker

Issues