What is Claude Code?
Claude Code is Anthropic’s terminal agent. It lives in a working directory, reads and writes files, runs commands, and installs plugins from a marketplace with one command. That makes it the natural home for the parts of marketing that are really pipelines: render, check, publish, log.
Claude Code, Claude or Cowork? Claude Code is Anthropic’s terminal agent, and Hermoso arrives as a plugin. In Claude on the web or desktop Hermoso is a connector instead, and Cowork uses that same connector.
Hermoso is marketing on autopilot: 922+ tools over one MCP endpoint covering competitor ad research, finished image and video ads across 100+ models, publishing and scheduling to eleven social channels, and campaign management on Meta, Google Ads, Microsoft Advertising, Reddit Ads, LinkedIn, Pinterest, X Ads, TikTok Ads, Snapchat Ads, ChatGPT Ads, Apple Search Ads and AppLovin Ads. One connection, and Claude Code has all of it.
Connect Hermoso to Claude Code
- One command, and no key.
Already inside a session? Typeclaude plugin marketplace add hermoso-ai/hermoso && claude plugin install hermoso@hermoso/plugin marketplace add hermoso-ai/hermoso, then/plugin install hermoso@hermoso. It installs five Hermoso skills (research, ad-from-brand, generate, product-photoshoot and marketing) that run thehermosocommand throughnpx, so no tool list is loaded into your sessions and nothing costs context until it runs. - Sign in once.
It opens a browser sign-in on loopback, the waynpx -y hermoso auth loginghdoes, and stores an owner-only credential in~/.hermoso/config.json. Claude Code runs it for you the first time it needs Hermoso. No browser on that machine, say CI, a remote box or a container? Create a key under MCP & CLI → Terminal & API keys and runnpx -y hermoso auth login --token hmk_…. A key carries real spend authority, so treat it like a password. - Optional: the MCP server as well. If you also want Hermoso’s tools in Claude Code’s own tool list, run
claude mcp add hermoso -- npx -y hermoso mcpafter signing in. It reads the same stored credential, so no key goes into.claude.json. The skills reach every tool without it. - Ask Claude Code for something. “Pull my three closest competitors’ longest-running ads and remix the best hook into a 9:16 video,” or “post this render to the channel.” The agent picks the tools; you approve the spend.
The plugin and the optional MCP server reach the same tools and the same account. The difference is context: a tool list is loaded into every session before you type anything, while the skills cost nothing until a command runs.
Every channel Claude Code can publish to
Each of these has its own page with that channel’s real caption cap, its real visibility options, what it refuses and why, and a worked example phrased for Claude Code.
| Channel | Carousel | Text limit |
|---|---|---|
| 2+ photos, our cap of 30 | 63,206 chars | |
| 2–10, images + video | 2,200 chars | |
| Threads | 2–20, images + video | 500 chars |
| TikTok | Up to 35 images | 2,200 / 4,000 chars |
| YouTube | Refused (the unit is a video) | 100-char title |
| X | Refused (4 media render as a grid) | 280, or 25,000 on Premium |
| 2–20 images, company Page only | 3,000 chars | |
| 2–5 images (blocked on Trial) | 800-char description | |
| Bluesky | 2 to 4 images | 300 chars and 3,000 bytes |
| Telegram | 2 to 10, photos and video | 4,096, or 1,024 with media |
Every one of them queues through one schedule_post calendar with per-channel captions, and list_scheduled reports per-channel outcomes rather than a single green tick, because “the job succeeded” and “the post went out” are different questions. A scheduled post lives in Hermoso, so it goes out on time whether or not Claude Code is still running.
Google Business Profile is the newest channel: Posts with a photo and a button on your Google Search and Maps listing, replies to your reviews, listing edits and the calls, website clicks and direction requests the listing earns. Claude Code reaches it through the same tools, and schedule_post queues it on the same calendar.
One channel that is built but not offered
Being straight about this is worth more than a longer list. One publishing surface exists in the codebase and is held back, waiting on the platform rather than on us:
- Reddit: organic posting and post stats are built, but Reddit’s Responsible Builder Policy requires explicit written approval before an app may use the Data API, and that ticket has not been granted. The connector is held back rather than offered as an OAuth screen leading to a dead API. Reddit Ads is a different connection and it is live: the full campaign tree, forecasting, targeting search, pixels and lead forms.
A connector that would hand you a successful OAuth and a dead API is worse than one that is not offered yet, so it is not listed as available.
Three things to type once it is connected
- Research. “Who are my three closest competitors, and what are their longest-running Meta ads? Tell me which hook keeps repeating.” It runs
find_competitors→pull_competitor_ads→mine_angles. - Create. “Make me a 9:16 UGC video ad using that hook, with my real product photo and captions burned in.” It runs
get_brand→plan_ad→render_ad, and hands back a finished mp4 URL. - Ship. “Schedule it to Instagram and TikTok for Tuesday 9am, and build a paused Meta campaign around it targeting the US at $30 a day.” It runs
schedule_post→create_meta_campaign→create_meta_ad.
What Claude Code cannot do on its own
An agent with a budget is only useful if the blast radius is bounded, so the fence is in the server rather than in a prompt. Every ad campaign, ad set, ad group and ad is created paused, and the status switches that arm real money refuse to run without an explicit confirmation flag. Every render is quoted first (hermoso_capabilities publishes each model’s exact credit cost before anything spends). Credits are reserved before the first provider call and settled at the exact cost afterwards, so a failed dispatch refunds rather than leaving you billed for nothing. Deletes are confirm-gated too, and every campaign tree is read back from the ad platform before your agent tells you what it built.
One step is deliberately yours: linking each account, once. Most channels link through the platform’s own OAuth consent screen in a browser; Bluesky takes an app password and Telegram a bot token, pasted in Hermoso. Everything after that is a tool call.
Claude Code asks before it runs a tool, and the transcript is right there in the terminal, so a publish step is a line you can read before you press y.
What it costs
Adding Hermoso to Claude Code costs nothing extra: there is one credit meter, and it does not care which client called. A free account starts with 30 credits at signup and 250+ more to earn. Credits are spent only on AI models and Ad Spy research; posting, scheduling, ads management and analytics are free on every channel except X, which bills per call because X charges per API request. Paid plans are $29, $69 and $149 a month for 1,200, 3,000 and 7,000 credits, and every feature is on every plan. hermoso_capabilities gives the exact credit price of any render before it runs.
Troubleshooting
- A local server prints help and exits. The arguments are missing the trailing
mcp.npx -y hermosoon its own prints help;npx -y hermoso mcpstarts the server. - There is no browser on that machine. Create a key under MCP & CLI → Terminal & API keys and run
npx -y hermoso auth login --token hmk_…instead. - A channel is missing. Connect it in Hermoso under Settings → Connectors, then ask Claude Code to run
list_connectorsagain. - Claude Code answers without using Hermoso. Name it in the request: “use Hermoso to …”. That leaves no doubt about which tools should do the job.
Beyond publishing
Publishing is the last step, and it is the smallest one. The same connection gives Claude Code the Meta, Google and LinkedIn ad libraries plus organic TikTok, Instagram, YouTube, Reddit and Threads for research; 100+ image, video, voice and writing models on a single credit meter, with UGC avatars, dubbing, upscaling and native HTML ad formats; and the full campaign tree on twelve paid platforms. There are no per-vendor API keys to hold and no separate app to learn.
See the full tool list, every agent Hermoso works in, or what a marketing MCP is. For the longer story on this client specifically, see Claude Code marketing.
Hermoso in other agents
The same Hermoso account works in every agent below, so your brand, library, schedule and credits follow you between them.
| Agent | How Hermoso connects |
|---|---|
| Claude | Connects with OAuth, nothing to paste |
| ChatGPT | Connects with OAuth, nothing to paste |
| Cursor | Signs in from the terminal with hermoso auth login, nothing to paste |
| Codex | Signs in from the terminal with hermoso auth login, nothing to paste |
| Cline | Takes an API key in an Authorization header |
| OpenClaw | Signs in from the terminal with hermoso auth login, nothing to paste |
| Grok Bot | Adds the Hermoso Marketing Bot template and takes an API key in the chat, or signs in from the Bot’s own terminal |
| Hermes | Signs in from the terminal with hermoso auth login, nothing to paste |
| Gemini CLI | Signs in from the terminal with hermoso auth login, nothing to paste |
| Perplexity | Connects with OAuth, nothing to paste |
| Le Chat | Connects with OAuth, nothing to paste |
| Claude Cowork | Connects with OAuth, nothing to paste |
| Perplexity Computer | Connects with OAuth, nothing to paste |
| Paperclip | Connects with OAuth, nothing to paste |
| Gemini | Connects with OAuth, nothing to paste |
| Grok Build | Signs in from the terminal with hermoso auth login, nothing to paste |
| Kimi Code | Adds the hosted URL to mcp.json and signs in with /mcp-config login, nothing to paste |
| DeepSeek Harness | Signs in from the terminal with hermoso auth login and runs Hermoso as a local server, nothing to paste |
| Manus | Takes an API key in an Authorization header |
| Muse | One chat message, then an OAuth sign-in |
| Any MCP client | The hosted URL with OAuth, or a local server over stdio |
Frequently asked questions
Can Claude Code post to social media?
Yes, once you install Hermoso. Claude Code can then publish to Facebook, Instagram, Threads, TikTok, YouTube, X, LinkedIn, Pinterest, Bluesky, Telegram and Google Business Profile, and schedule to all eleven from one queue with per-channel captions.
How do I add Hermoso to Claude Code?
One command: claude plugin marketplace add hermoso-ai/hermoso && claude plugin install hermoso@hermoso, or inside a session /plugin marketplace add hermoso-ai/hermoso then /plugin install hermoso@hermoso. It installs five Hermoso skills that drive the hermoso CLI, so no tool list is loaded into your sessions. Sign in once with npx -y hermoso auth login, which opens a browser and stores the credential itself, so there is no key to create and none to paste. The plugin and the optional MCP server reach the same tools and the same account. The difference is context: a tool list is loaded into every session before you type anything, while the skills cost nothing until a command runs.
Can Claude Code generate the video and images too?
Yes, natively rather than by brokering it out. 100+ image, video, voice and writing models sit on one credit meter, and Claude Code can price a render before it runs it because hermoso_capabilities publishes each model's exact cost. Output is a finished ad, with your real product in the scene and captions and a CTA composited over the render.
Is there a free tier for Claude Code?
Yes. A free account starts with 30 credits and 250+ more you can earn as you set up and create, and the MCP server itself is free to add to Claude Code. Paid plans are $29, $69 and $149 a month for 1,200, 3,000 and 7,000 credits. Every feature is on every plan including Free, and the only exception is enterprise SSO.
Is it safe to let Claude Code post and run ads for me?
Hermoso keeps the steps that cost money or cannot be undone behind gates on its own server, whatever Claude Code is set to do: every campaign is created paused, spend switches and deletes need an explicit confirmation, and a post only reaches an account you connected and ticked in Hermoso. Claude Code asks before it runs a tool, and the transcript is right there in the terminal, so a publish step is a line you can read before you press y.
Can Claude Code run Hermoso in CI or on a server?
Yes. On a machine with no browser, create a key under MCP & CLI, Terminal & API keys, and run npx -y hermoso auth login --token hmk_… once. Every hermoso command takes --json, so a pipeline step can assert on the output. Treat that key like a password, since it carries spend authority.
Start free with 30 credits at signup and 250+ more to earn. Every feature is on every plan. Credits are spent only on AI models and Ad Spy research; posting, scheduling, ads management and analytics are free.
Start free → See pricing