Search

PythonReactSEOPDF
OpenClaw

canva

Create, export, and manage Canva designs via the Connect API. Generate social posts, carousels, and graphics programmatically.

abgohel0 source installs☆ 0 Repository starsv1.0.0

Installation

Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.

SkillHub CLI

skillhub install abgohel/canva

Inspect the source and compatibility requirements, then follow its installation steps.

Give your agent the source link and ask it to inspect instructions and dependencies before explaining the installation steps.

View source ↗Guides

Skill instructions

Canva Skill

Create, export, and manage Canva designs via the Connect API.

When to Use

  • "Create an Instagram post about [topic]"
  • "Export my Canva design as PNG"
  • "List my recent designs"
  • "Create a carousel from these points"
  • "Upload this image to Canva"

Prerequisites

  1. Create a Canva Integration:

  2. Set Environment Variables:

    export CANVA_CLIENT_ID="your_client_id"
    export CANVA_CLIENT_SECRET="your_client_secret"
    
  3. Authenticate (first time): Run the auth flow to get access tokens (stored in ~/.canva/tokens.json)

API Base URL

https://api.canva.com/rest/v1

Authentication

Canva uses OAuth 2.0. The skill handles token refresh automatically.

# Get access token (stored in ~/.canva/tokens.json)
ACCESS_TOKEN=$(cat ~/.canva/tokens.json | jq -r '.access_token')

Core Operations

List Designs
curl -s "https://api.canva.com/rest/v1/designs" \
  -H "Authorization: Bearer $ACCESS_TOKEN" | jq .
Get Design Details
curl -s "https://api.canva.com/rest/v1/designs/{designId}" \
  -H "Authorization: Bearer $ACCESS_TOKEN" | jq .
Create Design from Template
curl -X POST "https://api.canva.com/rest/v1/autofills" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "brand_template_id": "TEMPLATE_ID",
    "data": {
      "title": {"type": "text", "text": "Your Title"},
      "body": {"type": "text", "text": "Your body text"}
    }
  }'
Export Design
# Start export job
curl -X POST "https://api.canva.com/rest/v1/exports" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "design_id": "DESIGN_ID",
    "format": {"type": "png", "width": 1080, "height": 1080}
  }'

# Check export status
curl -s "https://api.canva.com/rest/v1/e...

Source information

Source
github
Repository
openclaw/skills
Path
skills/abgohel/canva
Version
1.0.0
Commit
c6b87730c1262b2157b8c2c12ac06e4739d472dd
Classification source
rules
Status
active
Visibility
public

These signals come from indexed source analysis and may lag behind changes. Check the current source files.

README

🎨 Canva Skill for Clawdbot/Moltbot

Create, export, and manage Canva designs via the Connect API. The first Canva skill for the Moltbot ecosystem!

Features

  • 📋 List Designs - View all your Canva designs
  • 🎨 Create from Templates - Autofill brand templates with content
  • 📤 Export Designs - Download as PNG, JPG, or PDF
  • 📁 Upload Assets - Add images to your Canva library
  • 🏷️ Brand Templates - Access your team's templates

Installation

Via ClawdHub (coming soon)
npx clawdhub@latest install canva
Manual Installation
# Clone the skill
git clone https://github.com/abgohel/canva-skill.git

# Copy to skills directory
cp -r canva-skill ~/.clawdbot/skills/canva

Setup

1. Create a Canva Integration
  1. Go to Canva Developers
  2. Click "Create an integration"
  3. Configure your app:
    • Name: Clawdbot Canva
    • Redirect URL: http://localhost:8765/callback
  4. Copy your Client ID and Client Secret
2. Set Environment Variables
export CANVA_CLIENT_ID="your_client_id"
export CANVA_CLIENT_SECRET="your_client_secret"

Add to ~/.bashrc or ~/.zshrc for persistence.

3. Authenticate
./scripts/canva-auth.sh

Follow the prompts to authorize in your browser.

Usage

CLI Helper
# List your designs
./scripts/canva.sh designs

# Get design details
./scripts/canva.sh get DESIGN_ID

# Export as PNG
./scripts/canva.sh export DESIGN_ID png

# List brand templates
./scripts/canva.sh templates

# Create from template
./scripts/canva.sh autofill TEMPLATE_ID '{"title":{"type":"text","text":"Hello World"}}'

# Upload an image
./scripts/canva.sh upload image.png
In Clawdbot

Just ask naturally:

  • "Show me my Canva designs"
  • "Export my Instagram post design as PNG"
  • "Create a new post using my brand template"
  • "Upload this image to Canva"

API Reference

See SKILL.md for complete API document...

Extracted content

SKILL.md
# Canva Skill

Create, export, and manage Canva designs via the Connect API.

## When to Use

- "Create an Instagram post about [topic]"
- "Export my Canva design as PNG"
- "List my recent designs"
- "Create a carousel from these points"
- "Upload this image to Canva"

