Skip to content
Content
Skill

/canva-asset-manager

Upload and manage assets (images, videos, audio) in your Canva account. Use this skill when user wants to upload files to Canva, manage their asset library, or work with uploaded media. Handles image, video, and audio uploads. Follows 3-mode workflow. For organizing uploaded

From plugin
10x-content-expert
1530 skills3 agents4 commands
Install
$ npx -y skills add OpenAnalystInc/10x-Content-Expert --skill canva-asset-manager --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/canva-asset-manager

Context preview

The summary Claude sees to decide when to auto-load this skill.

Upload and manage assets (images, videos, audio) in your Canva account. Use this skill when user wants to upload files to Canva, manage their asset library, or work with uploaded media. Handles image, video, and audio uploads. Follows 3-mode workflow. For organizing uploaded

SKILL.md

canva-asset-manager.SKILL.md
name: canva-asset-manager
description: |
  Upload and manage assets (images, videos, audio) in your Canva account. Use this skill
  when user wants to upload files to Canva, manage their asset library, or work with
  uploaded media. Handles image, video, and audio uploads. Follows 3-mode workflow.
  For organizing uploaded assets use canva-folder-organizer.
allowed-tools:
  - Bash
  - Read
  - Write
  - Glob
  - AskUserQuestion

Canva Asset Manager Skill

> **QUICK REFERENCE** > - **Scripts location**: `scripts/` (NOT `skills/canva-asset-manager/scripts/` - those don't exist) > - **Auth check**: `.venv\Scripts\python.exe scripts/auth_check.py` > - **API client**: `scripts/canva_client.py` (import: `from canva_client import get_client`) > - **Sample script**: `scripts/samples/sample_canva_operations.py` > > **WARNING**: Commands below referencing `skills/canva-asset-manager/scripts/*.py` are WRONG paths. > Write custom Python using `canva_client.py`. See `scripts/samples/sample_canva_operations.py`.

Upload and manage media assets in your Canva account.

Scope of This Skill

**This skill handles:**

  • Upload images to Canva
  • Upload videos to Canva
  • Upload audio files to Canva
  • Manage uploaded assets (rename, delete)
  • View asset library
  • Add tags to assets
  • URL-based uploads

**NOT handled by this skill:**

  • Using assets in designs → Use `canva-image-editor`
  • Organizing into folders → Use `canva-folder-organizer`
  • Exporting designs → Use `canva-export`

Supported File Types

Images

| Format | Max Size | Notes | |--------|----------|-------| | PNG | 25MB | Supports transparency | | JPG/JPEG | 25MB | Best for photos | | SVG | 3MB | Vector graphics | | GIF | 25MB | Static or animated | | WebP | 25MB | Modern format | | HEIC | 25MB | Apple format |

Videos

| Format | Max Size | Notes | |--------|----------|-------| | MP4 | 1GB | Most common | | MOV | 1GB | Apple format | | WebM | 1GB | Web format | | M4V | 1GB | Apple format |

Audio

| Format | Max Size | Notes | |--------|----------|-------| | MP3 | 250MB | Most common | | WAV | 250MB | High quality | | M4A | 250MB | Apple format | | OGG | 250MB | Open format |

3-Mode Workflow

MODE 1: PLAN

1. **Identify Upload Requirements**

   # Check what files need uploading
   # Verify file types and sizes
   # Determine upload destination

2. **Document Upload Plan**

   ## Asset Upload Plan

   ### Files to Upload
   | File | Type | Size | Status |
   |------|------|------|--------|
   | hero-image.png | PNG | 2.1MB | Ready ✓ |
   | promo-video.mp4 | MP4 | 45MB | Ready ✓ |
   | logo.svg | SVG | 120KB | Ready ✓ |

   ### Upload Destination
   - Folder: Uploads (default) or specific folder

   ### Naming Convention
   - Keep original names OR
   - Rename to: project_asset_date format

   ### Tags to Apply
   - "Project Alpha"
   - "2024"
   - "Marketing"

MODE 2: CLARIFY

Upload-specific questions:

1. **File Verification**

  • "Upload all 5 images or select specific ones?"
  • "File 'large-video.mp4' is 500MB. This may take time. Proceed?"

2. **Naming**

  • "Keep original filenames or rename?"
  • "Use a naming pattern like 'project_001'?"

3. **Organization**

  • "Upload to default Uploads folder or specific folder?"
  • "Create a new folder for these uploads?"

4. **Tagging**

  • "Add any tags for easy searching later?"
  • "Apply project name as tag?"

MODE 3: IMPLEMENT

# Upload single file
python skills/canva-asset-manager/scripts/upload_asset.py \
  --file "path/to/image.png" \
  --name "Custom Name" \
  --tags "tag1,tag2"

# Upload multiple files
python skills/canva-asset-manager/scripts/batch_upload.py \
  --folder "input/images/" \
  --pattern "*.png" \
  --tags "batch-upload"

# Upload from URL
python skills/canva-asset-manager/scripts/upload_from_url.py \
  --url "https://example.com/image.png" \
  --name "Downloaded Image"

# Update asset metadata
python skills/canva-asset-manager/scripts/update_asset.py \
  --id "ASSET_ID" \
  --name "New Name" \
  --tags "new-tag,another-tag"

# Delete asset
python skills/canva-asset-manager/scripts/delete_asset.py \
  --id "ASSET_ID" \
  --confirm true

Available Scripts

Upload Scripts

  • `upload_asset.py` - Upload single file
  • `batch_upload.py` - Upload multiple files
  • `upload_from_url.py` - Upload from URL
  • `check_upload_status.py` - Check async upload progress

Management Scripts

  • `list_assets.py` - List uploaded assets
  • `get_asset.py` - Get asset details
  • `update_asset.py` - Update name/tags
  • `delete_asset.py` - Delete asset
  • `search_assets.py` - Search by name/tag

Utility Scripts

  • `validate_files.py` - Check file compatibility
  • `resize_before_upload.py` - Resize large images
  • `convert_format.py` - Convert to supported format

Upload Process

Canva uploads are **asynchronous**:

# Step 1: Initiate upload
job_id = start_upload(file_path, metadata)

# Step 2: Upload file data
upload_file_data(job_id, file_bytes)

# Step 3: Poll for completion
while True:
    status = check_status(job_id)
    if status == "completed":
        asset_id = get_asset_id(job_id)
        break
    elif status == "failed":
        handle_error()
        break
    time.sleep(2)

The scripts handle this automatically.

Batch Upload

For uploading multiple files:

# Upload all PNGs from a folder
python skills/canva-asset-manager/scripts/batch_upload.py \
  --folder "input/images/" \
  --pattern "*.png" \
  --naming "original" \
  --tags "project-x,batch-2024"

# Upload with custom naming
python skills/canva-asset-manager/scripts/batch_upload.py \
  --folder "input/images/" \
  --pattern "*.jpg" \
  --naming "prefix" \
  --prefix "campaign_" \
  --tags "marketing"

# Upload specific files from list
python skills/canva-asset-manager/scripts/batch_upload.py \
  --files "file1.png,file2.jpg,file3.svg" \
  --tags "selected-uploads"

URL Upload

Upload directly from U

Read more
Ships with10x-content-expert

A comprehensive Claude Code skills plugin for AI-powered content creation. Creates emails, social media content, presentations, blogs, and more - all aligned with your brand voice and informed by your reference materials.

Get the whole plugin

Other skills on 10x-content-expert.