Zoomkit logo

Zoomkit

Community
artwist-polyakov
zoomkit

Набор утилит и инструкций для автоматизации Яндекс.Директа через ZoomKit: проверка рекламных ссылок и страниц на ошибки, настройка зануления автотаргетинга на поиске и управление ставками с пересчётом каждые 30 минут. Используй, когда нужно настроить или использовать ZoomKit для работы с Яндекс.Директом, получить список подключённых проектов или аккаунтов, отчёты и состояние кабинетов или кампаний, либо узнать тарифы, баланс и счета сервиса.

Overview

Publisherartwist-polyakov
Repositorypolyakov-claude-skills
Skill namezoomkit
Stars
218
Forks
55
Bundled files
16
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 16 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by artwist-polyakov on GitHub. Read the source before you install it.

Installation

Install the Zoomkit AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/artwist-polyakov/polyakov-claude-skills/tree/main/plugins/zoomkit/skills/zoomkit
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/artwist-polyakov/polyakov-claude-skills.git /tmp/polyakov-claude-skills
mkdir -p .claude/skills
cp -r /tmp/polyakov-claude-skills/plugins/zoomkit/skills/zoomkit .claude/skills/zoomkit
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Zoomkit in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Zoomkit on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Zoomkit is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

ZoomKit

Работай через единый POSIX-сценарий scripts/zoomkit.sh. Определи каталог навыка по пути загруженного SKILL.md и запускай команды из него:

sh
sh scripts/zoomkit.sh <команда> [параметры]

Зависимости: curl для всех сетевых команд; jq для проверки тел запросов и краткого разбора JSON. Команды чтения без jq всё равно сохраняют полный ответ в файл.

Первое знакомство и подключение

Если пользователь ещё не зарегистрирован, не знает, нужен ли ему ZoomKit, или у него нет ключа, сначала прочитай GETTING_STARTED.md и выполни:

sh
sh scripts/zoomkit.sh getting-started

Команда работает без ключа и сети. Объясни пользователю простыми словами:

  1. Какие ручные задачи ZoomKit снимает.
  2. Сколько стоят подходящие ему возможности.
  3. Почему сервис может быть выгоден именно при его объёме работы, без обещаний гарантированной экономии.
  4. Порядок подключения: регистрация, стартовое пополнение примерно на 500 руб., выпуск ключа, сохранение в config/.env и проверка.

Цены меняются. Для вопроса о стоимости «сейчас» проверь встроенный блок тарифов на официальной странице https://zoomkit.ru/help; связанный с ним внешний документ используй только если он открывается. Если проверить сеть нельзя, явно назови дату справочного снимка из GETTING_STARTED.md. Не утверждай, что публичный список охватывает все списания. Не обещай бесплатный период, скидку или иную акцию без подтверждения на официальном сайте.

config/.env внутри каталога навыка — штатное постоянное хранилище ключа. Сценарий читает его при каждом запуске, а файл сохраняется между сессиями. Всегда предлагай этот способ для обычной работы; переменная окружения нужна лишь как временное переопределение. Не утверждай, что контейнер удалит файл, что его придётся создавать в каждой сессии или что навык можно использовать только из Claude Code либо локальной оболочки.

Не начинай знакомство с просьбы о ключе и не проси вставлять его в чат. Если пользователь решил подключиться, проведи его по шагам из config/README.md: регистрация или вход → пополнение баланса → выпуск ключа → запись в config/.env → команда token. Для первого знакомства предложи 500 руб. как небольшую стартовую сумму, а не как документированный минимум; напомни проверить итог с добавляемыми при оплате 6%.

Перед запросом данных профиля проверь ключ:

sh
sh scripts/zoomkit.sh token

Если ключа нет, сценарий завершится до сетевого запроса и покажет пользу сервиса и весь порядок подключения. Не ограничивайся ответом «не могу»: передай пользователю шаги, дождись сохранения ключа в постоянный config/.env, затем повтори token и исходный запрос.

