Skills
Skills are reusable instruction sets that teach agents how to perform specific tasks. Create custom skills to standardize workflows and share expertise across your team.
Skills allow you to create reusable, shareable instructions that Agents can invoke when performing tasks. Instead of repeating detailed prompts, you can encapsulate common workflows, coding patterns, or domain expertise into skill files that Agents automatically discover and use.
Key features
Reusable instructions - Define a task once and let Agents use it whenever relevant
Project and global scopes - Create skills specific to a project or available across all projects
Automatic discovery - Agents are aware of all available skills and invoke them when appropriate
Simple markdown format - Skills are just markdown files with a small amount of metadata
Supporting files - Include scripts, templates, or other resources alongside your skill instructions
Slash command invocation - Invoke any skill directly with
/{skill-name}
How skills work
When you start an Agent conversation, the Agent receives a list of all available skills with their names and descriptions.
When the Agent determines that a skill would help accomplish your task, it loads the skill's full instructions and follows them to complete the task.
Skill discovery is based on your current working directory. For Git repositories, Warp includes all skills from your current directory up through the repository root. If you're working in project A, you won't have access to skills from project B.
Skills complement Rules, which provide persistent guidelines that Agents always follow. Use Rules for constraints and preferences; use Skills for specific task workflows.
Skill name conflicts
If you have skills with the same name in multiple directories, Warp handles the conflict differently depending on how the skill is invoked:
Natural language - The Agent receives a list of all in-scope skills including their names, descriptions, and file paths. The Agent can see all available options and chooses the appropriate skill based on its path.
Slash commands - When multiple skills share the same name, Warp displays all matching skills in the menu. You select which one to use based on the description.
Background resolution - When Warp resolves skill names automatically (without direct user selection), it prioritizes home directory (global) skills first, then skills from higher directories (closer to the repository root).
Example interactions
You can invoke skills in two ways:
Using natural language - Describe what you want to accomplish:
"Use the deploy skill to push to staging"
"Check the docs for broken links" (invokes a link-checking skill)
"Create a DOCX file with my project's README content"
"Draft documentation for the new API endpoint based on this PR"
Using slash commands - Invoke a skill directly with /{skill-name}:
/deploy- Invokes the deploy skill/add-feature-flag- Invokes the add-feature-flag skill
The Agent recognizes when your request matches a skill's purpose, loads the skill instructions, and follows them to complete the task.
Skill File Format
Skills are markdown files with YAML frontmatter. Each skill must have:
name - A unique identifier for the skill (typically kebab-case)
description - A brief explanation of what the skill does and when to use it
Basic Structure
Example Skill File
Here's a complete example of a skill that helps create feature flags:
Skill locations
Skills can be stored at two levels: project-level (accessible only within that project) and user-level (accessible from any project).
Project skills
Project skills live in your repository and are available when you're working in that project. We recommend storing them at your project root, but skills in subdirectories are also discovered when you're working within that subdirectory. This is useful for monorepos with separate ./frontend and ./backend directories.
Store them in any of these directories:
.agents/skills/(recommended).warp/skills/.claude/skills/.codex/skills/.cursor/skills/.gemini/skills/.copilot/skills/.factory/skills/.github/skills/.opencode/skills/
Each skill must be in its own subdirectory with a SKILL.md file. Any supporting files (scripts, templates, configs) should be referenced in SKILL.md so the Agent knows they exist:
Warp scans all supported skill directory names in your project root, allowing you to maintain skills compatible with multiple AI coding tools in the same repository.
Root directory skills (global)
Root directory skills are stored in your home directory and are available across all projects on your machine. These are useful for personal workflows, coding patterns, or procedures you use regardless of the specific project.
Store global skills in any of these directories in your home folder:
~/.agents/skills/(recommended)~/.warp/skills/~/.claude/skills/~/.codex/skills/~/.cursor/skills/~/.gemini/skills/~/.copilot/skills/~/.factory/skills/~/.github/skills/~/.opencode/skills/
The directory structure is the same as project skills:
Project vs Root directory skills
Understanding when to use each level:
Project skills are best for:
Project-specific workflows (deployment, testing, migrations)
Team-shared procedures and standards
Repository-specific automation and tooling
Domain-specific patterns for that codebase
Root directory skills are best for:
Personal coding preferences and patterns
General-purpose workflows used across all projects
Cross-project automation (git workflows, documentation templates)
Professional standards you apply everywhere
Creating skills
Step 1: Choose a location
Decide whether your skill should be:
Project-specific - Place it in one of your project's skill directories (
.agents/skills/,.warp/skills/,.claude/skills/, etc.)Global - Place it in one of your home directory's skill folders (
~/.agents/skills/,~/.warp/skills/,~/.claude/skills/, etc.)
Step 2: Create the directory structure
Create a subdirectory for your skill with a descriptive name:
Step 3: Write the skill file
Create SKILL.md in your skill directory:
Step 4: Add content
Write your skill with clear instructions:
Skills with supporting files
Skills can include supporting files like scripts, templates, or configuration files. Place these files in the same directory as your SKILL.md:
In your skill instructions, reference these files using relative paths. For example, in your SKILL.md:
This pattern is useful for:
Automation scripts - Python, shell, or Node scripts that perform complex tasks
Templates - Boilerplate files the Agent can copy and customize
Configuration - Default settings or schemas the skill references
Managing skills
Viewing available skills
Ask the Agent what skills are available:
The Agent lists all discovered skills with their names and descriptions. This includes skills from all supported directories in both your current project and your home directory.
Editing skills
Use the /open-skill slash command to modify existing skills:
This opens an interactive menu where you can:
Browse project and root directory skills
See which directory each skill is located in
Open the skill file in your editor
Best practices
Write clear descriptions - The description is how Agents decide whether to use your skill
Be specific in instructions - Include exact file paths, command syntax, and expected formats
Include examples - Show concrete use cases to help Agents understand intent
Keep skills focused - Each skill should do one thing well
Use consistent naming - Follow a naming convention like
verb-noun(e.g.,add-feature-flag,run-migrations)Version control your skills - Commit project skills to your repo so the whole team benefits
Related features
Rules - Set persistent guidelines and constraints for Agent behavior
MCP Servers - Expose external data sources and tools to Agents
Cloud Agents - Run Agents in the cloud on schedules or triggers
Agent Profiles - Control Agent permissions and autonomy
Last updated
Was this helpful?