Skip to main content
Skills can be created in three ways:
ModeSourceDescription
Skill FolderLocal directory or zipUpload a pre-built skill folder containing SKILL.md
Promptprompt (+ optional json_schema)Auto-generate SKILL.md and schema.json from a text prompt
Sessionsession_idAuto-generate SKILL.md from a chat session’s history

From Skill Folder

Upload a local skill folder directly. The folder must contain a SKILL.md file — the skill name and description are parsed from its YAML frontmatter automatically.
# Upload a local skill folder directly (zips and creates in one step)
vlmrun skills upload ./my-skill

# Override name/description from SKILL.md frontmatter
vlmrun skills upload ./my-skill --name "invoice-extraction" --description "Extract structured data from invoices"
The folder should follow the skill directory structure:
my-skill/
├── SKILL.md
├── schema.json
├── vlmrun.yaml
└── resources/  (optional)
Use the skill folder method when you need full control over the skill’s instructions, schema, and execution configuration. Use the prompt method for quick prototyping.

From Prompt

Generate a skill automatically from a text description and optional JSON schema:
# From a text prompt
vlmrun skills create --prompt "Extract invoice_id, date, and total_amount from invoices."

# With a JSON schema file
vlmrun skills create --prompt "Extract invoice data" --schema schema.json
The platform generates a SKILL.md with instructions derived from your prompt and a schema.json from the provided JSON schema.

From Chat Session

Generate a skill from an existing chat session’s conversation history:
vlmrun skills create --session-id "<session-id>"
The platform analyzes the conversation to extract the task instructions and expected output format.