SDKs
CLI

Command Line Interface

The Canvelete CLI provides command-line access to the Canvelete (opens in a new tab) API for automation, scripting, and quick tasks.

Installation

npm install -g canvelete-cli

Or with yarn:

yarn global add canvelete-cli

Quick Start

# Authenticate
canvelete auth login
 
# List designs
canvelete designs list
 
# Render a design
canvelete render --design design_123 --output image.png
 
# Quick render
canvelete quick-render design_123

Authentication

Interactive Login

canvelete auth login

With API Key

canvelete auth login --key cvt_your_api_key

Environment Variable

export CANVELETE_API_KEY="cvt_your_api_key"

Check Status

canvelete auth status
canvelete whoami

Designs

List Designs

canvelete designs list
canvelete designs ls --limit 50
canvelete designs list --json  # JSON output

Get Design

canvelete designs get design_123

Create Design

canvelete designs create --name "My Design" --width 1920 --height 1080
canvelete designs create -i  # Interactive mode

Update Design

canvelete designs update design_123 --name "New Name"

Delete Design

canvelete designs delete design_123
canvelete designs rm design_123 --force

Duplicate Design

canvelete designs duplicate design_123 --name "Copy of Design"

Rendering

Basic Render

canvelete render --design design_123 --output image.png

With Dynamic Data

# Inline JSON
canvelete render --design design_123 \
  --data '{"name":"John","title":"Engineer"}' \
  --output badge.png
 
# From file
canvelete render --design design_123 \
  --data-file data.json \
  --output badge.png

Format Options

# PNG (default)
canvelete render --design design_123 --format png --output image.png
 
# PDF
canvelete render --design design_123 --format pdf --output document.pdf
 
# JPEG with quality
canvelete render --design design_123 --format jpg --quality 95 --output photo.jpg

Custom Dimensions

canvelete render --design design_123 \
  --width 1200 --height 630 \
  --output banner.png

Batch Rendering

Create a batch file (batch.json):

[
  {
    "designId": "design_123",
    "format": "png",
    "output": "output1.png",
    "data": {"name": "Alice"}
  },
  {
    "designId": "design_123",
    "format": "png",
    "output": "output2.png",
    "data": {"name": "Bob"}
  }
]

Run batch:

canvelete batch-render --file batch.json --output-dir ./renders

Templates

# List templates
canvelete templates list
canvelete templates ls --category certificates
 
# Search templates
canvelete templates search "business card"
 
# Get template details
canvelete templates get template_123
 
# Create design from template
canvelete templates use template_123 --name "My Certificate"

Canvas Manipulation

# List elements
canvelete canvas elements design_123
 
# Add element
canvelete canvas add design_123 \
  --type text \
  --text "Hello World" \
  --x 100 --y 100
 
canvelete canvas add design_123 \
  --type rectangle \
  --x 0 --y 0 \
  --width 1920 --height 1080 \
  --fill "#3b82f6"
 
# Clear canvas
canvelete canvas clear design_123
 
# Resize canvas
canvelete canvas resize design_123 --width 1920 --height 1080

Assets

# List assets
canvelete assets list
canvelete assets ls --type IMAGE
 
# Search stock images
canvelete assets stock "nature landscape"
 
# Search icons
canvelete assets icons "arrow"
 
# List fonts
canvelete assets fonts
canvelete assets fonts --category serif

API Keys

# List keys
canvelete apikeys list
 
# Create key
canvelete apikeys create --name "Production Key"
 
# Revoke key
canvelete apikeys revoke key_123

Watch Mode

Auto-render when data changes:

# Watch file
canvelete watch data.json --design design_123 --output preview.png
 
# Watch directory
canvelete watch-dir ./input --design design_123 --output-dir ./output

Profiles

Manage multiple accounts:

# List profiles
canvelete profiles list
 
# Add profile
canvelete profiles add production --key cvt_xxx
 
# Switch profile
canvelete profiles use production
 
# Show current
canvelete profiles current

Configuration

# Show config
canvelete config list
 
# Get value
canvelete config get defaultFormat
 
# Set value
canvelete config set defaultFormat jpg
canvelete config set defaultQuality 95

Output Formats

Most commands support --json for machine-readable output:

# JSON output
canvelete designs list --json
 
# Use with jq
canvelete designs list --json | jq '.data[0].name'
 
# In scripts
DESIGN_ID=$(canvelete designs list --json | jq -r '.data[0].id')
canvelete render --design $DESIGN_ID --output first.png

Shell Completion

# Bash
eval "$(canvelete completion --shell bash)"
 
# Zsh
eval "$(canvelete completion --shell zsh)"
 
# Fish
canvelete completion --shell fish > ~/.config/fish/completions/canvelete.fish

CI/CD Example

# GitHub Actions
- name: Generate Images
  env:
    CANVELETE_API_KEY: ${{ secrets.CANVELETE_API_KEY }}
  run: |
    npm install -g canvelete-cli
    canvelete render --design $DESIGN_ID --output social.png

All Commands

canvelete auth          Authentication management
canvelete designs       Design operations
canvelete templates     Template operations
canvelete render        Render a design
canvelete batch-render  Batch render multiple designs
canvelete canvas        Canvas manipulation
canvelete assets        Asset management
canvelete apikeys       API key management
canvelete config        CLI configuration
canvelete profiles      Profile management
canvelete watch         Watch and auto-render
canvelete whoami        Show current user
canvelete completion    Shell completion

Support