Рекламные инструменты почти полностью состоят из дашбордов, поэтому автоматизировать их почти невозможно. Дашборд нельзя поставить в cron, дашборд нельзя передать в jq, и нельзя попросить терминального агента нажать в нём кнопку. CLI Hermoso существует для того, чтобы рекламный цикл перестал быть местом, куда вы заходите, и стал тем, что можно скриптовать.
Установка и вход:
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 | Рендерит и возвращает обслуживаемую ссылку. --ref вставляет ваш реальный продукт, так что этикетка на экране это ваш настоящий SKU. |
hermoso jobs / hermoso fetch <url> | Просмотр рендеров в работе; превращает любой ассет в кликабельную ссылку и ссылку для прямой загрузки. |
hermoso mcp | Запускает полную MCP-поверхность на 922+ инструмента через stdio, те же инструменты, что доступны на размещённом сервере. |
Две поверхности, один пакет, и почему это важно
Терминальные агенты платят за инструменты дважды: один раз за манифест, который держат в контексте, и второй раз за токены, которые тратит каждый вызов. Манифест на 922+ инструмента не бесплатен. Поэтому один пакет поставляет обе поверхности, и агент выбирает:
- MCP (
hermoso mcpили размещённыйhttps://app.hermoso.ai/mcp), когда нужна полная поверхность и богатые типизированные аргументы. - Подпроцесс-команды, когда нужен экономичный по токенам путь: агент запускает команду в оболочке, читает JSON и вообще не загружает манифест. Именно по этой схеме работают встроенные навыки Claude.
Оба варианта обращаются к одному API, списывают одни и те же кредиты и пишут в одну и ту же библиотеку, так что ничего не теряется на одной из сторон.
Что стоит автоматизировать
- Еженедельный обзор конкурентов.
hermoso competitorsпередаётся вhermoso ads, сравнивается с прошлой неделей, и у вас есть постоянный отчёт о том, что ваш рынок начал и перестал запускать. - Пакетный креатив для каталога. Пройдитесь по SKU, отрендерьте по одному объявлению с реальным продуктом на каждый и соберите возвращённые ссылки. Это как раз та работа, которая в интерфейсе невыносимо монотонна.
- Защита по кредитам в CI.
hermoso credits --json | jq .balance, и пайплайн падает до начала долгого пакета, если баланс пуст. - Выбор модели с учётом цены.
hermoso capabilities --jsonотдаёт точную стоимость каждой модели, так что скрипт может выбрать самую дешёвую модель, которая соответствует брифу, вместо того чтобы жёстко прописать одну.
Публикация и кампании
Подкоманды 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 Business Profile.
Что он не сделает без вашего разрешения
Агент с бюджетом полезен только тогда, когда радиус действия ограничен, поэтому право тратить деньги ограничено на сервере, а не в промпте. Кампании, группы объявлений и объявления в Meta создаются со статусом PAUSED, и переопределить это вызывающий не может. Переключатели статуса, которые могут запустить реальные траты (по одному на каждой рекламной платформе: 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 устанавливает CLI Hermoso, который исследует рекламу конкурентов в рекламных библиотеках Meta, Google и LinkedIn, создаёт профиль бренда по сайту, планирует и рендерит готовые видео- и статичные объявления и показывает кредиты и задачи. У каждой команды есть вывод --json для скриптов. Тот же пакет запускает полный MCP-сервер на 922+ инструмента через stdio.
Как авторизоваться в CLI Hermoso?
Выполните hermoso auth login. Команда открывает вход через браузер с локальной петлёй (по той же схеме, что gh и firebase) и сохраняет выданный ключ в ~/.hermoso/config.json с правами только для владельца (каталог 0700, файл 0600). Для CI команда hermoso auth login --token <key> сохраняет ключ без интерактивного входа, а HERMOSO_TOKEN и HERMOSO_API_BASE переопределяют конфиг через переменные окружения.
Можно ли передать вывод в jq?
Да. Каждая команда принимает --json и выводит структурированный объект. Это и есть задуманный контракт; строка для человека это лишь удобство. hermoso credits --json | jq .balance полезная защита в CI перед длинным пакетом рендеров.
Зачем использовать CLI, а не MCP-сервер?
Из-за стоимости токенов. 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 находятся в MCP-поверхности, а не в подкомандах CLI. Доступ к ним из того же пакета: командой hermoso mcp, с размещённого эндпоинта https://app.hermoso.ai/mcp или из веб-студии. Каналы публикации: Facebook, Instagram, Threads, TikTok, YouTube, X, LinkedIn, Pinterest, Bluesky, Telegram и Google Business Profile.
Работает ли это с локальным сервером?
Да. Задайте HERMOSO_API_BASE как ваш собственный адрес (например, http://localhost:3000), и и CLI, и MCP-сервер будут обращаться к нему. Для локального адреса токен авторизации не нужен.
Связанное
Рендеры работают как серверные задачи, которые вы опрашиваете, а повторная публикация безопасна даже тогда, когда исход первой попытки неизвестен. Подробности в разделе задачи и идемпотентность.
Хотите настроить это внутри Claude Code? См. маркетинг в Claude Code.
Установите CLI, войдите через браузер, и ваш первый обзор конкурентов будет в одной команде. Бесплатный аккаунт, 250+ кредитов, которые можно заработать, без карты.
Начать бесплатно → Читать документацию MCP →