Hermoso logo

Hermoso

4

AI marketing agent and AI ad generator for your AI agent. No markup on models. Research the ads already winning in any market, make on-brand image and video ads, post or schedule to Facebook, Instagram, Threads, TikTok, YouTube, X, LinkedIn, Pinterest, Bluesky, Telegram and Google Business Profile, answer DMs, comments and reviews in one inbox, run paid campaigns on 12 ad platforms, and read the results in your own analytics. Hosted MCP at app.hermoso.ai/mcp; tools/list is the authoritative roster.

4 skills

hermoso-ad-from-brand

Go from a brand to a finished, on-brand ad in three steps and report the media URL.

# Hermoso — full ad from a brand Drive the **Hermoso CLI** to go from a brand to a finished ad in three steps. Report the final media URL. ## Setup - `hermoso version` to confirm the CLI; `hermoso auth login` (opens your browser once; nothing to paste). On a machine with no browser: `hermoso auth login --token <your key>`, using a key from the app under **MCP & CLI**.. ## Procedure 1. **Onboard the brand** (skip if the user already gave full brand details): - From a website: `hermoso brand draft --domain <domain> --json` - No website: `hermoso brand draft --description "<what they sell, audience, voice>" --json` - Influencer/social: `hermoso brand draft --social <handle> --platform instagram --json` Keep the returned brand name/category for the next steps. 2. **Plan the concept + copy:** `hermoso create --brand "<name>" --product "<what to advertise + angle>" --format <auto|image|video> --json` - Read the result: it has the `concept`, `copy[]` (headline/primary/cta), and the resolved **render model id** (`imodel` for images, `vmodel` for video). Tell the user the concept + headline. 3. **Render**, using the model the create step resolved (or run `hermoso capabilities` for options): - Image: `hermoso generate image --prompt "<image_concept.prompt from step 2 — it already bakes in the copy>" --model <imodel> --aspect 1:1` - Video: `hermoso generate video --prompt "<from the storyboard>" --model <vmodel> --aspect 9:16 --duration 8 --wait` 4. **Report the served URL.** Offer one concrete next step (a punchier hook, a different aspect ratio, or a variation). ## Notes - If the brand has a real product photo and the ad features that product, pass it with `--ref ./product.png` on the image step so the packaging is accurate. - Quality over cost: prefer the resolved/best model unless the user asks for cheap/fast. - Everything runs against the local Hermoso server; no asset leaves the machine unless you `hermoso fetch` it.

hermoso-generate

Render images and videos across the Hermoso model catalog and report the media URL.

# Hermoso — generate ad creative You drive the **Hermoso CLI** (`hermoso`) to render images and videos. Always report the final **media URL**. ## Setup (once) 1. Ensure the CLI is available. From the Hermoso repo: `node bin/hermoso.mjs version` (or `hermoso version` if globally installed via `npm i -g`). 2. `hermoso auth login` (opens your browser once; nothing to paste). On a machine with no browser: `hermoso auth login --token <your key>`, using a key from the app under **MCP & CLI**. ## 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-pro`); 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`. ## Notes - `--ref` accepts local file paths (read + sent as data) or URLs; a real product/logo ref makes the output product-accurate. - Add `--json` to any command for machine-readable output. - If a render fails or times out, the error explains why; surface it plainly and offer to retry or pick a cheaper/faster model from `hermoso capabilities`.

hermoso-product-photoshoot

Drop a real product photo into a new scene with its label, colours and shape preserved.

# Hermoso — product photoshoot Use Hermoso's reference-image compositing so the real product (label, colours, shape) is preserved while the scene around it is generated. Drive the **Hermoso CLI**. ## Setup - `hermoso auth login` (opens your browser once; nothing to paste). On a machine with no browser: `hermoso auth login --token <your key>`, using a key from the app under **MCP & CLI**.; run `hermoso capabilities` once to see image model ids + recipes. ## Procedure 1. Get the **product image** path/URL from the user. This is the `--ref` — it forces product-accurate compositing. 2. Pick a **mode** and write the prompt accordingly (compose for ads — off-center hero, depth, directional light, negative space for copy): - `product_shot` — clean studio packshot on a seamless backdrop. - `lifestyle_scene` — the product in a real in-use setting (kitchen, desk, outdoors). - `hero_banner` — wide banner composition with room for a headline. - `social_carousel` — several angles/scenes of the same product (run the command N times with varied prompts). - `ad_creative_pack` — a few finished ad images with on-image copy. 3. Render: `hermoso generate image --prompt "<scene + composition + any on-image text>" --ref <product image> [--model <id>] [--aspect 1:1|4:5|16:9]` - Prefer the `★best` image model for hero work; a faster model is fine for bulk variations. 4. For a **pack**, loop: vary the scene/angle/aspect per call, collect the URLs, and present them together. 5. Report each served image URL; offer to `hermoso fetch` them to disk or to tweak a scene. ## Notes - Keep the product as the hero; never let generated text garble the real label — describe the product as "the exact product in the reference, label unchanged." - `--ref` takes a local path (read + sent) or a URL.

hermoso-research

Pull competitor ads and teardowns from the Meta, Google, LinkedIn and TikTok ad libraries.

# Hermoso — competitor & ad research This is Hermoso's discovery half (which most generators don't have). Drive the **Hermoso CLI**. ## Setup - `hermoso auth login` (opens your browser once; nothing to paste). On a machine with no browser: `hermoso auth login --token <your key>`, using a key from the app under **MCP & CLI**.. ## Procedure Pick the tool that fits the ask: 1. **Find competitors** for a domain: `hermoso competitors <domain> [--mode competitors|inspiration|company] --json` - `competitors` = head-to-head rivals; `inspiration` = best relevant ads incl. the brand itself; `company` = the company's own. 2. **Pull a brand's real ads** across ad libraries: `hermoso ads pull --company "<name>" [--domain <d>] [--platforms facebook,google,linkedin] [--country US] --json` - Defaults to Meta (richest library). Add google/linkedin only if asked (Google detailed pulls cost more). 3. **Natural-language research** (Claude tool-use over ad libraries + organic TikTok): `hermoso research "<request>"` - e.g. `hermoso research "the longest-running protein-pancake ads on Meta and what hooks they use"`. Prints a summary + the found ads with their URLs. 4. **Synthesize**: report the strongest hooks, angles, formats, and what's worth copying — be specific (quote the actual headlines/angles). If the user then wants to build one, hand off to `hermoso-ad-from-brand` / `hermoso-generate`. ## Notes - Research spends credits (ad-library calls); keep platform scope to what's asked. - Add `--json` for the raw ad objects (URLs, copy, run dates) when the user wants the data, not a summary.