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.
Что понадобится для установки
Для работы через браузер нужны 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 5opencli 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 | Пустой результат |
69 | Browser 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_ENDPOINT | CDP-адрес удалённого браузера или Electron-приложения |
OPENCLI_CDP_TARGET | Фильтр CDP-целей по подстроке URL |
OPENCLI_VERBOSE | Подробный журнал; аналог флага -v |
DEBUG_SNAPSHOT | Отладочный вывод DOM-снимка при значении 1 |
Ограничения и безопасность
Страница может содержать инструкции, рассчитанные на ИИ-агента. Ограничивайте права агента на незнакомых сайтах и требуйте подтверждение перед публикацией, отправкой сообщений, изменением настроек и другими действиями с внешними последствиями.
Работа адаптеров зависит от интерфейсов сайтов и действующей авторизации. При пустом результате или ошибке Unauthorized проверьте, не завершилась ли браузерная сессия. Если расширение не подключено, убедитесь, что оно установлено и включено, затем снова запустите opencli doctor.
Проверка результата
node --version показывает 20.18.1 или новее при установке через npmopencli doctor не сообщает об ошибке соединения с расширениемopencli list выводит зарегистрированные командыopencli hackernews top --limit 5 возвращает ожидаемые данные при доступном подключенииopencli profile list показывает нужный профиль Chromeopencli-browserМатериал основан на официальной документации и снимке репозитория, полученных 12 сентября 2026 года. Команды в рамках подготовки материала не запускались, поэтому фактическая работа локальной установки не проверялась.
Официальные ссылки
- Репозиторий: github.com/jackwener/OpenCLI
- Загрузка OpenCLIApp: opencli.info/download
Следующий шаг
Если OpenCLI нужен как часть потока сбора данных для агента, следующим материалом будет Как собрать данные с сотен сайтов конкурентов и подать их в Codex.
Связанные материалы
- Статья: Мои Codex skills: как мы собираем дисциплину для ИИ-агента
- Блог: ChatGPT Work теперь заходит в сервисы под вашим логином
- База знаний: XCrawl — AI-скрейпинг и веб-данные для ИИ-агентов
Если OpenCLI планируется использовать для рабочих аккаунтов или командной автоматизации, заранее определите допустимые действия агента и операции, требующие ручного подтверждения.
Если захотите обсудить, как это применить у себя или в команде — пишите в Telegram @pimenov