skills$openclaw/canva
coolmanns8.6k

by coolmanns

canva – OpenClaw Skill

canva is an OpenClaw Skills integration for writing workflows. |

8.6k stars746 forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026writing

Skill Snapshot

namecanva
description| OpenClaw Skills integration.
ownercoolmanns
repositorycoolmanns/canva-connect
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @coolmanns/canva-connect
last updatedFeb 7, 2026

Maintainer

coolmanns

coolmanns

Maintains canva in the OpenClaw Skills directory.

View GitHub profile
File Explorer
6 files
.
references
api.md
4.1 KB
scripts
canva.sh
15.7 KB
_meta.json
281 B
SKILL.md
6.1 KB
SKILL.md

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 designsAdd content to designs
Create blank designsEdit existing design content
Export designs (PNG/PDF/JPG)Upload documents (images only)
Create/manage foldersAI 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
  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

CommandDescription
authStart OAuth flow (opens browser)
auth statusCheck authentication status
auth logoutClear stored tokens

Designs

CommandDescription
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

CommandDescription
export <design_id> --format <fmt>Export design
export status <job_id>Check export job status

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

Assets

CommandDescription
assets listList uploaded assets
assets upload <file> [--name <name>]Upload asset
assets get <id>Get asset details
assets delete <id>Delete asset

Brand Templates

CommandDescription
templates listList brand templates
templates get <id>Get template details
autofill <template_id> --data <json>Autofill template with data

Folders

CommandDescription
folders listList folders
folders create <name>Create folder
folders get <id>Get folder contents

User

CommandDescription
meGet 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 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

FilePurpose
~/.clawdbot/canva-tokens.jsonOAuth tokens (encrypted)
~/.clawdbot/canva-cache.jsonResponse cache
README.md

No README available.

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

  • OpenClaw CLI installed and configured.
  • Language: Markdown
  • License: MIT
  • Topics:

FAQ

How do I install canva?

Run openclaw add @coolmanns/canva-connect in your terminal. This installs canva into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/coolmanns/canva-connect. Review commits and README documentation before installing.