コマンドラインから広告を作る

npm install -g hermoso で、スクリプトで扱えるマーケティング CLI が手に入ります。競合が出し続けている広告を取り出し、完成した広告をレンダリングし、クレジット残高を確認して、その結果を jq にパイプできます。同じパッケージで、922以上のツールの MCP サーバーを stdio で動かすこともできるので、ターミナルのエージェントは安いほうの方法を選べます。

広告のツールは、ほとんどがダッシュボードです。そのため、ほとんど自動化できません。ダッシュボードを cron で動かすことはできず、jq にパイプすることもできず、ターミナルのエージェントにクリックさせることもできません。Hermoso CLI は、広告の作業を「訪れる場所」ではなく「スクリプトにできるもの」にするためにあります。

インストールとサインイン:

npm install -g hermoso
hermoso auth login

auth login は、ループバックのリスナーを立ち上げてブラウザを開きます。gh や firebase と同じ方式なので、貼り付けるものはありません。発行されたキーは ~/.hermoso/config.json に、所有者だけが読める権限(ディレクトリは 0700、ファイルは 0600)で書き込まれます。実際の広告費を動かす権限を持っているからです。CI では、hermoso auth login --token <key> で対話なしにキーを保存できます。HERMOSO_TOKEN と HERMOSO_API_BASE は、環境変数から設定ファイルを上書きします。

コマンド

すべてのコマンドが --json に対応しています。それがこの仕組みの要点です。人が読む一行は便利のためのもので、JSON が契約です。

コマンドできること
hermoso capabilities有効なモデルIDと、その正確なクレジット単価。最初に実行してください。無料で読み取り専用です。モデル名を推測しなくなるための道具です。
hermoso credits残高、このセッションの使用量、最近の課金されたコールです。
hermoso brand --domain example.comウェブサイトを読み取り、ブランドプロフィール(商品、配色、ロゴ、トーン)を作ります。以後のレンダリングは、これに基づきます。
hermoso competitors --domain example.com直接の競合と、学ぶ価値のある類似ブランドを見つけます。
hermoso ads --company "Brand" その広告主が実際に配信している広告を、Meta、Google、LinkedIn の広告ライブラリから取得し、重複を除いて並べます。
hermoso research "longest-running protein bar ads"自然言語での広告リサーチです。広告ライブラリに加えて、オーガニックの TikTok も対象にし、見つけた広告を返します。
hermoso create --brand … --product … --format videoブリーフを完成した広告のコンセプトにします。コピーのバリエーションと、画像のコンセプトか動画の絵コンテを、レンダリングに使うモデルIDとともに作ります。
hermoso generate image --prompt "…" --ref ./bottle.pngレンダリングして、配信される URL を返します。--ref は実際の商品を合成するので、画面上のラベルは実際の SKU になります。
hermoso jobs / hermoso fetch <url>処理中のレンダリングを確認します。任意の資産を、クリックできる URL と直接ダウンロードできる URL に変換します。
hermoso mcp922以上のツールの MCP を、stdio で提供します。ホスト型サーバーと同じツールです。

1つのパッケージに2つの入り口、そしてそれが大事な理由

