Skip to main content
A Skill is a folder containing a SKILL.md that teaches Qoder CLI how to do something specific: reviewing PRs using your team’s standards, generating commit messages in your preferred format, or querying your company’s database schema. When you ask Qoder CLI something that matches a Skill’s purpose, Qoder CLI automatically applies it. Key features:
  • Intelligent invocation: The model autonomously decides when to use a Skill based on user requests and Skill descriptions
  • Modular design: Each Skill focuses on solving a specific type of task
  • Flexible extension: Supports both user-level and project-level custom Skills

Quick Start

This example creates a Skill for generating API documentation.

1. Create the Skill directory

Create a directory in your user-level Skills folder. User-level Skills are available across all your projects. You can also create project-level Skills in .qoder/skills/ to share with your team.

2. Write SKILL.md

Every Skill needs a SKILL.md file, starting with YAML metadata between --- markers that must include name and description, followed by Markdown instructions. Create ~/.qoder/skills/api-doc-generator/SKILL.md:

3. Load and verify the Skill

New sessions load Skills at startup. If Qoder CLI is already running, use /skills reload to refresh the discovered Skills. Verify successful loading:
Or use the command:
The conversation should show api-doc-generator with its description.

4. Test the Skill

Open an API route file in your project and ask a question matching the Skill’s description:
Qoder CLI applies the api-doc-generator Skill and generates relevant API documentation. If not triggered, try rephrasing using keywords from the description.

How Skills Work

Skills can be loaded via command or automatically invoked by the model. The model decides which Skill to use based on request content—no explicit specification needed.
  1. Discovery: At startup, Qoder CLI loads each Skill’s name and description, enabling fast startup while letting the model understand each Skill’s applicable scenarios.
  2. Activation: When a request matches a Skill’s description, the model requests to use that Skill and loads the full SKILL.md. Some Skills can run without an extra confirmation; Skills that need additional capabilities may ask for approval. Write descriptions that include keywords users commonly use.
  3. Execution: The model executes according to Skill instructions, loading referenced files or running scripts as needed.

Where Skills live

Storage location determines a Skill’s availability: When names conflict, user-level Skills override project-level Skills.

Skills vs Commands

Core difference: Skills are triggered automatically based on your request, while Commands require you to type /command-name explicitly.
Note: Internally, Skills convert to a special Command type and share the same execution mechanism.

When to Use Skills

Use Skills for:
  • Complex specialized tasks: Workflows requiring domain expertise (code review, PDF processing, API design)
  • Standardized processes: Tasks following fixed steps (commit conventions, deployment flows)
  • Team knowledge sharing: Package best practices for sharing
  • Repetitive work: Frequently executed tasks requiring specialized guidance
Use Commands for:
  • Simple, quick operations
  • Tasks requiring explicit user triggering
  • Tasks not needing complex prompt guidance

Create a Skill

Choose Storage Location

Tip: User-level Skills override project-level Skills with the same name.
Create the directory:

Organize Directory Structure

Directory structure example:
Reference auxiliary files in SKILL.md for progressive disclosure:

Write SKILL.md

Create SKILL.md with YAML frontmatter and Markdown content:
Frontmatter fields:
Important: The description field is critical for the model to discover when to use your Skill. Include what it does and when to use it. See “Best Practices” section for details.

Use Skills

Automatic Trigger

Describe your need directly, the model automatically determines whether to use a Skill:
The model recognizes and invokes the log-analyzer Skill.

Manual Trigger

Use /skill-name to trigger manually:

View Available Skills

In CLI:
Through file system:

Update and Delete

Update a Skill

Edit SKILL.md directly. New sessions load the updated Skill on startup. If Qoder CLI is already running, run /skills reload to refresh the discovered Skills.

Delete a Skill

Delete the Skill directory:
Warning: Deleting a Skill directory permanently removes all files with no recovery.

Best Practices

Keep Skills Focused

Each Skill should focus on one specific domain or task type. Recommended:
  • log-analyzer - Log analysis
  • security-auditor - Security auditing
  • database-migrator - Database migration
Not recommended:
  • coding-helper - Too broad

Write Clear Descriptions

The description should include: what the Skill does, when to use it, and key trigger words. Comparison:

Test Before Sharing

Before sharing, ensure:
  • Skill triggers in expected scenarios
  • Instructions are clear
  • Common edge cases are covered

Document Version Changes

Add version history to SKILL.md:

Troubleshooting

Skill Not Triggering

Check file location:
Confirm SKILL.md exists with correct path. Check YAML format: View SKILL.md to verify frontmatter has no syntax errors (indentation, quote matching). Check description specificity: Use clear, specific descriptions:

Skill Execution Errors

Check dependency availability: The CLI automatically installs required dependencies when needed (or requests permission). Check script permissions:

Multiple Skills Conflict

When the CLI confuses similar Skills, use different trigger terms in descriptions to distinguish them.

Examples

Example 1: Simple Skill

Analyze log files and diagnose issues. Directory structure:
SKILL.md:

Example 2: Use multiple files

Database migration and version management tool. Directory structure:
SKILL.md: