> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vlm.run/llms.txt
> Use this file to discover all available pages before exploring further.

# skills

> Create, list, lookup, update, and download skills

The `vlmrun skills` command manages [skills](/skills/introduction) 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.

```bash theme={"theme":{"light":"github-light","dark":"dark-plus"}}
# 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)          |

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:

```bash theme={"theme":{"light":"github-light","dark":"dark-plus"}}
# 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/
```

<Tip>
  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.
</Tip>

## Create

Create a skill from a prompt or pre-uploaded file:

```bash theme={"theme":{"light":"github-light","dark":"dark-plus"}}
# 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

```bash theme={"theme":{"light":"github-light","dark":"dark-plus"}}
# 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

```bash theme={"theme":{"light":"github-light","dark":"dark-plus"}}
# 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 a skill zip and extract it locally:

```bash theme={"theme":{"light":"github-light","dark":"dark-plus"}}
# 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`) |
