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".
Manage Canva designs, assets, and folders via the Connect API.
| ✅ 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 | |
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
# 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
design:content (Read + Write)design:meta (Read)asset (Read + Write)brandtemplate:meta (Read)brandtemplate:content (Read)profile (Read)http://127.0.0.1:3001/oauth/redirectAdd 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"
{baseDir}/scripts/canva.sh auth
Opens browser for OAuth consent. Tokens stored in ~/.clawdbot/canva-tokens.json.
| Command | Description |
|---------|-------------|
| auth | Start OAuth flow (opens browser) |
| auth status | Check authentication status |
| auth logout | Clear stored tokens |
| 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
| Command | Description |
|---------|-------------|
| export <design_id> --format <fmt> | Export design |
| export status <job_id> | Check export job status |
Formats: pdf, png, jpg, gif, pptx, mp4
| 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 |
| Command | Description |
|---------|-------------|
| templates list | List brand templates |
| templates get <id> | Get template details |
| autofill <template_id> --data <json> | Autofill template with data |
| Command | Description |
|---------|-------------|
| folders list | List folders |
| folders create <name> | Create folder |
| folders get <id> | Get folder contents |
| Command | Description |
|---------|-------------|
| me | Get current user profile |
# 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 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
# 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"
}'
Base URL: https://api.canva.com/rest
See references/api.md for detailed endpoint documentation.
{baseDir}/scripts/canva.sh auth # Re-authenticate
The API has per-endpoint rate limits. The script handles backoff automatically.
If operations fail with 403, ensure your integration has the required scopes enabled.
| File | Purpose |
|------|---------|
| ~/.clawdbot/canva-tokens.json | OAuth tokens (encrypted) |
| ~/.clawdbot/canva-cache.json | Response cache |
Google Workspace CLI for Gmail, Calendar, Drive, Contacts, Sheets, and Docs.
Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks OpenClaw to add a note, list notes, search notes, or manage note folders.
Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.
Use when you need to control Slack from OpenClaw via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
Manage Trello boards, lists, and cards via the Trello REST API.
Category:productivity