Skip to main content
The vlmrun skills command manages skills on the VLM Run platform.

Upload

Zip and upload a local skill folder, then create the skill. The directory must contain a SKILL.md file — name and description are parsed from its YAML frontmatter automatically.
# Upload a skill folder
vlmrun skills upload ./my-skill

# Override name/description from frontmatter
vlmrun skills upload ./my-skill --name "invoice-extraction" --description "Extract invoice data"
Argument/OptionDescription
DIRECTORYPath to the skill folder (must contain SKILL.md)
--name, -nSkill name (overrides frontmatter)
--description, -dSkill description (overrides frontmatter)
Archives are stored under ~/.vlmrun/skill_archives/.

Inline Skills via CLI

The vlmrun chat command uses inline skills by default when you pass a --skill directory. The CLI bundles the skill directory into a zip and sends it inline — no server upload required:
# Use an inline skill (default behavior)
vlmrun chat "Extract data from this invoice" -i invoice.pdf --skill ./my-skill/

# To persist a skill on the server for reuse, upload it separately
vlmrun skills upload ./my-skill/
Inline skills via the CLI are ideal for local development and testing. For production use, upload the skill with vlmrun skills upload and reference it by name.

Create

Create a skill from a prompt or pre-uploaded file:
# From a text prompt
vlmrun skills create --prompt "Extract invoice_id, date, and total_amount from invoices."

# From a prompt file
vlmrun skills create --prompt-file instructions.txt

# With a JSON schema
vlmrun skills create --prompt "Extract invoice data" --schema schema.json

# From a pre-uploaded file ID
vlmrun skills create --file-id <file-id> --name "invoice-extraction"
OptionShortDescription
--prompt-pText prompt to auto-generate the skill
--prompt-file-fRead prompt from a file
--schemaPath to a JSON schema file
--file-idPre-uploaded skill zip file ID
--name-nSkill name (required for --file-id)
--description-dSkill description
--json-jOutput raw JSON

List

# List skills (latest 25)
vlmrun skills list

# Show only latest version per name
vlmrun skills list --grouped

# Custom sort and limit
vlmrun skills list --limit 50 --order-by name --asc

# Output raw JSON
vlmrun skills list --json
OptionShortDescription
--limit-nMax items to return (default: 25)
--offsetItems to skip (default: 0)
--order-bySort field: created_at, updated_at, or name (default: created_at)
--desc / --ascSort direction (default: --desc)
--grouped-gShow only latest version per skill name
--json-jOutput raw JSON

Get

# Get by name (latest version)
vlmrun skills get invoice-extraction

# Get a specific version
vlmrun skills get invoice-extraction --version 20260219-abc123

# Get by ID
vlmrun skills get <skill-id>

# Output raw JSON
vlmrun skills get invoice-extraction --json
Argument/OptionShortDescription
NAME_OR_IDSkill name or UUID (required)
--version-VPin a specific version
--json-jOutput raw JSON

Download

Download a skill zip and extract it locally:
# Download to default location (~/.vlmrun/skills/)
vlmrun skills download invoice-extraction

# Download a specific version
vlmrun skills download invoice-extraction --version 20260219-abc123

# Download to a custom directory
vlmrun skills download invoice-extraction --output ./skills/
Argument/OptionShortDescription
NAME_OR_IDSkill name or UUID (required)
--version-VPin a specific version
--output-oExtract directory (default: ~/.vlmrun/skills)