# Canva

Work with Canva designs: list designs and folders, create designs, upload assets, and...

- Repository: https://github.com/Anil-matcha/awesome-muse-connectors (1403 stars)
- Category: Design
- License: MIT
- Last updated: 2026-10-13
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add Anil-matcha/awesome-muse-connectors --skill canva -g -a claude-code -y`
Codex: `npx skills add Anil-matcha/awesome-muse-connectors --skill canva -g -a codex -y`
Cursor: `npx skills add Anil-matcha/awesome-muse-connectors --skill canva -g -a cursor -y`
Gemini CLI: `npx skills add Anil-matcha/awesome-muse-connectors --skill canva -g -a gemini-cli -y`

## Description

Work with Canva designs: list designs and folders, create designs, upload assets, and export to PNG/JPG/PDF/MP4. Trigger phrases: canva, canva design, export canva design.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Canva

## Purpose
Read and manage Canva designs through the Canva Connect API: list designs and folders, inspect a design, create designs, upload assets, and export designs. Exports are async jobs: submit with `export`, then poll with `export-status` until the job succeeds.

## Tooling
All commands go through `bin/canva.py`:

```bash
bin/canva.py auth                                        # verify the connection (prints the Canva user)
bin/canva.py designs --query "pitch deck"                # list designs, optional search
bin/canva.py design --id DESIGN_ID                      # get one design's details
bin/canva.py folders                                     # list folders
bin/canva.py folder-items --id FOLDER_ID                 # list items in a folder
bin/canva.py assets                                      # list uploaded assets
bin/canva.py create --data '{"design_type":{"type":"preset","name":"presentation"}}'
                                                         # create a design (raw JSON body, per Canva docs)
bin/canva.py upload-asset --file ./logo.png              # upload a local file as an asset
bin/canva.py upload-asset --url https://example.com/a.png  # import an asset from a URL
bin/canva.py export --design-id DESIGN_ID --format png   # submit an async export job (png, jpg, pdf, mp4, ...)
bin/canva.py export-status --id EXPORT_ID                # poll the export job; prints download URLs when done
```

## Auth
- Provider id: `canva` (credential is collected as `custom.canva`)
- Collection: OAuth 2.0 authorization-code + PKCE via the secure credential flow (`credentials.request_api_access`); any Canva account can create a developer integration for free, but using it for other users requires Canva app review
- Required scopes: whatever the Canva integration granted (design read/write as configured)
- Allowed hosts: `api.canva.com`
- Status check: `bin/canva.py auth`

The rest: https://github.com/Anil-matcha/awesome-muse-connectors/blob/HEAD/connectors/canva/SKILL.md
