Skills
Write your prompts once, deploy them to any LLM. Skills are markdown files that axel automatically symlinks to each tool's expected location.
How Skills Work
Each LLM tool expects skill files in different locations. Claude Code looks for CLAUDE.md or .claude/skills/, Codex uses AGENTS.md, and others have their own conventions.
axel solves this by letting you store skills in a single location and automatically creating the appropriate symlinks when you launch an assistant via axel.
Skill Locations
Skills can be stored in two locations:
- Local -
./skills/in your workspace - Global -
~/.config/axel/skills/shared across workspaces
Local skills take precedence. You can fork global skills to customize them per-project, or link them to keep them in sync.
Skill File Structure
Skills are markdown files with optional YAML frontmatter:
---
name: rust-developer
description: Expert Rust developer assistance
---
# Rust Developer
You are an expert Rust developer.
## Guidelines
- Write idiomatic Rust code
- Use proper error handling with Result and Option
- Prefer zero-cost abstractions
- Follow the Rust API guidelinesThe directory name becomes the skill name. Use axel skill list to see all available skills.
Skill Commands
axel skill listList all available skills, both local and global. Shows skill name, location, and description.
$ axel skill listaxel skill import <path>Import a skill file or directory to the global skills directory. This is the recommended way to add existing skills to axel.
$ axel skill import ./.claude/skills/web-developeraxel skill new [name]Create a new skill. If no name is provided, you will be prompted.
$ axel skill new code-revieweraxel skill fork <name>Copy a global skill to your local workspace. Use this when you need to customize a shared skill for this project.
$ axel skill fork rust-developeraxel skill link <name>Create a symlink from a global skill to your local workspace. Changes to the global skill will be reflected in this workspace.
$ axel skill link web-developeraxel skill rm <name>Remove a skill. If the skill exists in both locations, you'll be prompted to choose which one to remove.
$ axel skill rm old-skillUsing Skills in Workspaces
Reference skills in your AXEL.md:
---
shells:
- type: claude
skills:
- rust-developer
- code-reviewer
model: opus
- type: codex
skills:
- rust-developer
---Use "*" to load all available skills:
---
shells:
- type: claude
skills:
- "*"
---When you launch an assistant via axel, it installs the skills to each tool's expected location and cleans them up when the session ends.
How Symlinks Work
When you run axel claude, axel:
- Creates skill directories in
.claude/skills/with symlinked SKILL.md files - Creates a CLAUDE.md symlink pointing to AXEL.md for project context
- Launches Claude Code with your skills available via
/skill-name - Cleans up the symlinks when the session ends
When you run axel codex, axel:
- Creates skill directories in
.codex/skills/with symlinked SKILL.md files - Creates an AGENTS.md symlink pointing to AXEL.md for project context
- Launches Codex with your skills available via
/skills - Cleans up the symlinks when the session ends
The same process applies for OpenCode (AGENTS.md), and other supported assistants—each gets skills installed in their expected location.