hermoso 0.1.254 → 0.1.255

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +49 -56
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  Run your whole marketing operation from **any AI agent**: Claude Code, Claude.ai, Cursor, Codex, or your own
4
4
  scripts. Research the ads already winning in a market, generate finished image & video ads (your real product
5
5
  composited in, copy + CTA included), publish them to your own social channels, and build & manage the ad
6
- campaigns behind them — all over [MCP](https://modelcontextprotocol.io) tools, a CLI, or installable Claude skills.
6
+ campaigns behind them, all over [MCP](https://modelcontextprotocol.io) tools, a CLI, or installable Claude skills.
7
7
 
8
8
  **841 tools.** `tools/list` is always the authoritative set; `hermoso_capabilities` (free) returns the live model
9
9
  catalog with exact per-render credit costs plus the full capability map.
@@ -81,40 +81,26 @@ Two shapes, and the right one is decided by **what your client can do**, not by
81
81
 
82
82
  | Your client | Use | Why |
83
83
  | --- | --- | --- |
84
- | **Runs in a browser** — Claude.ai, ChatGPT, Claude Desktop | the hosted connector `https://app.hermoso.ai/mcp` | It cannot spawn a local process, so a URL is the only shape it has. Nothing to install, no key to paste, and the full toolset arrives with your saved brand context. This is the right answer for these clients, not a lesser one. |
85
- | **Can run a shell** — Claude Code, Cursor, Codex, Cline, OpenClaw, Hermes, your own scripts | the CLI, `npm install -g hermoso` | A tool manifest is loaded into every session whether or not a tool is called. A shell command costs nothing until it runs, and it reaches **every** tool rather than the default roster. |
84
+ | **Runs in a browser**: Claude.ai, ChatGPT, Claude Desktop | the hosted connector `https://app.hermoso.ai/mcp` | It cannot spawn a local process, so a URL is the only shape it has. Nothing to install, no key to paste, and the full toolset arrives with your saved brand context. This is the right answer for these clients, not a lesser one. |
85
+ | **Can run a shell**: Claude Code, Codex, Gemini CLI, Cursor, Cline, OpenClaw, Hermes, your own scripts | the one-command install above, or the CLI itself (`npm install -g hermoso`) | A tool manifest is loaded into every session whether or not a tool is called. A shell command costs nothing until it runs, and it reaches **every** tool rather than the default roster. |
86
86
 
87
- **The measured difference** (2026-08-27, counted as real tool definitions rather than estimated from bytes):
88
-
89
- | | tools in range | loaded per session |
90
- | --- | --- | --- |
91
- | Hosted connector, default roster | 306 | **181,713 tokens** |
92
- | Hosted connector, `?tools=all` | 718 | **472,062 tokens** |
93
- | stdio server (`npx -y hermoso mcp`) | 306 | **181,713 tokens** |
94
- | **CLI** | **all 718** | **0** |
95
-
96
- The CLI answers the same questions on demand instead, and only when asked:
87
+ The CLI answers the questions a tool manifest would, on demand and only when asked:
97
88
 
98
89
  ```bash
99
- npx -y hermoso tools --search reddit # every matching tool, name + one line 2,459 tokens
100
- npx -y hermoso tools plan_ad # one tool's full argument schema 633 tokens
90
+ npx -y hermoso tools --search reddit # every matching tool, name + one line
91
+ npx -y hermoso tools plan_ad # one tool's full argument schema
101
92
  npx -y hermoso call plan_ad --json '{"product":"…"}' # run it
102
93
  ```
103
94
 
104
- So a terminal agent reaches its first call in roughly **3.4K tokens with the whole roster in range**, against
105
- **182K for a fraction of it**. `tools` and `tools <name>` read a registry bundled in the package — no key, no
106
- network, no sign-in — so an agent can browse the entire product before anyone signs in. Only `call` spends, and
107
- only that needs `hermoso auth login` once.
108
-
109
- **Both at once is fine, and is what we suggest for Claude Code.** One `hermoso auth login` covers the CLI *and*
110
- lets `claude mcp add hermoso -- npx -y hermoso mcp` pick the key up with no `env` block, so the agent can reach for
111
- a native tool when it wants structured results and shell out when it wants breadth. If you only want one, take the
112
- CLI: it covers strictly more.
95
+ `tools` and `tools <name>` read a registry bundled in the package (no key, no network, no sign-in), so an agent
96
+ can browse the entire product before anyone signs in. Only `call` spends, and only that needs
97
+ `hermoso auth login` once.
113
98
 
114
- **When the connector is still the better trade on a shell-capable client:** a session that is going to make many
115
- calls into one area. `enable_tools({groups:['ads']})` turns campaign management on in a single free call and the
116
- tools are then native — no shell quoting, structured results. One shell round trip beats loading a 221K-token
117
- group for a single tool; the reverse is true once a session settles into that area.
99
+ **Want the tools in your coding agent's own list as well?** That is the MCP server, and it is optional. One
100
+ `hermoso auth login` covers the CLI *and* lets `claude mcp add hermoso -- npx -y hermoso mcp` pick the key up with
101
+ no `env` block, so the agent can reach for a native tool when it wants structured results and shell out when it
102
+ wants breadth. It costs context in every session, so add it when a session settles into one area and makes many
103
+ calls there; `enable_tools({groups:['ads']})` then turns campaign management on in a single free call.
118
104
 
119
105
  ## Your agent can sign itself up
120
106
 
@@ -170,50 +156,56 @@ the routes.
170
156
 
171
157
  Paste **`https://app.hermoso.ai/mcp?src=readme`** into Claude → Settings → Connectors → *Add custom connector*, pick
172
158
  **Always required** when Claude asks about authentication (its detector suggests "None" because our discovery
173
- handshake is open; "None" would leave every tool call unauthenticated), approve with your Hermoso account, done — the full toolset with your saved brand context, billed to your plan.
159
+ handshake is open; "None" would leave every tool call unauthenticated), approve with your Hermoso account, and you are done: the full toolset with your saved brand context, billed to your plan.
174
160
 
175
- ## Quickstart for Claude Code (one line)
161
+ ## Quickstart for Claude Code (one command)
176
162
 
177
- 1. **Get an account** at [app.hermoso.ai](https://app.hermoso.ai) — free tier included; plans & credits are the
178
- same ones the web Studio uses. Or skip the browser entirely and let your agent sign itself up on a paid plan
179
- with `POST /v1/signup` (above).
180
- 2. **Run one line.** Your browser opens once to sign in. Nothing to paste, and no key lands in `.claude.json`:
163
+ 1. **Get an account** at [app.hermoso.ai](https://app.hermoso.ai). The free tier is included; plans and credits
164
+ are the same ones the web Studio uses. Or skip the browser entirely and let your agent sign itself up on a paid
165
+ plan with `POST /v1/signup` (above).
166
+ 2. **Install the plugin.** It adds the four Hermoso skills, which drive the `hermoso` CLI through `npx`:
181
167
 
182
168
  ```bash
183
- npm install -g hermoso && hermoso auth login && claude mcp add hermoso -- npx -y hermoso mcp
169
+ claude plugin marketplace add hermoso-ai/hermoso && claude plugin install hermoso@hermoso
184
170
  ```
185
171
 
186
- 3. **Ask for what you want**, in your normal prompts. Claude Code reaches for a tool, or runs the `hermoso`
187
- command in your terminal, whichever the job needs. You type neither.
172
+ Already inside a session? `/plugin marketplace add hermoso-ai/hermoso`, then `/plugin install hermoso@hermoso`.
173
+ Codex, Gemini CLI and the rest are in [Install in one command](#install-in-one-command).
174
+ 3. **Sign in once.** `npx -y hermoso auth login` opens your browser; your agent also runs it by itself the first
175
+ time it needs Hermoso. On a machine with no browser, use `npx -y hermoso auth login --token hmk_…` with a key
176
+ from **Settings → Agents & API**.
177
+ 4. **Ask for what you want**, in your normal prompts. Claude Code picks the Hermoso skill for the job and runs the
178
+ commands. You type none of them.
188
179
 
189
- Ad campaign and analytics tools stay out of the tool list until you switch them on with `enable_tools`, which
190
- keeps it small. On a machine with no browser, sign in with `hermoso auth login --token hmk_…` using a key from
191
- **Settings → Agents & API**, or skip the sign-in and pass the key to the client instead:
192
-
193
- ```bash
194
- claude mcp add hermoso -e HERMOSO_TOKEN=hmk_… -- npx -y hermoso mcp
195
- ```
180
+ Rather install the CLI by hand? `npm install -g hermoso` puts the same `hermoso` command on your PATH, and the
181
+ skills use it when it is there.
196
182
 
197
183
  The hosted URL works in Claude Code too, but it is the worse path there and it is worth knowing why:
198
184
  `claude mcp add --transport http hermoso "https://app.hermoso.ai/mcp?src=readme"` is accepted, and then `claude mcp list`
199
- reports `! Needs authentication` because the client will not start the OAuth flow by itself — you have to open a
185
+ reports `! Needs authentication` because the client will not start the OAuth flow by itself: you have to open a
200
186
  session, run `/mcp`, find the server and press Authenticate. Measured against Claude Code 2.1.241 on 2026-08-23.
201
187
 
202
188
  Your agent now has the full studio **with your workspace's context**: the brand profile, products, logos and
203
189
  learned memory you set up in the web app apply automatically (`get_brand` shows what's saved; omit `brand` in
204
- `plan_ad`/`plan_variations` to use it). Renders bill your Hermoso credits — same prices as the Studio. Only AI model runs and Ad Spy research spend credits; publishing, scheduling, ads management and analytics are free on every plan (posting to X and reading X data are the one per-call exception, managing X ads is free).
190
+ `plan_ad`/`plan_variations` to use it). Renders bill your Hermoso credits, at the same prices as the Studio. Only AI model runs and Ad Spy research spend credits; publishing, scheduling, ads management and analytics are free on every plan (posting to X and reading X data are the one per-call exception, managing X ads is free).
205
191
 
206
- ## 1. MCP server (stdio) — Claude Code / Cursor / Codex
192
+ ## 1. MCP server (stdio), optional in a coding agent
207
193
 
208
- `hermoso mcp` runs a stdio MCP server exposing the full toolset. The published `hermoso` package means no clone —
209
- `npx -y hermoso mcp` fetches and runs it. Sign in once with the CLI and no key goes into any client config,
210
- because `hermoso mcp` reads the bearer `hermoso auth login` stored:
194
+ `hermoso mcp` runs a stdio MCP server exposing the full toolset, for a client that wants Hermoso's tools in its own
195
+ list. The published `hermoso` package means no clone: `npx -y hermoso mcp` fetches and runs it. Sign in once with
196
+ the CLI and no key goes into any client config, because `hermoso mcp` reads the bearer `hermoso auth login` stored:
211
197
 
212
198
  ```bash
213
199
  npm install -g hermoso && hermoso auth login && claude mcp add hermoso -- npx -y hermoso mcp
214
200
  ```
215
201
 
216
- Cursor / Codex — sign in the same way, then add to `mcp.json` (Codex uses the TOML equivalent). Drop the `env`
202
+ On a machine with no browser, skip the sign-in and pass the key to the client instead:
203
+
204
+ ```bash
205
+ claude mcp add hermoso -e HERMOSO_TOKEN=hmk_… -- npx -y hermoso mcp
206
+ ```
207
+
208
+ Cursor / Codex: sign in the same way, then add to `mcp.json` (Codex uses the TOML equivalent). Drop the `env`
217
209
  block entirely if you signed in above; it is there for CI, where the process cannot read your home directory:
218
210
 
219
211
  ```json
@@ -323,7 +315,7 @@ consent screen, so the user does it in the app).
323
315
 
324
316
  Render jobs queue server-side and poll to completion, returning a served URL.
325
317
 
326
- ## 2. CLI — the token-cheap path for terminal agents
318
+ ## 2. CLI: the context-free path for terminal agents
327
319
 
328
320
  `bin/hermoso.mjs` exposes the full MCP toolset as subprocess commands, so an agent can shell out instead of carrying a
329
321
  fat tool manifest.
@@ -352,21 +344,22 @@ hermoso create_meta_campaign --name "…" # same thing, shorte
352
344
  ```
353
345
 
354
346
  `call` goes through the same handler, the same argument validation and the same confirm/spend gates the MCP
355
- server uses — there is no second implementation to drift. `tools` and `tools <name>` read a registry bundled in
347
+ server uses, so there is no second implementation to drift. `tools` and `tools <name>` read a registry bundled in
356
348
  the package, so they need no key, no network and no sign-in.
357
349
 
358
- ## 3. Claude skills — slash commands that wrap the CLI
350
+ ## 3. Skills: what a coding agent installs
359
351
 
360
352
  `skills/` holds four installable skills: `hermoso-generate`, `hermoso-ad-from-brand`,
361
353
  `hermoso-product-photoshoot`, `hermoso-research`.
362
354
 
363
- The quickest way in is the one-command install at the top of this page. From a clone, copying works too:
355
+ They are what every one-command install at the top of this page adds, in Claude Code, Codex, Gemini CLI and
356
+ through `npx skills add`. From a clone, copying works too:
364
357
 
365
358
  ```bash
366
359
  cp -r skills/* ~/.claude/skills/
367
360
  ```
368
361
 
369
- Then invoke `/hermoso-ad-from-brand an ad for yourbrand.com — our hero product`.
362
+ Then invoke `/hermoso-ad-from-brand an ad for yourbrand.com, our hero product`.
370
363
 
371
364
  ## Configuration
372
365
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hermoso",
3
- "version": "0.1.254",
3
+ "version": "0.1.255",
4
4
  "mcpName": "io.github.hermoso-ai/hermoso",
5
5
  "description": "Marketing on autopilot, run from your own AI agent. 841 tools. Publishing, scheduling, ad campaign management, comments, DMs and analytics cost no credits on every plan; credits are only for generating creative and for Ad Spy research. AD PLATFORMS: Meta, Google Ads, TikTok Ads, LinkedIn Ads, Reddit Ads, X Ads, Pinterest Ads, Snapchat Ads, Microsoft Advertising, Apple Search Ads and ChatGPT Ads, plus product feeds in Google Merchant Center. PUBLISHING AND SCHEDULING: Facebook, Instagram, Threads, TikTok, YouTube, X, LinkedIn, Pinterest, Bluesky and Telegram. AD RESEARCH: the Meta, Google and LinkedIn ad libraries plus organic TikTok, Instagram, YouTube, Threads and Reddit. ANALYTICS: Google Analytics 4, Google Search Console and every connected platform's own post and campaign insights. Also brand onboarding, 50+ image and video generation models, ad scoring, competitor teardowns, Google Drive and OneDrive, a CLI and installable Claude skills.",
6
6
  "type": "module",