Skip to main content

Overview

The Skills API provides endpoints to list, retrieve, enable/disable, and install skills. Skills are extensions that provide specialized instructions and workflows to AI agents.

List All Skills

GET /api/skills

Retrieve a list of all available skills from both public and custom directories

Response

array
List of all skills regardless of enabled status

Example Request

Example Response


Get Skill Details

GET /api/skills/{skill_name}

Retrieve detailed information about a specific skill by its name

Path Parameters

string
required
The name of the skill to retrieve

Response

string
required
Name of the skill
string
required
Description of what the skill does
string
License information
string
required
Category: public or custom
boolean
required
Whether this skill is enabled

Example Request

Example Response

Error Responses

Not Found
Skill not found

Update Skill

PUT /api/skills/{skill_name}

Update a skill’s enabled status by modifying the extensions_config.json file

Path Parameters

string
required
The name of the skill to update

Request Body

boolean
required
Whether to enable or disable the skill

Response

Returns the updated skill object (same as GET /api/skills/).

Example Request

Example Response

Error Responses

Not Found
Skill not found
Internal Server Error
Failed to update skill configuration

Notes

  • This endpoint modifies the extensions_config.json file
  • The SKILL.md file itself is not modified
  • Changes take effect immediately for new conversations

Install Skill

POST /api/skills/install

Install a skill from a .skill file (ZIP archive) located in the thread’s user-data directory

Request Body

string
required
The thread ID where the .skill file is located
string
required
Virtual path to the .skill file (e.g., /mnt/user-data/outputs/my-skill.skill)

Response

boolean
required
Whether the installation was successful
string
required
Name of the installed skill
string
required
Installation result message

Example Request

Example Response

Error Responses

Bad Request
Invalid .skill file or validation error
Forbidden
Access denied (path traversal detected)
Not Found
Skill file not found
Conflict
Skill already exists

.skill File Format

A .skill file is a ZIP archive containing:
  • SKILL.md (required): Markdown file with YAML frontmatter
  • scripts/: Optional directory with executable scripts
  • references/: Optional directory with reference documentation
  • assets/: Optional directory with images, templates, etc.

SKILL.md Frontmatter

Naming Requirements

  • Must be hyphen-case (lowercase letters, digits, and hyphens only)
  • Cannot start or end with hyphen
  • Cannot contain consecutive hyphens
  • Maximum 64 characters
  • Must be unique (no duplicates)

Validation Rules

The API validates:
  1. File extension: Must be .skill
  2. ZIP format: Must be a valid ZIP archive
  3. SKILL.md exists: Required file with frontmatter
  4. Required fields: name and description in frontmatter
  5. Name format: Must follow hyphen-case convention
  6. Description: No angle brackets, max 1024 characters
  7. No duplicates: Skill name must not already exist

Skill Categories

Public Skills

Public skills are bundled with DeerFlow and located in the skills/public/ directory. These are maintained by the DeerFlow team.

Custom Skills

Custom skills are user-created and installed in the skills/custom/ directory. These can be installed via the API or manually placed in the directory.

Use Cases

List Available Skills

Toggle Skill Status

Install Custom Skill


Creating Skills

Learn how to create custom skills

Gateway Overview

Learn about the Gateway API