pimenov.ai

OpenCLI — превращает любой сайт в CLI для ИИ-агентов

OpenCLI превращает сайты, браузерные сессии, Electron-приложения и локальные инструменты в команды терминала. Готовые адаптеры дают предсказуемый результат, а браузерные команды позволяют ИИ-агенту работать в уже авторизованном Chrome: открывать страницы, заполнять формы, нажимать кнопки и извлекать данные.

Как устроен OpenCLI

OpenCLI объединяет три способа автоматизации:

СценарийЧто получает пользователь
Готовые адаптерыКоманды для Reddit, Hacker News, Twitter/X, LinkedIn, Amazon, Bilibili, Zhihu, Xiaohongshu и других площадок; в README заявлена поддержка более 100 сайтов и команд
Управление браузеромПримитивы для навигации, чтения структурированного снимка DOM, кликов, ввода, ожидания элементов и извлечения данных
Свои адаптеры и хаб CLIПодключение собственных команд, плагинов и локальных бинарников через общую точку входа

Связь с Chrome или Chromium обеспечивает расширение Browser Bridge и небольшой локальный демон. Демон запускается по необходимости, а команды работают с браузерной сессией, в которой пользователь уже вошёл на нужный сайт.

Проект распространяется по лицензии Apache-2.0. В снимке официального репозитория, полученном 12 сентября 2026 года, указано около 29,2 тыс. звёзд. npm-пакет называется @jackwener/opencli.

📌
OpenCLI даёт человеку и агенту общий командный интерфейс к сайтам, браузеру, настольным приложениям и локальным инструментам.

Что понадобится для установки

Для работы через браузер нужны Chrome или Chromium и расширение Browser Bridge. При установке CLI через npm требуется Node.js версии не ниже 20.18.1.

Для агентных сценариев понадобится среда с поддержкой скиллов, например Claude Code или Cursor. OpenCLI также можно использовать вручную как обычный CLI.

Установка OpenCLI

OpenCLIApp для macOS и Windows

Разработчики рекомендуют начинать с OpenCLIApp. Приложение включает среду выполнения (runtime), поддерживает установленную команду opencli и предоставляет интерфейс в системном трее для настройки, диагностики, обновлений, поддержания входа в браузерную сессию и преобразования веб-страниц в Markdown.

Скачайте приложение на официальной странице загрузки, откройте его и установите или восстановите команду opencli на странице System.

Установка CLI через npm

Этот вариант подходит для CI, серверов и работы без настольного приложения:

node --version
npm install -g @jackwener/opencli

Подключение Browser Bridge

Установите OpenCLI из Chrome Web Store. Для ручной установки можно скачать архив opencli-extension-v{version}.zip со страницы релизов GitHub, распаковать его, включить режим разработчика в chrome://extensions и выбрать Load unpacked.

Проверьте соединение:

opencli doctor

Выбор профиля Chrome

Каждый профиль Chrome запускает собственный экземпляр расширения. Посмотреть подключения, назначить локальное имя и выбрать профиль можно командами:

opencli profile list
opencli profile rename work
opencli profile use work
opencli --profile work browser main state

Если подключён один профиль, OpenCLI выбирает его автоматически. При нескольких профилях без значения по умолчанию инструмент предлагает сделать выбор, а не назначает профиль самостоятельно.

Первые команды

opencli list
opencli hackernews top --limit 5
opencli bilibili hot --limit 5

opencli list показывает зарегистрированные команды. Готовые адаптеры можно использовать вместо живой браузерной автоматизации, когда нужен повторяемый запрос с предсказуемым форматом результата.

Подключение к ИИ-агенту

Полный комплект скиллов устанавливается или обновляется одной командой:

npx skills add jackwener/opencli

Можно установить только нужные компоненты:

npx skills add jackwener/opencli --skill opencli-browser
npx skills add jackwener/opencli --skill opencli-adapter-author
npx skills add jackwener/opencli --skill opencli-autofix
npx skills add jackwener/opencli --skill opencli-browser-sitemap
npx skills add jackwener/opencli --skill opencli-sitemap-author
npx skills add jackwener/opencli --skill opencli-usage
СкиллКогда использовать
opencli-browserРазовая работа с живой страницей: навигация, ввод, клики и извлечение данных
opencli-adapter-authorСоздание переиспользуемого адаптера для нового сайта или команды
opencli-autofixИсправление адаптера, переставшего возвращать ожидаемые данные
opencli-browser-sitemapИспользование карты сайта во время браузерной задачи
opencli-sitemap-authorСоздание и обновление знаний о стабильных маршрутах по сайту
opencli-usageСправка по доступным сайтам и командам

Браузерный набор включает команды open, state, click, type, fill, select, keys, wait, get, find, extract, frames, screenshot, scroll, back, eval, network, init, verify, управление вкладками и close.

⚖️
После opencli browser требуется позиционное имя сессии: opencli browser work open https://example.com. Сессия сохраняет аренду вкладки до команды close или автоматической очистки после простоя.

Команды open и tab new возвращают идентификатор цели. Список целей показывает opencli browser work tab list, а флаг --tab направляет команду в конкретную вкладку. Новая вкладка не становится целью по умолчанию, пока не выполнена команда tab select.

