Создайте свой CLI
Подключите сервис, который WireCat пока не поддерживает: соберите свой инструмент с нашим шаблоном и вашим ИИ-агентом, с руководствами для каждого шага.
Вы можете быстро собрать свой инструмент командной строки для любого сервиса или API — с нашим шаблоном и вашим ИИ-агентом. Пользуетесь CRM, трекером задач или приложением для заметок, которое WireCat пока не поддерживает? Добавьте его сами.
Эта страница показывает, что для этого нужно, что вы получите и с чего начать. Руководства после неё проводят по каждой части.
Два варианта
Оба начинаются с одного шаблона и получают одну и ту же основу. Разница только в том, насколько вы связываете инструмент с остальными.
- Отдельный инструмент. Вам нужен быстрый инструмент командной строки для одного сервиса, и больше ничего. Шаблон с первого дня даёт основу: данные сервиса хранятся на вашем компьютере, по ним работает быстрый поиск, есть память для того, что узнал агент, сервер для ИИ-агентов и безопасный вход. Другие инструменты WireCat не нужны.
- Часть WireCat. Вы также пользуетесь WireCat для чатов, почты или встреч и хотите искать по всему сразу. Тогда свяжите свой инструмент с остальными: то, что он сохраняет, окажется рядом со всем остальным, и один вопрос найдёт это. Для этого нужно несколько дополнительных шагов, они описаны на странице Добавить источник.
Можно начать с первого варианта и связать инструмент позже.
Как его собрать, вкратце
- Начните с шаблона. Одна команда создаёт работающий инструмент, где всё уже настроено. Вы не начинаете с пустой папки.
- Скажите ИИ-агенту, какой сервис подключить. В шаблоне есть инструкции для агента. Он задаст вам несколько простых вопросов о сервисе — что в нём хранится, как в него входят — и напишет код.
- Проверьте на своём аккаунте. Запустите инструмент, посмотрите, что он нашёл, и попросите агента исправить то, чего не хватает.
- Поделитесь, если хотите. Встроенные проверки скажут, когда инструмент готов к публикации для других людей.
Чтобы начать, не нужно знать, как 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 doctorpersonal — это профиль: имя одного из ваших аккаунтов. Теперь откройте папку acme-cli в вашем ИИ-агенте.
Что дальше
- Скажите агенту, чего вы хотите. Назовите сервис, дайте ссылку на документацию для разработчиков и скажите, что нужно сделать. Например: «Подключи acme к API Acme CRM. Документация — https://example.com/api. Я хочу видеть список своих сделок и находить сделку по названию».
- Ответьте на его вопросы. Агент спросит, как входить в сервис, что в нём хранится и что нельзя сохранять никогда. Коротких ответов достаточно.
- Проверьте каждую команду на своём аккаунте. Агент собирает команды по одной, например команду со списком сделок. Запускайте их и говорите агенту, что не так или чего не хватает.
- Сделайте данные доступными для поиска. Попросите агента сохранять ответы сервиса в WireCat, чтобы поиск и ваши агенты находили их рядом с чатами и почтой. Как это сделать — на странице Добавить источник.
- Поделитесь, если хотите. Когда встроенные проверки проходят, опубликуйте инструмент в 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:<ваш ответ>. Без терминала,
например в скрипте или в оболочке агента, передайте ответы флагами. Тогда пропущенный ответ — ошибка со списком
вариантов; ничего не угадывается.
| Вопрос | Флаг | Варианты (несколько — через запятую) |
|---|---|---|
| Что это за инструмент? | --category | messenger, mail, notes, files, calendar, meetings |
| На каких языках содержимое? | --content-lang | коды языков, можно несколько: en,ru |
| Как человек входит в сервис? | --sign-in | oauth, token, session (код по телефону, QR), none |
| На чём можно строить? | --api | official-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.
- Создайте репозиторий и защитите его ветку
main, как сказано в чек-листе нового CLI. - Настройте в npm доверенную публикацию для вашего пакета с
release.ymlи добавьте секреты, если они нужны. - Выберите для ежемесячных проверок день месяца, который не занят другими вашими репозиториями. В
.github/workflows/monthly.ymlшаблона стоит заглушка, и CI отклоняет её, пока вы её не замените. - Только для инструментов WireCatLabs: добавьте инструмент в группы сравнения cli-base, в список инструментов
WireCat в cli-core и в
tools.jsonэтого сайта.
Инструмент вне WireCatLabs вместо этого держит свой файл групп сравнения и запускает cli-dev audit --groups <file>:
так его сравнивают с нашими инструментами без pull request в cli-base.
Куда дальше
- Основы за пять минут — как WireCat хранит записи из многих источников.
- Добавить источник — сохраните данные сервиса, чтобы их видели поиск и агенты.
- Хранить свои данные — где инструмент держит то, что нужно только ему.
- Вход в сервис — ключи, связка ключей и аккаунты.
- Соответствовать стандартам и обновляться — проверки, версии и обновления.
Поиск по логам в WireCat Desktop
Узнайте, почему инструмент упал, как часто это бывает и какие команда, профиль или ошибка тут замешаны, — с фильтрами, группами и записью каждого запуска.
Основы за пять минут
Сущности, записи источников, external_id, связи и список на проверку: модель, которой следует каждый инструмент на общем хранилище WireCat.