Canvora × Hermes Agent

On-brand visuals CLI for Hermes Agent

Give your self-improving agent a design department: scheduled social content, campaign visuals and localized sets — generated on-brand, in 150+ languages.

Free credits, no card required. Please make sure there is always a human in the loop.

Get started with Hermes

Terminal
# Install the Canvora skills
npx skills add canvora/canvora-mcp

# Set your API key
export CANVORA_API_KEY=vd_...

# Ask Hermes in natural language
"Every Monday, turn last week's blog posts into a LinkedIn
 carousel and Instagram posts, in English and Portuguese"

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.

The same on-brand visual generated in English, Spanish and Arabic — identical design, correct RTL composition

Generated with the same commands shown on this page.

How it works

1. One-time setup

Skills + key; Hermes remembers both

Terminal
npx skills add canvora/canvora-mcp
export CANVORA_API_KEY=vd_...
canvora brands --json   # Hermes notes your brand kit ids

2. The scheduled run

What Hermes executes every Monday

Terminal
ID=$(canvora generate \
  --url "$(cat latest-post-url.txt)" \
  --format linkedin_carousel,instagram_post \
  --brand "$BRAND_ID" --style modern | head -1)

canvora status "$ID" --json     # poll to completed

3. Localize for each market

Same design — Portuguese, Spanish, Turkish

Terminal
for LANG in pt es tr; do
  canvora localize "$ID" --language $LANG
done
canvora download "$ID" --dir out/monday/

What is Hermes Agent?

Hermes is a self-improving AI agent: it pauses to evaluate its own work, writes skill documents from what worked, and runs scheduled, long-lived workflows like daily briefings and content pipelines. Canvora slots in as the visual output of those pipelines.

Learns the workflow once

Hermes picks up the Canvora skills — cost check, generate, poll, download — and reuses the pattern in every future pipeline it builds.

Cron-friendly

Hermes runs on schedules. Canvora generation is asynchronous with a status command, so a weekly content job fires, polls, and delivers without babysitting.

Self-evaluating

Hermes reviews its outputs. Canvora returns file URLs the agent can inspect, plus edit and variations commands to revise anything that misses.

A real Hermes pipeline

Natural language in, weekly deliverables out

Hermes
> "Set up a weekly content run: our changelog becomes
   an Instagram carousel + LinkedIn post, EN and PT-BR."

Hermes: Building the pipeline.
  - Monday 08:00 trigger registered
  - Steps: read changelog -> canvora generate (2 formats)
           -> poll status -> canvora localize --language pt
           -> download + hand off to the posting queue
  - Self-check: verify output count = 2 formats x 2 languages

Week 1 result: 4 on-brand visuals delivered to out/monday/.

Revise what the review flags

Hermes evaluates its own outputs — Canvora lets it act

Terminal
# Hermes flags slide 3's headline as weak, then runs:
canvora edit <outputId> --prompt "stronger, more specific headline: \
  'Ship 40% faster' instead of 'Work better'" --yes

# Or asks for alternate takes on the whole visual:
canvora variations <generationId> --count 2

Why Hermes Agent + Canvora

  • Skills encode the full workflow — Hermes learns it once, reuses it in every pipeline
  • Asynchronous generate + status polling fits scheduled, unattended runs
  • localize produces per-market versions of the same design — one pipeline, many languages
  • edit and variations give the self-evaluation loop something to act on
  • JSON everywhere; errors are typed and the balance is checked before any charge

Command reference

Add --json to any command for machine-readable output. Progress goes to stderr, results to stdout.

CommandDescription
canvora generateCreate 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 formatsList all 100+ format ids
canvora brandsList brand kits (colors, fonts, logo, tone)
canvora creditsShow 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

See all formats and tools →

FAQ

Can Hermes run this unattended? +

The pipeline runs unattended, but keep a human review before publishing — Canvora returns the files; your posting step is where the human belongs. Balance is verified before any deduction, and failed generations refund automatically, so an unattended run can never silently burn through credits.

How is usage billed for scheduled jobs? +

Flat credits: 10 per single visual, 15 per carousel or deck slide, identical for API, CLI and app. A weekly job's cost is therefore predictable to the credit. canvora credits --json gives the agent the balance before each run.

What happens if a run fails mid-generation? +

The generation is marked failed and its credits are refunded automatically. The status command reports the error, so the next self-evaluation cycle can retry or alert you.

Does localization keep the design identical? +

Yes — localize re-renders the same visual with text natively composed in the target language (including right-to-left scripts like Arabic). Layout, brand and imagery stay put.

Also works with

Your agent's next tool call is a design department.

Create a free account, set one key, and let Hermes Agent ship on-brand visuals.