Если сохранённый ключ существует, но token возвращает HTTP 401, не повторяй первичную регистрацию и не предлагай снова пополнить баланс. Попроси войти в существующую учётную запись, выпустить замену недействительному ключу, обновить ZOOMKIT_API_TOKEN в том же config/.env и повторить token. Если ключ временно переопределён одноимённой переменной окружения, её тоже нужно обновить или удалить.

Если пользователь спрашивает только о возможностях выставления или оплаты счёта, ключ не нужен: начни с billing-capabilities и следующего раздела. Настройку ключа предлагай, только если нужно прочитать баланс или существующие счета.

Проверки кабинетов и кампаний

Для отчётов с ожиданием, проверок по нескольким кабинетам, правил ставок, автотаргетинга и проверки ссылок сначала прочитай AUDIT_WORKFLOWS.md. Там отмечено, какие из проверок полные, частичные или недоступные через API.

Если пользователь называет подключённые сущности «проектами» или «аккаунтами», выполни clients: именно «Список проектов/аккаунтов» — официальное название метода /stats/clients. Покажи интеграции и вложенные проекты/аккаунты — рекламные кабинеты, не поправляя терминологию пользователя без необходимости.

Если конкретный кабинет Яндекс.Директа не находится по имени или комментарию, проверь полный сохранённый ответ clients, а не только сокращённую таблицу. Не утверждай, что кабинет не подключён, пока среди результатов yandex.direct есть аккаунты с пустым комментарием и непонятным техническим именем, особенно porg-*. Если пользователь знает, что кабинет существует, дай ручную инструкцию из раздела «Если кабинет не удаётся распознать»: https://zoomkit.ru/yandex/direct → «Клиенты и дневной расход» → заполнить поле «Комментарий» для всех непонятных аккаунтов → повторить clients. Не угадывай соответствие по техническому имени или идентификатору.

Для списка кампаний сначала выполни clients, возьми id вложенного кабинета yandex.direct, затем вызови campaigns --client ID. Не путай этот ClientId с идентификатором интеграции. Используй полученные ID кампаний для bidrules, url-check-settings и других проверок по кампаниям.

API 1.9.0 возвращает список из данных ZoomKit, поэтому учитывай updated_at и показывай hints. Архивные кампании входят в ответ, а can_set_bids показывает пригодность для управления ставками. Мастер кампаний и товарные кампании Яндекс.Директ не передаёт в ZoomKit; недавно созданная ЕПК или другая кампания может появиться после обновления кабинета. Не запускай изменяющий client-update для диагностического запроса без явного разрешения пользователя.

Диагностический запрос не разрешает изменение. В частности, не запускай autotargeting для просьбы «проверь»: эта команда сразу создаёт недостающие правила в подходящих неархивных кампаниях активных кабинетов ключа. Выполняй её только после отдельного явного запроса на исправление и показа пользователю идентификатора ключа Яндекса.

Важное ограничение по счетам

Официальный API 1.9.0 умеет только читать баланс и список уже выставленных счетов. Он не позволяет создать счёт, передать произвольные реквизиты, получить печатную форму или ссылку на оплату.

При запросе на новый счёт или ссылку:

  1. Объясни ограничение API и дай ссылку https://zoomkit.ru/profile.
  2. Если ключ уже настроен или пользователь отдельно просит проверить свои счета, выполни invoices --status wait.
  3. Не подбирай закрытые адреса и не отправляй придуманные поля. Подробности: BILLING.md.

Для проверки возможностей без ключа:

sh
sh scripts/zoomkit.sh billing-capabilities

Команды чтения

