Создайте свой CLI

Подключите сервис, который WireCat пока не поддерживает: соберите свой инструмент с нашим шаблоном и вашим ИИ-агентом, с руководствами для каждого шага.

Вы можете быстро собрать свой инструмент командной строки для любого сервиса или API — с нашим шаблоном и вашим ИИ-агентом. Пользуетесь CRM, трекером задач или приложением для заметок, которое WireCat пока не поддерживает? Добавьте его сами.

Эта страница показывает, что для этого нужно, что вы получите и с чего начать. Руководства после неё проводят по каждой части.

Два варианта

Оба начинаются с одного шаблона и получают одну и ту же основу. Разница только в том, насколько вы связываете инструмент с остальными.

  • Отдельный инструмент. Вам нужен быстрый инструмент командной строки для одного сервиса, и больше ничего. Шаблон с первого дня даёт основу: данные сервиса хранятся на вашем компьютере, по ним работает быстрый поиск, есть память для того, что узнал агент, сервер для ИИ-агентов и безопасный вход. Другие инструменты WireCat не нужны.
  • Часть WireCat. Вы также пользуетесь WireCat для чатов, почты или встреч и хотите искать по всему сразу. Тогда свяжите свой инструмент с остальными: то, что он сохраняет, окажется рядом со всем остальным, и один вопрос найдёт это. Для этого нужно несколько дополнительных шагов, они описаны на странице Добавить источник.

Можно начать с первого варианта и связать инструмент позже.

Как его собрать, вкратце

  1. Начните с шаблона. Одна команда создаёт работающий инструмент, где всё уже настроено. Вы не начинаете с пустой папки.
  2. Скажите ИИ-агенту, какой сервис подключить. В шаблоне есть инструкции для агента. Он задаст вам несколько простых вопросов о сервисе — что в нём хранится, как в него входят — и напишет код.
  3. Проверьте на своём аккаунте. Запустите инструмент, посмотрите, что он нашёл, и попросите агента исправить то, чего не хватает.
  4. Поделитесь, если хотите. Встроенные проверки скажут, когда инструмент готов к публикации для других людей.

Чтобы начать, не нужно знать, как WireCat устроен внутри. Руководства ниже объясняют каждую часть, когда она вам понадобится.

Что WireCat даёт вашему инструменту

  • Данные на вашем компьютере и быстрый поиск. То, что сохраняет инструмент, лежит в локальном файле. Поиск находит слова в любой форме на русском, английском и испанском, а если включить — и по смыслу.
  • Память для агента. Агент может сохранить то, что узнал, — итог, предпочтение — и найти это позже.
  • Один поиск по всем инструментам, если вы связали свой: то, что он сохраняет, лежит рядом с сообщениями, письмами, встречами и документами из других инструментов.
  • Работа с ИИ-агентами. Каждая команда вашего инструмента готова для агента, а что агенту можно менять, решаете вы.
  • Аккаунты не смешиваются. Вы всегда указываете, с каким аккаунтом работает команда, поэтому ничего не уйдёт не туда.
  • Вход и пароли под защитой. Ключи хранятся в связке ключей вашего компьютера и никогда не появляются в выводе.
  • Проверки, которые сохраняют работоспособность. Шаблон приносит те же проверки, что запускает каждый инструмент WireCat, поэтому ваш инструмент продолжает работать, пока WireCat растёт.

Что понадобится

  • Аккаунт в сервисе и способ, которым программы до него достучатся. Большинство сервисов выдают API-ключ в настройках или позволяют приложению войти за вас. Ссылка на документацию сервиса для разработчиков очень помогает агенту.
  • ИИ-агент для кода, который умеет запускать команды: Claude Code, Codex, Cursor, Gemini CLI или похожий.
  • Node.js, pnpm и git на вашем компьютере.

Начните с шаблона

cli-template — это то, с чего начинается каждый новый инструмент. Эта команда задаёт несколько коротких вопросов о сервисе и создаёт инструмент acme в папке acme-cli:

npx @wirecat/cli-template new acme-cli --command acme --package @example/acme-cli --owner example

Проверьте, что новый инструмент запускается:

cd acme-cli && pnpm install && pnpm build
node dist/bin/acme.js personal doctor

personal — это профиль: имя одного из ваших аккаунтов. Теперь откройте папку acme-cli в вашем ИИ-агенте.

Что дальше

  1. Скажите агенту, чего вы хотите. Назовите сервис, дайте ссылку на документацию для разработчиков и скажите, что нужно сделать. Например: «Подключи acme к API Acme CRM. Документация — https://example.com/api. Я хочу видеть список своих сделок и находить сделку по названию».
  2. Ответьте на его вопросы. Агент спросит, как входить в сервис, что в нём хранится и что нельзя сохранять никогда. Коротких ответов достаточно.
  3. Проверьте каждую команду на своём аккаунте. Агент собирает команды по одной, например команду со списком сделок. Запускайте их и говорите агенту, что не так или чего не хватает.
  4. Сделайте данные доступными для поиска. Попросите агента сохранять ответы сервиса в WireCat, чтобы поиск и ваши агенты находили их рядом с чатами и почтой. Как это сделать — на странице Добавить источник.
  5. Поделитесь, если хотите. Когда встроенные проверки проходят, опубликуйте инструмент в npm, и другие установят его так же, как любой инструмент WireCat.

