Upload
Zips and uploads the skill folder. Creates the skill. Name and description come fromSKILL.md YAML frontmatter.
# 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/Option | Description |
|---|---|
DIRECTORY | Path to the skill folder (must contain SKILL.md) |
--name, -n | Skill name (overrides frontmatter) |
--description, -d | Skill description (overrides frontmatter) |
~/.vlmrun/skill_archives/.
Inline Skills via CLI
vlmrun chat sends a --skill directory inline by default.
The CLI zips the directory.
No server upload.
# 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/
For production, upload with
vlmrun skills upload and reference the skill by name.Create
# 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"
| Option | Short | Description |
|---|---|---|
--prompt | -p | Text prompt to auto-generate the skill |
--prompt-file | -f | Read prompt from a file |
--schema | Path to a JSON schema file | |
--file-id | Pre-uploaded skill zip file ID | |
--name | -n | Skill name (required for --file-id) |
--description | -d | Skill description |
--json | -j | Output 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
| Option | Short | Description |
|---|---|---|
--limit | -n | Max items to return (default: 25) |
--offset | Items to skip (default: 0) | |
--order-by | Sort field: created_at, updated_at, or name (default: created_at) | |
--desc / --asc | Sort direction (default: --desc) | |
--grouped | -g | Show only latest version per skill name |
--json | -j | Output 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/Option | Short | Description |
|---|---|---|
NAME_OR_ID | Skill name or UUID (required) | |
--version | -V | Pin a specific version |
--json | -j | Output raw JSON |
Download
# 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/Option | Short | Description |
|---|---|---|
NAME_OR_ID | Skill name or UUID (required) | |
--version | -V | Pin a specific version |
--output | -o | Extract directory (default: ~/.vlmrun/skills) |