Canvora × OpenClaw
On-brand visuals CLI for OpenClaw
Generate finished, branded designs across 100+ formats — Instagram carousels, LinkedIn posts, pitch decks — directly from your OpenClaw agent, in 150+ languages.
Free credits, no card required. Please make sure there is always a human in the loop.
Get started in your OpenClaw setup
# Install the Canvora skills (12 skills: carousels, decks, campaigns, localization...)
npx skills add canvora/canvora-mcp
# Set your API key (create at canvora.ai -> Integrations -> API Keys)
export CANVORA_API_KEY=vd_...
# Ask OpenClaw in natural language
"Make a 7-slide LinkedIn carousel from https://myblog.com/post, use my brand kit"This is what your agent ships
One generation, localized twice. Same design, natively re-composed in Spanish and Arabic — right-to-left done correctly, not mirrored English.

Generated with the same commands shown on this page.
How it works
1. Discover your account
The agent checks what it has to work with
canvora brands --json # brand kits: colors, fonts, logo
canvora formats --json # all 100+ format ids
canvora credits --json # balance check before big jobs2. Generate
Content in, finished designs out — async by design
ID=$(canvora generate \
--url "https://myblog.com/remote-work-post" \
--format linkedin_carousel --slides linkedin_carousel=7 \
--brand 98992631-... --style modern | head -1)
canvora status "$ID" --json # poll until status: completed3. Localize & deliver
Same design, another market
canvora localize "$ID" --language es
canvora download "$ID" --dir out/ # PNG files, CDN-backedWhat is OpenClaw?
OpenClaw is an open-source personal AI agent framework. It runs long-lived agents that read your messages, execute shell commands, and automate real work — and it learns new capabilities through installable skills. Canvora is the skill that gives it design output.
Skill-native
OpenClaw discovers Canvora through SKILL.md files. Install once and every future session knows how to generate, localize and download visuals.
Shell-capable
OpenClaw runs the Canvora CLI directly. Every command prints machine-readable JSON with --json, so the agent can parse ids, status and file URLs.
Always on
OpenClaw agents run scheduled jobs. Pair a cron message with the Canvora skills and your weekly social visuals produce themselves.
A real OpenClaw session
You write one message; the skill does the rest
> "Turn this week's changelog into an Instagram carousel
and a LinkedIn post. Spanish and English versions."
OpenClaw: Using the canvora skill.
1. canvora brands --json -> found brand kit "Dewstack"
2. canvora generate --input "..." --format instagram_carousel,linkedin_post
3. polling: canvora status a3fbbd90 --json -> completed
4. canvora localize a3fbbd90 --language es -> completed
5. canvora download --dir out/
Delivered: 8 visuals (EN + ES), on-brand, ready to post.Multi-client agency loop
One brand kit per client; the agent iterates
# The agent lists kits, then produces this week's set per client
for BRAND in $(canvora brands --json | jq -r '.[].id'); do
canvora generate --input "$(cat weekly-brief.md)" \
--format instagram_post,linkedin_post \
--brand "$BRAND" --logo
doneWhy OpenClaw + Canvora
- Skill discovery — OpenClaw learns all Canvora commands from SKILL.md automatically
- 12 ready-made skills: carousels, pitch decks, ad campaigns, blog promo kits, localization and more
- JSON output on every command — built for agent parsing, not humans squinting at logs
- Async generation with polling — long jobs never stall the agent loop
- Scoped, revocable API keys with per-key usage tracking
Command reference
Add --json to any command for machine-readable output. Progress goes to stderr, results to stdout.
| Command | Description |
|---|---|
| canvora generate | Create visuals from --idea, --input text, --url or --file-url; pick formats, brand, style, language |
| canvora status <id> | Check a generation; --json returns status and output file URLs |
| canvora download <id> | Save output files to a directory |
| canvora localize <id> | Same design, natively re-composed in another language (RTL included) |
| canvora variations <id> | Alternate takes on a finished generation |
| canvora edit <outputId> | Revise one visual with a natural-language instruction |
| canvora formats | List all 100+ format ids |
| canvora brands | List brand kits (colors, fonts, logo, tone) |
| canvora credits | Show credit balance |
100+ formats, one engine
Every format has platform-correct composition and safe zones — your agent picks by id.
Instagram Carousel
Up to 20 slides, hook to CTA
LinkedIn Carousel
Swipeable document posts
Pitch Deck
Coherent multi-slide sets
Instagram Post & Story
Feed and vertical formats
Stat Card
One number, designed to land
Infographic
Data and process visuals
Blog Header & OG Image
The launch surface
Ad Creatives
Display and social ads
FAQ
How does my OpenClaw agent authenticate? +
One environment variable: CANVORA_API_KEY. Create a key at canvora.ai under Integrations → API Keys. Keys are stored as hashes, revocable in one click, and tracked per key (requests and credits), so an agent key can be rotated without touching your account.
What does a generation cost? +
Flat credit pricing an agent can budget: 10 credits per single visual, 15 per carousel or deck slide. The agent can run canvora credits before big jobs, and the API returns the exact shortfall (required vs available) before anything is charged. Failed generations refund automatically.
Does the agent post to social media too? +
Canvora generates the visuals; it does not publish them. Pair it with your posting tool — the download command returns files and stable CDN URLs your agent can hand to any scheduler.
Which formats can it generate? +
Over 100: Instagram posts/stories/carousels, LinkedIn posts and carousels, pitch decks, infographics, stat cards, blog headers, OG images, ad creatives, email headers and more. canvora formats lists every id.
Also works with
Your agent's next tool call is a design department.
Create a free account, set one key, and let OpenClaw ship on-brand visuals.