Если что-то не получается

  • Запустите node dist/bin/acme.js personal doctor в папке инструмента. Он проверяет установку, настройки и профили.
  • Попросите агента ещё раз прочитать инструкции шаблона. В них описаны частые проблемы.
  • Задайте вопрос или сообщите об ошибке в cli-template. Не прикладывайте ключи, пароли и личные данные.

Покажите его на wirecat.dev

Инструмент вне WireCatLabs может появиться здесь в группе «Инструменты сообщества». Откройте pull request в cli-docs, который добавляет его в tools.json с "community": true. Его страницы затем копируются из его репозитория на проверенном теге релиза, как наши. Список проверки говорит, что мы проверяем. Инструмент сообщества публикуется в своём пространстве имён npm: @wirecat и название «WireCat» остаются нашими.

Обновляйтесь

Шаблон продолжает улучшаться. В вашем инструменте, с чистым рабочим деревом git, запустите:

npx @wirecat/cli-template upgrade

Для каждого файла шаблона, который изменился с вашей версии, он спрашивает, что сделать: apply вливает изменение в ваш файл, replace берёт файл шаблона, skip оставляет ваш, а diff сначала показывает изменение. Конфликт оставляет обычные метки git; разрешите их и запустите upgrade снова. Файлы, которые шаблон только положил один раз, например ваш код и ваши страницы, он никогда не трогает. --dry-run показывает, что изменится, и ничего не пишет.

Подробности о шаблоне

Для случаев, когда вам или агенту нужны точные параметры.

Семь вопросов

Каждый ответ, кроме языков, — выбор из короткого списка, и каждый также принимает other:<ваш ответ>. Без терминала, например в скрипте или в оболочке агента, передайте ответы флагами. Тогда пропущенный ответ — ошибка со списком вариантов; ничего не угадывается.

ВопросФлагВарианты (несколько — через запятую)
Что это за инструмент?--categorymessenger, mail, notes, files, calendar, meetings
На каких языках содержимое?--content-langкоды языков, можно несколько: en,ru
Как человек входит в сервис?--sign-inoauth, token, session (код по телефону, QR), none
На чём можно строить?--apiofficial-client, official-docs, unofficial
Как люди фильтруют найденное?--filtersнесколько из time, person, container, text, status
Что никогда не должно попасть в хранилище, журнал или вывод?--never-storeнесколько из tokens, codes, secret-links, content
Какие недоверенные данные приходят?--untrustedнесколько из messages, files, links, names; или none отдельно

Тот же инструмент, созданный без единого вопроса:

npx @wirecat/cli-template new acme-cli --command acme --package @example/acme-cli --owner example \
  --category notes --content-lang en --sign-in token --api official-docs --filters time,text \
  --never-store tokens --untrusted messages,links

Учитесь у похожего инструмента

В шаблоне нет примера кода. Ваш агент учится у инструмента WireCat, ближайшего к вашему; его выбирает первый ответ:

Что за инструментОбразец
мессенджерwhatsapp-cli, затем tg-cli и max-cli
файлы и документыdrive-cli
встречиzoom-cli
заметкиcli-memo
почта, календарь, другоепока нет: выберите ближайший вместе с агентом

Пока что поиск показывает записи вашего инструмента как сообщения. Когда cli-core научится регистрировать новый вид источника, ваш инструмент сможет зарегистрировать свой.

Четыре шага, которые делает человек

new выводит их в конце. Последний нужен только инструментам в организации WireCatLabs.

  1. Создайте репозиторий и защитите его ветку main, как сказано в чек-листе нового CLI.
  2. Настройте в npm доверенную публикацию для вашего пакета с release.yml и добавьте секреты, если они нужны.
  3. Выберите для ежемесячных проверок день месяца, который не занят другими вашими репозиториями. В .github/workflows/monthly.yml шаблона стоит заглушка, и CI отклоняет её, пока вы её не замените.
  4. Только для инструментов WireCatLabs: добавьте инструмент в группы сравнения cli-base, в список инструментов WireCat в cli-core и в tools.json этого сайта.

Инструмент вне WireCatLabs вместо этого держит свой файл групп сравнения и запускает cli-dev audit --groups <file>: так его сравнивают с нашими инструментами без pull request в cli-base.

Куда дальше

  1. Основы за пять минут — как WireCat хранит записи из многих источников.
  2. Добавить источник — сохраните данные сервиса, чтобы их видели поиск и агенты.
  3. Хранить свои данные — где инструмент держит то, что нужно только ему.
  4. Вход в сервис — ключи, связка ключей и аккаунты.
  5. Соответствовать стандартам и обновляться — проверки, версии и обновления.