## Prerequisites

1. **Create a Canva Integration:**
   - Go to https://www.canva.com/developers/
   - Create a new integration
   - Get your Client ID and Client Secret

2. **Set Environment Variables:**
   ```bash
   export CANVA_CLIENT_ID="your_client_id"
   export CANVA_CLIENT_SECRET="your_client_secret"
   ```

3. **Authenticate (first time):**
   Run the auth flow to get access tokens (stored in `~/.canva/tokens.json`)

## API Base URL

```
https://api.canva.com/rest/v1
```

## Authentication

Canva uses OAuth 2.0. The skill handles token refresh automatically.

```bash
# Get access token (stored in ~/.canva/tokens.json)
ACCESS_TOKEN=$(cat ~/.canva/tokens.json | jq -r '.access_token')
```

## Core Operations

### List Designs

```bash
curl -s "https://api.canva.com/rest/v1/designs" \
  -H "Authorization: Bearer $ACCESS_TOKEN" | jq .
```

### Get Design Details

```bash
curl -s "https://api.canva.com/rest/v1/designs/{designId}" \
  -H "Authorization: Bearer $ACCESS_TOKEN" | jq .
```

### Create Design from Template

```bash
curl -X POST "https://api.canva.com/rest/v1/autofills" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "brand_template_id": "TEMPLATE_ID",
    "data": {
      "title": {"type": "text", "text": "Your Title"},
      "body": {"type": "text", "text": "Your body text"}
    }
  }'
```

### Export Design

```bash
# Start export job
curl -X POST "https://api.canva.com/rest/v1/exports" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "design_id": "DESIGN_ID",
    "format": {"type": "png", "width": 1080, "height": 1080}
  }'

# Check export status
curl -s "https://api.canva.com/rest/v1/e...
README
# 🎨 Canva Skill for Clawdbot/Moltbot

> Create, export, and manage Canva designs via the Connect API. The first Canva skill for the Moltbot ecosystem!

## Features

- 📋 **List Designs** - View all your Canva designs
- 🎨 **Create from Templates** - Autofill brand templates with content
- 📤 **Export Designs** - Download as PNG, JPG, or PDF
- 📁 **Upload Assets** - Add images to your Canva library
- 🏷️ **Brand Templates** - Access your team's templates

## Installation

### Via ClawdHub (coming soon)

```bash
npx clawdhub@latest install canva
```

### Manual Installation

```bash
# Clone the skill
git clone https://github.com/abgohel/canva-skill.git

# Copy to skills directory
cp -r canva-skill ~/.clawdbot/skills/canva
```

## Setup

### 1. Create a Canva Integration

1. Go to [Canva Developers](https://www.canva.com/developers/)
2. Click "Create an integration"
3. Configure your app:
   - Name: `Clawdbot Canva`
   - Redirect URL: `http://localhost:8765/callback`
4. Copy your **Client ID** and **Client Secret**

### 2. Set Environment Variables

```bash
export CANVA_CLIENT_ID="your_client_id"
export CANVA_CLIENT_SECRET="your_client_secret"
```

Add to `~/.bashrc` or `~/.zshrc` for persistence.

### 3. Authenticate

```bash
./scripts/canva-auth.sh
```

Follow the prompts to authorize in your browser.

## Usage

### CLI Helper

```bash
# List your designs
./scripts/canva.sh designs

# Get design details
./scripts/canva.sh get DESIGN_ID

# Export as PNG
./scripts/canva.sh export DESIGN_ID png

# List brand templates
./scripts/canva.sh templates

# Create from template
./scripts/canva.sh autofill TEMPLATE_ID '{"title":{"type":"text","text":"Hello World"}}'

# Upload an image
./scripts/canva.sh upload image.png
```

### In Clawdbot

Just ask naturally:

- "Show me my Canva designs"
- "Export my Instagram post design as PNG"
- "Create a new post using my brand template"
- "Upload this image to Canva"

## API Reference

See [SKILL.md](./SKILL.md) for complete API document...

Related skills

OpenClaw

bambu-studio-ai

heyixuan2

Bambu Lab 3D printer control and automation. Activate when user mentions: printer status, 3D printing, slice, analyze model, generate 3D, AMS filament, print monitor, Bambu Lab, or any 3D printing task. Full pi...

OpenClaw

dojo.md

edholofy

University for AI agents. 92 courses, 4400+ scenarios, any model via OpenRouter. Auto-training loops generate per-model SKILL.md documents. Works with Claude Code, OpenClaw, Cursor, Windsurf. No fine-tuning req...

OpenClaw

humanpages

human-pages-ai

Search and hire real humans for tasks — photography, delivery, research, and more

OpenClaw

geo-optimization

capt-marbles

Generative Engine Optimization (GEO) for AI search visibility. Optimize content to appear in ChatGPT, Perplexity, Claude, and Google AI Overviews. Use when optimizing websites, pages, or content for LLM discove...