Полезные сценарии

Получить данные готовой командой

Исходное условие: нужный сайт входит в набор адаптеров. Пользователь запускает команду сайта и при необходимости выбирает машинно-читаемый формат:

opencli hackernews top --limit 5 -f json

Наблюдаемый результат: при успешном выполнении команда выводит структурированные данные в JSON, а код 0 означает успех. Сценарий не подходит, если требуемой команды нет или сайт требует повторной авторизации.

Выполнить разовую задачу в авторизованном браузере

Исходное условие: Browser Bridge подключён, а пользователь вошёл на сайт в выбранном профиле Chrome. Агент может открыть страницу, получить DOM-снимок, найти элемент, заполнить форму и проверить изменение состояния страницы.

Наблюдаемый результат зависит от задачи: в новом состоянии страницы появляется ожидаемое изменение или сообщение сайта. Такой режим полезен для задач, которым не нужен постоянный адаптер. Действия выполняются от имени пользователя, поэтому публикацию, отправку сообщений и другие изменения следует подтверждать отдельно.

Создать собственный адаптер

Исходное условие: готовой команды нет, но нужный сайт доступен через браузер. Можно исследовать страницу, определить подходящий способ получения данных, выбрать режим авторизации и оформить повторяемую команду.

Наблюдаемый результат: новый адаптер возвращает выбранные поля в одном из поддерживаемых форматов при повторном вызове. Совместимость может потребовать обновления при изменениях сайта.

Способы расширения

ЗадачаРекомендуемый путь
Хранить личные команды в своём Git-репозиторииopencli plugin create и opencli plugin install file://...
Быстро подготовить приватный локальный адаптерopencli browser init и каталог ~/.opencli/clis/
Изменить официальный адаптер локальноopencli adapter eject, возврат поставляемой версии — opencli adapter reset
Установить сторонние командыopencli plugin install github:user/repo
Добавить существующий локальный бинарникopencli external register

OpenCLI также работает как хаб для таких инструментов, как gh, docker, vercel, wrangler, obsidian, longbridge, tg, discord, wx и ntn. Для Electron-приложений доступны адаптеры через Chrome DevTools Protocol (CDP), включая Cursor, Codex, ChatGPT App и Discord.

Форматы вывода и коды завершения

Встроенные команды поддерживают table по умолчанию, а также json, yaml, md и csv:

opencli bilibili hot -f json
opencli bilibili hot -f csv
opencli bilibili hot -v
КодЗначение
0Успех
66Пустой результат
69Browser Bridge недоступен
75Таймаут
77Требуется авторизация
78Ошибка конфигурации
130Выполнение прервано пользователем

Переменные окружения

ПеременнаяНазначение
OPENCLI_PROFILEПрофиль Browser Bridge при нескольких подключениях
OPENCLI_WINDOWРазмещение окна: foreground или background
OPENCLI_SITE_SESSIONРежим сессии адаптера: ephemeral или persistent
OPENCLI_BROWSER_CONNECT_TIMEOUTОжидание подключения браузера; по умолчанию 45 секунд
OPENCLI_BROWSER_COMMAND_TIMEOUTТаймаут одной браузерной команды; по умолчанию 60 секунд
OPENCLI_CDP_ENDPOINTCDP-адрес удалённого браузера или Electron-приложения
OPENCLI_CDP_TARGETФильтр CDP-целей по подстроке URL
OPENCLI_VERBOSEПодробный журнал; аналог флага -v
DEBUG_SNAPSHOTОтладочный вывод DOM-снимка при значении 1

Ограничения и безопасность

⚠️
Браузерные команды OpenCLI действуют через авторизованный профиль браузера. Для автоматизации лучше использовать отдельный профиль без банковских, административных и других критичных сессий.

Страница может содержать инструкции, рассчитанные на ИИ-агента. Ограничивайте права агента на незнакомых сайтах и требуйте подтверждение перед публикацией, отправкой сообщений, изменением настроек и другими действиями с внешними последствиями.

Работа адаптеров зависит от интерфейсов сайтов и действующей авторизации. При пустом результате или ошибке Unauthorized проверьте, не завершилась ли браузерная сессия. Если расширение не подключено, убедитесь, что оно установлено и включено, затем снова запустите opencli doctor.

Проверка результата

node --version показывает 20.18.1 или новее при установке через npm
opencli doctor не сообщает об ошибке соединения с расширением
opencli list выводит зарегистрированные команды
opencli hackernews top --limit 5 возвращает ожидаемые данные при доступном подключении
opencli profile list показывает нужный профиль Chrome
Агент видит установленный скилл opencli-browser
Для автоматизации используется профиль без критичных доступов

Материал основан на официальной документации и снимке репозитория, полученных 12 сентября 2026 года. Команды в рамках подготовки материала не запускались, поэтому фактическая работа локальной установки не проверялась.

Официальные ссылки

Следующий шаг

Если OpenCLI нужен как часть потока сбора данных для агента, следующим материалом будет Как собрать данные с сотен сайтов конкурентов и подать их в Codex.

Связанные материалы

Если OpenCLI планируется использовать для рабочих аккаунтов или командной автоматизации, заранее определите допустимые действия агента и операции, требующие ручного подтверждения.

Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov