hermoso-generate

Installation
SKILL.md

Hermoso: generate ad creative

You drive the Hermoso CLI (hermoso) to render images and videos. Always report the final media URL.

Setup (once)

  • Install the CLI once: npm install -g hermoso, then run every command as hermoso …, as written below. If you cannot install packages, prefix the commands with npx -y, but know that npx asks the npm registry on every single call, so an agent making many calls can be rate-limited by npm (an HTTP 429 from npm, before Hermoso is ever reached). No MCP server is needed.
  • Sign in once: npx -y hermoso auth login (opens a browser; nothing to paste). On a machine with no browser: npx -y hermoso auth login --token <your key>, using a key from app.hermoso.ai under MCP & CLI. No account at all? An agent can sign itself up on a paid plan with POST /v1/signup at app.hermoso.ai; see the Hermoso README.
  • For anything these steps do not cover: hermoso tools --search <what you want> finds the tool, hermoso tools <name> prints its arguments, hermoso call <name> --json '{...}' runs it. The CLI reaches every tool and costs no context until it runs.

Procedure

  1. Always run hermoso capabilities first. It lists the valid image/video model ids, their credit costs, aspect ratios, video durations, and the recipe ids. Never guess a model id.
  2. Pick a high-quality default (quality over cost is the house rule): for images prefer the model marked ★best (e.g. nano-banana-2.1); for product composites pass the real product image with --ref. For video, use a featured model and a sensible duration.
  3. Generate:
    • Image: hermoso generate image --prompt "<full prompt incl. any on-image text>" [--ref ./product.png] [--model <id>] [--aspect 1:1]
    • Video: hermoso generate video --prompt "<shot description>" [--ref ./frame.png] [--duration 8] [--aspect 9:16] [--model <id>] [--tts "<voiceover>"] [--voice Rachel] --wait
    • Avatar (lip-sync): hermoso generate avatar --image ./face.png --script "<words>" [--voice George] --wait
    • Stitch (≥2 scenes): hermoso generate stitch --scenes scenes.json --wait
  4. Video/avatar/stitch are job-based: keep --wait (default) so the command blocks and prints the final URL. If you don't wait, poll with hermoso jobs get <id> --wait.
  5. Report the served URL (e.g. https://assets.hermoso.ai/…), never a raw job id. If the user wants the file, hermoso fetch <url> --out name.png.
Installs
14
GitHub Stars
2
First Seen
Sep 18, 2026