ターミナルのエージェントは、ツールの代金を2回払っています。1回目はコンテキストに載せるマニフェストで、2回目は呼び出しごとのトークンです。922以上のツールのマニフェストは、ただではありません。そこで同じパッケージは2つの入り口を用意し、どちらを使うかはエージェントが選べるようにしています。

  • MCP(hermoso mcp、またはホスト型の https://app.hermoso.ai/mcp)は、すべてのツールと型付きの豊かな引数が必要なときに使います。
  • サブプロセスのコマンドは、トークンを節約したいときに使います。エージェントがシェルから呼び出して JSON を読み、マニフェストはまったく読み込みません。同梱の Claude スキルが使っているのがこの方式です。

どちらも同じ API を使い、同じクレジットを消費し、同じライブラリに書き込みます。そのため、どちらか一方に取り残されるものはありません。

スクリプトにする価値があること

  • 毎週の競合調査。 hermoso competitors の結果を hermoso ads に流し、先週と比べます。そうすれば、市場の中で誰が配信を始め、誰が止めたかを、定期的なレポートとして手に入れられます。
  • カタログのためのまとめてのクリエイティブ作成。 SKU をループで回し、商品ごとに実際の商品が入った広告を1つずつレンダリングして、返ってきた URL を集めます。UI では本当に面倒な作業です。
  • CI でのクレジット確認。 hermoso credits --json | jq .balance で、残高が空の状態で長いバッチが始まる前に、パイプラインを止めます。
  • コストを考えたモデル選び。 hermoso capabilities --json は、モデルごとの正確な費用を出します。そのため、スクリプトは1つのモデルを固定する代わりに、ブリーフを満たす最も安いモデルを選べます。

投稿とキャンペーン

CLI のサブコマンドは、リサーチと制作をカバーします。Meta、Google Ads、Microsoft Advertising、Reddit Ads、LinkedIn、Pinterest、X Ads、TikTok Ads、Snapchat Ads、ChatGPT Ads、Apple Search Ads、AppLovin Ads にまたがる投稿、予約、キャンペーン管理は MCP の側にあります。同じパッケージから hermoso mcp で使えるほか、ホスト型のエンドポイントや、ウェブのスタジオからも使えます。投稿先は、Facebook、Instagram、Threads、TikTok、YouTube、X、LinkedIn、Pinterest、Bluesky、Telegram、Google ビジネスプロフィールです。

確認なしでは実行しないこと

予算を持つエージェントは、影響範囲が限られていて初めて役に立ちます。そのため、支出の権限はプロンプトではなくサーバー側で制限しています。Metaのキャンペーン、広告セット、広告は、呼び出し側が上書きできない形で PAUSED の状態で作られます。実際の広告費を動かせるステータス切り替え(すべての広告プラットフォームに1つずつあります。set_meta_campaign_status、set_google_ads_status、set_microsoft_ads_status、set_reddit_ads_status、set_linkedin_ads_status、set_pinterest_ads_status、set_x_ads_status、set_openai_ads_status など)は、明示的な確認フラグがないと実行されません。同じゲートは、すでに有効になっている親の下に、有効な Google Ads の広告グループ、広告、キーワードを作る場合にも適用されます。それらは次のオークションですぐ配信されるからです。削除も確認が必要です。生成の側では、hermoso_capabilities が、実行の前に各モデルの正確なクレジット単価を表示します。また、すべてのレンダリングは見積もりを確保し、実際の費用で精算します。そのため、送信に失敗した場合は、こっそり課金されるのではなく返金されます。

エージェントの中で作業していて、シェルではない場合は、Claude Code でのマーケティングの自動化と、MCP と CLI の完全なリファレンスをご覧ください。

よくある質問

広告を実行するためのコマンドラインツールはありますか?

はい。npm install -g hermoso で Hermoso CLI をインストールできます。Meta、Google、LinkedIn の広告ライブラリを対象に競合の広告を調べ、ウェブサイトからブランドプロフィールを作り、完成した画像と動画の広告を計画してレンダリングし、クレジットとジョブを報告します。すべてのコマンドが、スクリプト用の --json 出力に対応しています。同じパッケージで、922以上のツールの MCP サーバーを stdio で動かすこともできます。

Hermoso CLI の認証はどうすればいいですか?

hermoso auth login を実行します。ループバックのブラウザでサインインが開き(gh や firebase と同じ方式です)、発行されたキーを ~/.hermoso/config.json に、所有者だけが読める権限(ディレクトリは 0700、ファイルは 0600)で保存します。CI では、hermoso auth login --token <key> で対話なしに保存できます。HERMOSO_TOKEN と HERMOSO_API_BASE は、環境変数から設定を上書きします。

出力を jq にパイプできますか?

はい。すべてのコマンドが --json を受け付け、構造化されたオブジェクトを出力します。それが意図された契約で、人が読む一行は便利のためのものにすぎません。長いレンダリングのバッチの前に CI でかけるガードとして、hermoso credits --json | jq .balance が役立ちます。

MCP サーバーではなく CLI を使うのはなぜですか?

トークンの費用のためです。MCP クライアントはツールのマニフェストをコンテキストに読み込み、922以上のツールはただではありません。シェルからサブプロセスのコマンドを呼び出し、JSON を読むターミナルのエージェントは、マニフェストをまったく持ちません。どちらの入り口も同じ API を使い、同じクレジットを消費し、同じライブラリに書き込むので、両方を組み合わせて使えます。

CLI から Facebook に投稿したり、Meta の広告を管理したりできますか?

Meta、Google Ads、Microsoft Advertising、Reddit Ads、LinkedIn、Pinterest、X Ads、TikTok Ads、Snapchat Ads、ChatGPT Ads、Apple Search Ads、AppLovin Ads にまたがる投稿、予約、キャンペーン管理は、CLI のサブコマンドではなく MCP の側にあります。同じパッケージから hermoso mcp を実行して使うか、https://app.hermoso.ai/mcp のホスト型エンドポイントを使うか、ウェブのスタジオから使えます。投稿先は、Facebook、Instagram、Threads、TikTok、YouTube、X、LinkedIn、Pinterest、Bluesky、Telegram、Google ビジネスプロフィールです。

ローカルのサーバーに対して動かせますか?

はい。HERMOSO_API_BASE を自分のオリジン(例: http://localhost:3000)に設定すると、CLI と MCP サーバーの両方がそこを対象にします。localhost を指定した場合は、認証トークンは不要です。

関連

レンダリングはサーバー側のジョブとして実行され、ポーリングで確認します。再試行した投稿は、最初の試行の結果が不明でも安全です。詳しくは ジョブと冪等性 をご覧ください。

Claude Code の中でセットアップしたい場合は、Claude Code でのマーケティングをご覧ください。

CLI をインストールして、ブラウザからサインインすれば、最初の競合調査は1コマンドです。無料アカウント、獲得可能な無料クレジット250以上、カード不要。

無料で始める →   MCP のドキュメントを読む →