HomeBrowseUpload
← Back to registry
// Skill profile

Canva Connect

name: canva

by coolmanns · published 2026-03-22

开发工具图像生成
Total installs
0
Stars
★ 0
Last updated
2026-03
// Install command
$ claw add gh:coolmanns/coolmanns-canva-connect
View on GitHub
// Full documentation

---

name: canva

version: 1.0.0

description: |

Manage Canva designs, assets, and folders via the Connect API.

WHAT IT CAN DO:

- List/search/organize designs and folders

- Export finished designs (PNG/PDF/JPG)

- Upload images to asset library

- Autofill brand templates with data

- Create blank designs (doc/presentation/whiteboard/custom)

WHAT IT CANNOT DO:

- Add content to designs (text, shapes, elements)

- Edit existing design content

- Upload documents (images only)

- AI design generation

Best for: asset pipelines, export automation, organization, template autofill.

Triggers: /canva, "upload to canva", "export design", "list my designs", "canva folder".

author: clawdbot

license: MIT

metadata:

clawdbot:

emoji: "🎨"

triggers: ["/canva"]

requires:

env:

- CANVA_CLIENT_ID

- CANVA_CLIENT_SECRET

primaryEnv: CANVA_CLIENT_ID

homepage: https://canva.dev/docs/connect/

---

# Canva Connect

Manage Canva designs, assets, and folders via the Connect API.

What This Skill Does (and Doesn't Do)

| ✅ CAN DO | ❌ CANNOT DO |

|-----------|--------------|

| List/search designs | Add content to designs |

| Create blank designs | Edit existing design content |

| Export designs (PNG/PDF/JPG) | Upload documents (images only) |

| Create/manage folders | AI design generation |

| Move items between folders | |

| Upload images as assets | |

| Autofill brand templates | |

Realistic Use Cases

**1. Asset Pipeline** 🖼️

Generate diagram → upload to Canva → organize in project folder

**2. Export Automation** 📤

Design finished in Canva → export via CLI → use in docs/website

**3. Design Organization** 📁

Create project folders → move related designs → keep Canva tidy

**4. Brand Template Autofill** 📋

Set up template in Canva → pass data via API → get personalized output

Quick Start

# Authenticate (opens browser for OAuth)
{baseDir}/scripts/canva.sh auth

# List your designs
{baseDir}/scripts/canva.sh designs list

# Create a new design
{baseDir}/scripts/canva.sh designs create --type doc --title "My Document"

# Export a design
{baseDir}/scripts/canva.sh export <design_id> --format pdf

Setup

1. Create Canva Integration

1. Go to [canva.com/developers/integrations](https://canva.com/developers/integrations)

2. Click **Create an integration**

3. Set scopes:

- `design:content` (Read + Write)

- `design:meta` (Read)

- `asset` (Read + Write)

- `brandtemplate:meta` (Read)

- `brandtemplate:content` (Read)

- `profile` (Read)

4. Set OAuth redirect: `http://127.0.0.1:3001/oauth/redirect`

5. Note **Client ID** and generate **Client Secret**

2. Configure Environment

Add to `~/.clawdbot/clawdbot.json` under `skills.entries`:

{
  "skills": {
    "entries": {
      "canva": {
        "clientId": "YOUR_CLIENT_ID",
        "clientSecret": "YOUR_CLIENT_SECRET"
      }
    }
  }
}

Or set environment variables:

export CANVA_CLIENT_ID="your_client_id"
export CANVA_CLIENT_SECRET="your_client_secret"

3. Authenticate

{baseDir}/scripts/canva.sh auth

Opens browser for OAuth consent. Tokens stored in `~/.clawdbot/canva-tokens.json`.

Commands

Authentication

| Command | Description |

|---------|-------------|

| `auth` | Start OAuth flow (opens browser) |

| `auth status` | Check authentication status |

| `auth logout` | Clear stored tokens |

Designs

| Command | Description |

|---------|-------------|

| `designs list [--limit N]` | List your designs |

| `designs get <id>` | Get design details |

| `designs create --type <type> --title <title>` | Create new design |

| `designs delete <id>` | Move design to trash |

**Design types:** `doc`, `presentation`, `whiteboard`, `poster`, `instagram_post`, `facebook_post`, `video`, `logo`, `flyer`, `banner`

Export

| Command | Description |

|---------|-------------|

| `export <design_id> --format <fmt>` | Export design |

| `export status <job_id>` | Check export job status |

**Formats:** `pdf`, `png`, `jpg`, `gif`, `pptx`, `mp4`

Assets

| Command | Description |

|---------|-------------|

| `assets list` | List uploaded assets |

| `assets upload <file> [--name <name>]` | Upload asset |

| `assets get <id>` | Get asset details |

| `assets delete <id>` | Delete asset |

Brand Templates

| Command | Description |

|---------|-------------|

| `templates list` | List brand templates |

| `templates get <id>` | Get template details |

| `autofill <template_id> --data <json>` | Autofill template with data |

Folders

| Command | Description |

|---------|-------------|

| `folders list` | List folders |

| `folders create <name>` | Create folder |

| `folders get <id>` | Get folder contents |

User

| Command | Description |

|---------|-------------|

| `me` | Get current user profile |

Examples

Create and Export a Poster

# Create
{baseDir}/scripts/canva.sh designs create --type poster --title "Event Poster"

# Export as PNG
{baseDir}/scripts/canva.sh export DAF... --format png --output ./poster.png

Upload Brand Assets

# Upload logo
{baseDir}/scripts/canva.sh assets upload ./logo.png --name "Company Logo"

# Upload multiple
for f in ./brand/*.png; do
  {baseDir}/scripts/canva.sh assets upload "$f"
done

Autofill a Template

# List available templates
{baseDir}/scripts/canva.sh templates list

# Autofill with data
{baseDir}/scripts/canva.sh autofill TEMPLATE_ID --data '{
  "title": "Q1 Report",
  "subtitle": "Financial Summary",
  "date": "January 2026"
}'

API Reference

Base URL: `https://api.canva.com/rest`

See [references/api.md](references/api.md) for detailed endpoint documentation.

Troubleshooting

Token Expired

{baseDir}/scripts/canva.sh auth  # Re-authenticate

Rate Limited

The API has per-endpoint rate limits. The script handles backoff automatically.

Missing Scopes

If operations fail with 403, ensure your integration has the required scopes enabled.

Data Files

| File | Purpose |

|------|---------|

| `~/.clawdbot/canva-tokens.json` | OAuth tokens (encrypted) |

| `~/.clawdbot/canva-cache.json` | Response cache |

// Comments
Sign in with GitHub to leave a comment.
// Related skills

More tools from the same signal band