skills/cli/umbraco-media/SKILL.md
Media asset operations
npx skillsauth add albanist/umbraco_cli umbraco-mediaInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
PREREQUISITE: Read
../umbraco-shared/SKILL.mdfor auth, global flags, and security rules.
umbraco media <command> [flags]
| Command | Description |
|---------|-------------|
| media are-referenced | Bulk check: which of these media IDs are referenced by something |
| media children <id> | Get child media items (paginated; --skip/--take/--all) |
| media get <id> | Get media by ID |
| media referenced-descendants <id> | List items that reference this media item or any of its descendants |
| media references <id> | List items that reference this media item (paginated; --skip/--take/--all) |
| media root | Get root media items (paginated; --skip/--take/--all) |
| media search | Search media items |
| media urls <id> | Get media URLs |
umbraco media are-referenced
| Flag | Type | Default | Description |
|------|------|---------|-------------|
| --ids | string | — | Comma-separated media GUIDs to check (required) |
umbraco media children <id>
| Flag | Type | Default | Description |
|------|------|---------|-------------|
| --all | bool | false | Walk every page until exhausted (auto-paginates with --take as the page size, default 500; combine with --skip to start partway through). Bounded by an internal 100k-item ceiling. |
| --fields | string | — | Limit response fields |
| --first-n | int | 0 | Return only the first N items from item collections |
| --ids-only | bool | false | Return only item IDs for item collections |
| --skip | int | -1 | Skip count (passes through as ?skip=N; lets you walk past the server page size on large children/root collections) |
| --summarize | bool | false | Return only id/name/alias fields for item collections |
| --take | int | -1 | Take count (passes through as ?take=N; combine with --skip to page) |
umbraco media get <id>
| Flag | Type | Default | Description |
|------|------|---------|-------------|
| --fields | string | — | Limit response fields |
umbraco media referenced-descendants <id>
| Flag | Type | Default | Description |
|------|------|---------|-------------|
| --all | bool | false | Walk every page until exhausted (auto-paginates with --take as the page size, default 500; combine with --skip to start partway through). Bounded by an internal 100k-item ceiling. |
| --fields | string | — | Limit response fields |
| --first-n | int | 0 | Return only the first N items from item collections |
| --ids-only | bool | false | Return only item IDs for item collections |
| --skip | int | -1 | Skip count (passes through as ?skip=N; lets you walk past the server page size on large children/root collections) |
| --summarize | bool | false | Return only id/name/alias fields for item collections |
| --take | int | -1 | Take count (passes through as ?take=N; combine with --skip to page) |
umbraco media references <id>
Wraps GET /media/{id}/referenced-by. Same content-audit role as 'document references' for media assets.
| Flag | Type | Default | Description |
|------|------|---------|-------------|
| --all | bool | false | Walk every page until exhausted (auto-paginates with --take as the page size, default 500; combine with --skip to start partway through). Bounded by an internal 100k-item ceiling. |
| --fields | string | — | Limit response fields |
| --first-n | int | 0 | Return only the first N items from item collections |
| --ids-only | bool | false | Return only item IDs for item collections |
| --skip | int | -1 | Skip count (passes through as ?skip=N; lets you walk past the server page size on large children/root collections) |
| --summarize | bool | false | Return only id/name/alias fields for item collections |
| --take | int | -1 | Take count (passes through as ?take=N; combine with --skip to page) |
umbraco media root
| Flag | Type | Default | Description |
|------|------|---------|-------------|
| --all | bool | false | Walk every page until exhausted (auto-paginates with --take as the page size, default 500; combine with --skip to start partway through). Bounded by an internal 100k-item ceiling. |
| --fields | string | — | Limit response fields |
| --first-n | int | 0 | Return only the first N items from item collections |
| --ids-only | bool | false | Return only item IDs for item collections |
| --skip | int | -1 | Skip count (passes through as ?skip=N; lets you walk past the server page size on large children/root collections) |
| --summarize | bool | false | Return only id/name/alias fields for item collections |
| --take | int | -1 | Take count (passes through as ?take=N; combine with --skip to page) |
umbraco media search
| Flag | Type | Default | Description |
|------|------|---------|-------------|
| --params | string | — | Search parameters as JSON |
| --query | string | — | Search query |
| --skip | int | -1 | Skip count |
| --take | int | -1 | Take count |
umbraco media urls <id>
Safety: Always use
--dry-runfirst. Remove the flag only after verifying the dry-run output.
| Command | Description |
|---------|-------------|
| media create | Create media from JSON payload |
| media create-folder [name] | Create media folder |
| media move <id> | Move media item |
| media trash <id> | Move media item to recycle bin |
| media update <id> | Update media item |
| media upload <file> | Upload a file and create a media item |
umbraco media create
| Flag | Type | Default | Description |
|------|------|---------|-------------|
| --dry-run | bool | false | Validate request without executing |
| --json | string | — | Create payload as JSON |
| --print-template | bool | false | Print an annotated JSON skeleton; substitute placeholders before passing to --json |
Safe pattern:
# 1. Dry run first
umbraco media create --dry-run
# 2. Execute
umbraco media create
umbraco media create-folder [name]
| Flag | Type | Default | Description |
|------|------|---------|-------------|
| --dry-run | bool | false | Validate request without executing |
| --json | string | — | Create-folder payload as JSON |
| --parent | string | — | Target parent ID |
Safe pattern:
# 1. Dry run first
umbraco media create-folder [name] --dry-run
# 2. Execute
umbraco media create-folder [name]
umbraco media move <id>
| Flag | Type | Default | Description |
|------|------|---------|-------------|
| --dry-run | bool | false | Validate request without executing |
| --json | string | — | Move payload as JSON |
| --to | string | — | Target parent ID |
Safe pattern:
# 1. Dry run first
umbraco media move <id> --dry-run
# 2. Execute
umbraco media move <id>
umbraco media trash <id>
| Flag | Type | Default | Description |
|------|------|---------|-------------|
| --dry-run | bool | false | Validate request without executing |
Safe pattern:
# 1. Dry run first
umbraco media trash <id> --dry-run
# 2. Execute
umbraco media trash <id>
umbraco media update <id>
| Flag | Type | Default | Description |
|------|------|---------|-------------|
| --dry-run | bool | false | Validate request without executing |
| --json | string | — | Update payload as JSON |
Safe pattern:
# 1. Dry run first
umbraco media update <id> --dry-run
# 2. Execute
umbraco media update <id>
umbraco media upload <file>
| Flag | Type | Default | Description |
|------|------|---------|-------------|
| --culture | string | — | Culture code for culture-varying media types |
| --dry-run | bool | false | Validate request without executing |
| --name | string | — | Media item name (defaults to file name without extension) |
| --parent | string | — | Target parent media ID |
| --property | string | umbracoFile | File property alias |
| --type | string | — | Media type id, alias, or name |
Safe pattern:
# 1. Dry run first
umbraco media upload <file> --dry-run
# 2. Execute
umbraco media upload <file>
# Browse subcommands
umbraco media --help
# Inspect a specific endpoint schema
umbraco schema media.<method>
tools
Front-office member operations (login, profile, groups)
tools
Member group lookups (for 'member set-groups' GUID discovery)
development
Trigger and inspect ModelsBuilder source generation
tools
Umbraco Forms operations (read-only)