# Canva CLI for AI Agents

```json
{
  "title": "Canva CLI for AI Agents",
  "toolkit": "Canva",
  "toolkit_slug": "canva",
  "framework": "CLI",
  "framework_slug": "cli",
  "url": "https://composio.dev/toolkits/canva/framework/cli",
  "markdown_url": "https://composio.dev/toolkits/canva/framework/cli.md",
  "updated_at": "2026-05-06T08:05:01.606Z"
}
```

## Introduction

CLIs are eating MCPs. The industry is converging on the very same idea. MCPs for all their merit can be token hungry, slow, and unreliable for complex tool chaining. However, coding agents have become incredibly good at working with CLIs, and in fact they are far more comfortable working with CLI tools than MCP.
With Composio's Universal CLI, your coding agents can talk to over 1000+ SaaS applications. With Canva, agents can create a new instagram post design, list your brand templates for social use, start a folder for this project’s assets, and more — all without worrying about authentication.
This guide walks you through Composio Universal CLI and explains how you can connect it with coding agents like Claude Code, Codex, OpenCode, etc, for end-to-end Canva automation.

## Also integrate Canva with

- [ChatGPT](https://composio.dev/toolkits/canva/framework/chatgpt)
- [OpenAI Agents SDK](https://composio.dev/toolkits/canva/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/canva/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/canva/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/canva/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/canva/framework/codex)
- [Cursor](https://composio.dev/toolkits/canva/framework/cursor)
- [VS Code](https://composio.dev/toolkits/canva/framework/vscode)
- [OpenCode](https://composio.dev/toolkits/canva/framework/opencode)
- [OpenClaw](https://composio.dev/toolkits/canva/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/canva/framework/hermes-agent)
- [Google ADK](https://composio.dev/toolkits/canva/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/canva/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/canva/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/canva/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/canva/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/canva/framework/crew-ai)

## TL;DR

The idea behind building the universal CLI is to give agents a single command interface to interact with all your external applications. Here's what you'll get with it:
- Agent-friendly: Coding agents like Claude Code, Codex, and OpenCode can use CLI tools natively — no MCP setup required.
- Authentication handled: Connect once via OAuth or API Key, and all CLI commands work with your credentials automatically.
- Tool discovery: Search, inspect, and execute 20,000+ tools across 1000+ apps from one interface.
- Trigger support: Use triggers to listen for events across your apps, powered by real-time webhooks or polling under the hood.
- Type generation: Generate typed schemas for autocomplete and type safety in your projects.

## Connect Canva to CLI

### Prerequisites
Install the Composio CLI, authenticate, and initialize your project:

```bash
# Install the Composio CLI
curl -fsSL https://composio.dev/install | bash

# Authenticate with Composio
composio login
```

## What is the Canva MCP server, and what's possible with it?

The Canva MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Canva account. It provides structured and secure access to your Canva designs, templates, folders, assets, and user details, so your agent can create designs, organize projects, manage assets, and collaborate on feedback for you.
- Automated design creation and asset integration: Direct your agent to generate new Canva designs using templates or custom dimensions, and add assets from your projects automatically.
- Seamless folder and project organization: Have the agent create user or subfolders to keep your Canva projects structured and easily accessible.
- Asset management and cleanup: Let your agent fetch upload statuses, manage, or delete assets by ID, helping you keep your design library up to date.
- Collaborative design feedback: Empower your agent to add comments or reply within designs, making it easy to facilitate feedback and teamwork directly in Canva.
- User and team information retrieval: Quickly obtain user or team details, allowing your agent to personalize interactions and automate workflows based on your Canva account info.

## Supported Tools

| Tool slug | Name | Description |
|---|---|---|
| `CANVA_ACCESS_USER_SPECIFIC_BRAND_TEMPLATES_LIST` | Access user specific brand templates list | This year, brand template ids will change; integrations storing them must update within 6 months. also, api use requires canva enterprise membership. |
| `CANVA_CREATE_CANVA_DESIGN_WITH_OPTIONAL_ASSET` | Create canva design with optional asset | Create a new canva design using a preset or custom dimensions, and add an asset with `asset id` from a user's project using relevant apis. |
| `CANVA_CREATE_COMMENT_REPLY_IN_DESIGN` | Create comment reply in design | This preview api allows replying to comments within a design on canva, with a limit of 100 replies per comment. users should note potential unannounced changes, and that preview apis are not eligible for public integrations. |
| `CANVA_CREATE_DESIGN_COMMENT_IN_PREVIEW_API` | Create design comment in preview api | This api is in preview and may change without notice; integrations using it won't pass review. it allows creating comments on a design, with a limit of 1000 comments per design. |
| `CANVA_CREATE_USER_OR_SUB_FOLDER` | Create user or sub folder | This api creates a folder in a canva user's projects at the top level or within another folder, returning the new folder's id and additional details upon success. |
| `CANVA_DELETE_ASSET_BY_ID` | Delete asset by id | You can delete an asset by specifying its `assetid`. this operation mirrors the behavior in the canva ui. deleting an item moves it to the trash. deleting an asset doesn't remove it from designs that already use it. |
| `CANVA_EXCHANGE_OAUTH20_ACCESS_OR_REFRESH_TOKEN` | Exchange oauth 2 0 access or refresh token | The oauth 2.0 endpoint issues time-limited (4-hour) access tokens of up to 4kb for user authorization via codes or refresh tokens. it requires client id/secret for authentication. |
| `CANVA_FETCH_ASSET_UPLOAD_JOB_STATUS` | Fetch asset upload job status | Summarize asset upload outcome by repeatedly calling the endpoint until a 'success' or 'failed' status is received after using the create asset upload job api. |
| `CANVA_FETCH_CANVA_CONNECT_SIGNING_PUBLIC_KEYS` | Fetch canva connect signing public keys | The api for verifying canva webhooks, 'connect/keys,' is in preview, meaning unstable, not for public integrations, and provides a rotating jwk for signature verification to prevent replay attacks. cache keys for efficiency. |
| `CANVA_FETCH_CURRENT_USER_DETAILS` | Fetch current user details | Returns the user id, team id, and display name of the user account associated with the provided access token. |
| `CANVA_FETCH_DESIGN_METADATA_AND_ACCESS_INFORMATION` | Fetch design metadata and access information | Gets the metadata for a design. this includes owner information, urls for editing and viewing, and thumbnail information. |
| `CANVA_GET_DESIGN_EXPORT_JOB_RESULT` | Get design export job result | Get the outcome of a canva design export job; if done, receive download links for the design’s pages. for details, visit the create design export job api documentation. |
| `CANVA_INITIATE_CANVA_DESIGN_AUTOFILL_JOB` | Initiate canva design autofill job | Upcoming brand template id updates require migration within 6 months. canva enterprise users can auto-fill designs using various data types, including experimental chart data. monitor jobs with specific api. |
| `CANVA_INITIATES_CANVA_DESIGN_EXPORT_JOB` | Initiates canva design export job | Canva's new job feature exports designs in multiple formats using a design id, with provided download links. the export status can be tracked via an api. exports with 'pro' quality may fail if the design contains unpaid premium elements. |
| `CANVA_LIST_DESIGN_PAGES_WITH_PAGINATION` | List design pages with pagination | Preview api for canva: subject to unannounced changes and not for public integrations. lists metadata for design pages with optional `offset` and `limit`; not applicable to all design types. |
| `CANVA_LIST_FOLDER_ITEMS_BY_TYPE_WITH_SORTING` | List folder items by type with sorting | Lists the items in a folder, including each item's `type`. folders can contain: - other folders. - designs, such as instagram posts, presentations, and documents ([canva docs](https://www.canva.com/create/documents/)). - image assets. |
| `CANVA_LIST_USER_DESIGNS` | List User Designs | Provides a summary of canva user designs, includes search filtering, and allows showing both self-created and shared designs with sorting options. |
| `CANVA_MOVE_ITEM_TO_SPECIFIED_FOLDER` | Move item to specified folder | Transfers an item to a different folder by specifying both the destination folder's id and the item's id. if the item is in various folders, an error occurs; manual relocation via canva ui is required. |
| `CANVA_REMOVE_FOLDER_AND_MOVE_CONTENTS_TO_TRASH` | Remove folder and move contents to trash | Deletes a folder by moving the user's content to trash and reassigning other users' content to their top-level projects. |
| `CANVA_RETRIEVE_APP_PUBLIC_KEY_SET` | Retrieve app public key set | Returns the json web key set (public keys) of an app. these keys are used to verify jwts sent to app backends. |
| `CANVA_RETRIEVE_A_SPECIFIC_DESIGN_COMMENT` | Retrieve a specific design comment | This preview api is subject to unannounced changes and can't be used in public integrations. it retrieves a comment, details of which are on canva help center. |
| `CANVA_RETRIEVE_ASSET_METADATA_BY_ID` | Retrieve asset metadata by id | You can retrieve the metadata of an asset by specifying its `assetid`. |
| `CANVA_RETRIEVE_BRAND_TEMPLATE_DATASET_DEFINITION` | Retrieve brand template dataset definition | Canva's brand template ids will change later this year, including a 6-month integration migration. api access requires enterprise membership, providing autofill for images, text, and charts, although chart data could change during preview. |
| `CANVA_RETRIEVE_CANVA_ENTERPRISE_BRAND_TEMPLATE_METADATA` | Retrieve canva enterprise brand template metadata | Upcoming update will change brand template ids; integrations must migrate within 6 months. api use requires canva enterprise membership. |
| `CANVA_RETRIEVE_DESIGN_AUTOFILL_JOB_STATUS` | Retrieve design autofill job status | Api users with canva enterprise membership can retrieve design autofill job results, potentially requiring multiple requests until a `success` or `failed` status is received. |
| `CANVA_RETRIEVE_DESIGN_IMPORT_JOB_STATUS` | Retrieve design import job status | Gets the status and results of design import jobs created using the [create design import job api](https://www.canva.dev/docs/connect/api-reference/design-imports/create-design-import-job/). |
| `CANVA_RETRIEVE_FOLDER_DETAILS_BY_ID` | Retrieve folder details by id | Gets the name and other details of a folder using a folder's `folderid`. |
| `CANVA_RETRIEVE_USER_PROFILE_DATA` | Retrieveuserprofiledata | Currently, this returns the display name of the user account associated with the provided access token. more user information is expected to be included in the future. |
| `CANVA_REVOKE_OAUTH_TOKENS` | Revoke oauth tokens | Revoke a refresh token to end its lineage and user consent, requiring re-authentication. authenticate using either basic access with base64-encoded credentials or body parameters with client id and secret. |
| `CANVA_UPDATE_ASSET_S_NAME_AND_TAGS_BY_ID` | Update asset s name and tags by id | You can update the name and tags of an asset by specifying its `assetid`. updating the tags replaces all existing tags of the asset. |
| `CANVA_UPDATE_FOLDER_DETAILS_BY_ID` | Update folder details by id | Updates a folder's details using its `folderid`. currently, you can only update a folder's name. |
| `CANVA_VALIDATE_OAUTH_TOKEN_PROPERTIES` | Validate oauth token properties | Check an access token's validity and properties via introspection, requiring authentication. use basic access (base64 encoded `client id:client secret`) or body parameters for credentialing. |

## Supported Triggers

None listed.

## Complete Code

None listed.

## Conclusion

- Try asking your coding agent to perform various Canva operations
- Explore cross-app workflows by connecting more toolkits
- Set up triggers for real-time automation
- Use composio generate for typed schemas in your projects

## How to build Canva MCP Agent with another framework

- [ChatGPT](https://composio.dev/toolkits/canva/framework/chatgpt)
- [OpenAI Agents SDK](https://composio.dev/toolkits/canva/framework/open-ai-agents-sdk)
- [Claude Agent SDK](https://composio.dev/toolkits/canva/framework/claude-agents-sdk)
- [Claude Code](https://composio.dev/toolkits/canva/framework/claude-code)
- [Claude Cowork](https://composio.dev/toolkits/canva/framework/claude-cowork)
- [Codex](https://composio.dev/toolkits/canva/framework/codex)
- [Cursor](https://composio.dev/toolkits/canva/framework/cursor)
- [VS Code](https://composio.dev/toolkits/canva/framework/vscode)
- [OpenCode](https://composio.dev/toolkits/canva/framework/opencode)
- [OpenClaw](https://composio.dev/toolkits/canva/framework/openclaw)
- [Hermes](https://composio.dev/toolkits/canva/framework/hermes-agent)
- [Google ADK](https://composio.dev/toolkits/canva/framework/google-adk)
- [LangChain](https://composio.dev/toolkits/canva/framework/langchain)
- [Vercel AI SDK](https://composio.dev/toolkits/canva/framework/ai-sdk)
- [Mastra AI](https://composio.dev/toolkits/canva/framework/mastra-ai)
- [LlamaIndex](https://composio.dev/toolkits/canva/framework/llama-index)
- [CrewAI](https://composio.dev/toolkits/canva/framework/crew-ai)

## Related Toolkits

- [Figma](https://composio.dev/toolkits/figma) - Figma is a collaborative interface design tool for teams and individuals. It streamlines design workflows with real-time collaboration and easy sharing.
- [Abyssale](https://composio.dev/toolkits/abyssale) - Abyssale is a creative automation platform for generating images, videos, GIFs, PDFs, and HTML5 content programmatically. It streamlines and scales visual content production for marketing, design, and operations teams.
- [Alttext ai](https://composio.dev/toolkits/alttext_ai) - AltText.ai is a service that generates alt text for images automatically. It helps boost accessibility and SEO for your visual content.
- [Bannerbear](https://composio.dev/toolkits/bannerbear) - Bannerbear is an API-driven platform for generating images and videos automatically at scale. It helps businesses create custom graphics, social visuals, and marketing assets using powerful templates.
- [Claid ai](https://composio.dev/toolkits/claid_ai) - Claid.ai delivers AI-driven image editing APIs for tasks like background removal, upscaling, and color correction. It helps automate and enhance image workflows with powerful, developer-friendly tools.
- [Cloudinary](https://composio.dev/toolkits/cloudinary) - Cloudinary is a cloud-based platform for managing, uploading, and transforming images and videos. It streamlines media workflows and delivers optimized assets globally.
- [Cults](https://composio.dev/toolkits/cults) - Cults is a digital marketplace for 3D printing models, connecting designers and makers. It lets creators share, sell, and discover a huge variety of printable designs easily.
- [DeepImage](https://composio.dev/toolkits/deepimage) - DeepImage is an AI-powered image enhancer and upscaler. Get higher-quality images with just a few clicks.
- [Dreamstudio](https://composio.dev/toolkits/dreamstudio) - DreamStudio is Stability AI’s platform for generating and editing images with AI. It lets you easily turn ideas into stunning visuals, fast.
- [Fal.ai](https://composio.dev/toolkits/fal_ai) - Fal.ai is a generative media platform offering 600+ AI models for images, video, voice, and audio. Developers use Fal.ai for fast, scalable access to cutting-edge generative AI tools.
- [Html to image](https://composio.dev/toolkits/html_to_image) - Html to image converts HTML and CSS into images or captures web page screenshots. Instantly generate visuals from code or web content—no manual screenshots needed.
- [Imagior](https://composio.dev/toolkits/imagior) - Imagior is an AI-powered image generation platform that lets you create and customize images using dynamic templates and APIs. Perfect for businesses and creators needing fast, scalable visuals without design hassle.
- [Imejis io](https://composio.dev/toolkits/imejis_io) - Imejis io is an API-based image generation platform with powerful customization and template support. It lets you create and modify images in seconds, no manual design work required.
- [Imgix](https://composio.dev/toolkits/imgix) - Imgix is a real-time image processing and delivery service for developers. It helps you optimize, transform, and deliver images efficiently at any scale.
- [Kraken io](https://composio.dev/toolkits/kraken_io) - Kraken.io is an image optimization and compression platform. It helps you shrink image file sizes while keeping visual quality intact.
- [Logo dev](https://composio.dev/toolkits/logo_dev) - Logo.dev is an API and database for high-resolution company logos and brand metadata. Instantly fetch official logos from any domain without scraping or manual searching.
- [Miro](https://composio.dev/toolkits/miro) - Miro is a collaborative online whiteboard platform for teams to brainstorm, design, and manage projects visually. It streamlines teamwork by enabling real-time idea sharing, diagramming, and workflow planning in a single space.
- [Mural](https://composio.dev/toolkits/mural) - Mural is a digital whiteboard platform for distributed visual collaboration. It helps teams brainstorm, map ideas, and diagram together in real time.
- [Pexels](https://composio.dev/toolkits/pexels) - Pexels is a free stock library offering high-quality photos and videos via API. Instantly boost your app or website with stunning visuals for any use case.
- [Placid](https://composio.dev/toolkits/placid) - Placid is a creative automation toolkit that generates images, PDFs, and videos from custom templates via API. Effortlessly automate creative workflows and dynamic content creation at scale.

## Frequently Asked Questions

### What is the Composio Universal CLI?

The Composio Universal CLI is a single command-line interface that lets coding agents and developers interact with 1000+ SaaS applications. It handles authentication, tool discovery, action execution, and trigger setup — all from the terminal, without needing to configure MCP servers.

### Which coding agents work with the Composio CLI?

Any coding agent that can run shell commands works with the Composio CLI — including Claude Code, Codex, OpenCode, OpenClaw, and others. Once the CLI is installed, agents automatically discover and use the composio commands to interact with Canva and other connected apps.

### How is the CLI different from using an MCP server for Canva?

MCP servers require configuration and can be token-heavy for complex workflows. The CLI gives agents a direct, lightweight interface — no server setup needed. Agents simply call composio commands like any other shell tool. It's faster to set up, more reliable for multi-step tool chaining, and works natively with how coding agents already operate.

### How safe is my Canva data when using the Composio CLI?

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Canva data and credentials are handled as safely as possible. You can also bring your own OAuth credentials for full control.

---
[See all toolkits](https://composio.dev/toolkits) · [Composio docs](https://docs.composio.dev/llms.txt)