КомандаНазначениеПараметры
tokenСостояние текущего ключа—
balanceБаланс, суточный тариф, запас дней—
invoicesУже выставленные счета--status wait|paid|cancelled, --limit N
clientsИнтеграции и вложенные проекты/аккаунты (рекламные кабинеты)—
campaignsКампании кабинета Яндекс.Директа по данным ZoomKit--client ID, необязательно --limit N
reportsСписок отчётов—
reportСостояние и результат отчёта--id ID
report-waitОжидать READY или FAILED, не более 55 секунд за запуск--id ID, необязательно --interval, --timeout
bidrulesПравила ставок кампании--campaign ID
url-check-settingsНастройки проверки ссылок--campaign ID
url-check-tasksПоследние проверки ссылок--campaign ID
url-check-taskОтчёт одной проверки--campaign ID --task ID

Полный ответ сохраняется в cache/latest-<команда>.json; исключение — report-wait, который по умолчанию пишет cache/report-<ID>.json, чтобы параллельные ожидания не смешивались. Стандартный вывод остаётся коротким. --output ПУТЬ меняет файл назначения. --raw печатает весь JSON и подходит только для небольших ответов.

Команды изменения

КомандаМетодОбязательные параметры
report-createСоздать отчёт--body ФАЙЛ --confirm
report-deleteУдалить отчёт--id ID --confirm
client-updateПоставить обновление кабинета в очередь--client ID --confirm
autotargetingДобавить недостающие правила автотаргетинга в подходящих неархивных кампаниях активных кабинетов ключа--token-id ID --confirm
bidrule-common-updateИзменить общее правило ставок--campaign ID --body ФАЙЛ --confirm
bidrule-keywords-createСоздать правило для фраз--campaign ID --body ФАЙЛ --confirm
bidrule-keywords-updateИзменить правило для фраз--campaign ID --bidrule ID --body ФАЙЛ --confirm
bidrule-keywords-deleteУдалить правило для фраз--campaign ID --bidrule ID --confirm
url-check-settings-updateИзменить переключатели проверки ссылок--campaign ID --body ФАЙЛ --confirm

Перед изменением покажи пользователю целевые идентификаторы и содержимое тела запроса. Передавай --confirm только после явного запроса на это изменение. Для предварительной проверки команды используй --dry-run: сеть и ключ не требуются.

Заготовки тел запросов лежат в assets/. Скопируй нужный файл во временный или рабочий каталог и измени копию; не правь исходную заготовку. Для защиты товара от 404 и исчезновения контрольной строки можно взять assets/url-check-product-protection.example.json, но саму строку задай вручную по settings_url. Заготовка явно задаёт весь набор условий автоприостановки: перед подтверждением сравни её с текущими настройками и покажи пользователю, какие условия будут включены и выключены.

Для команд изменения с --body сценарий не отправляет тело, пока jq не подтвердит, что файл содержит корректный JSON-объект.

Справочники

  • Польза, тарифы и сценарий первого знакомства: GETTING_STARTED.md.
  • Семь проверочных сценариев и границы API: AUDIT_WORKFLOWS.md.
  • Все пути, коды ответов и ограничения: API_REFERENCE.md.
  • Счета, баланс и способы оплаты: BILLING.md.
  • Создание и получение отчётов: REPORTS.md.
  • Правила ставок и проверки ссылок: YANDEX_DIRECT.md.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Zoomkit AI skill do?

Набор утилит и инструкций для автоматизации Яндекс.Директа через ZoomKit: проверка рекламных ссылок и страниц на ошибки, настройка зануления автотаргетинга на поиске и управление ставками с пересчётом каждые 30 минут. Используй, когда нужно настроить или использовать ZoomKit для работы с Яндекс.Директом, получить список подключённых проектов или аккаунтов, отчёты и состояние кабинетов или кампаний, либо узнать тарифы, баланс и счета сервиса.

Why use Zoomkit on TypingMind?

Because you install it once and use it with any model. Zoomkit is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Zoomkit in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/artwist-polyakov/polyakov-claude-skills/tree/main/plugins/zoomkit/skills/zoomkit. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Zoomkit?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Zoomkit?

As many as you like. As long as a model supports skills, you can use Zoomkit with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Zoomkit AI skill free?

Yes. It is published on GitHub by artwist-polyakov under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