pimenov.ai

База знаний

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

OpenCLI превращает сайты в команды терминала и даёт ИИ-агенту работать в вашем залогиненном Chrome: установка, скиллы, адаптеры, форматы и лимиты.

OpenCLI — открытый инструмент, который превращает сайты в команды терминала и позволяет ИИ-агенту работать в вашем уже залогиненном Chrome. Вместо хрупких скриптов и ручного парсинга вы получаете предсказуемые команды вида opencli hackernews top, а агент — набор примитивов для навигации, кликов, заполнения форм и извлечения данных.

Что такое OpenCLI

OpenCLI — это три части: CLI на Node.js, небольшой локальный демон и расширение Browser Bridge для Chrome или Chromium. Демон запускается сам, когда нужен, и связывает терминал с вашим реальным браузером: команды выполняются в той же сессии, где вы уже авторизованы, поэтому не нужно хранить логины отдельно и поднимать headless-браузер. Это не средство обхода защит: там, где сайт требует капчу или блокирует автоматизацию, ограничение остаётся.

Проект развивает jackwener, лицензия Apache-2.0, репозиторий создан в марте 2026 года и на момент проверки собрал около 27 500 звёзд. Пакет публикуется в npm как @jackwener/opencli.

📌
Главная идея: сайт — это не страница, а интерфейс. Если у сайта нет API, OpenCLI делает из него CLI, а CLI одинаково понятен и человеку, и агенту.

Три сценария, ради которых его ставят

СценарийЧто происходит
Готовые адаптерыБолее сотни сайтов уже описаны командами: Reddit, HackerNews, Twitter/X, LinkedIn, Amazon, Bilibili, Zhihu, Xiaohongshu и другие
Браузер для агентаСкилл opencli-browser даёт агенту (Claude Code, Cursor и аналоги) примитивы навигации, кликов, ввода и извлечения данных на любой странице
Свои адаптеры и хаб CLIВы пишете собственные команды под нужный сайт или подключаете уже установленные бинарники (gh, docker, vercel, tg, ntn) через единую точку входа

Что нужно заранее

💡
Понадобится: Chrome или Chromium с вашими рабочими логинами, Node.js версии 20 и выше (если ставите через npm) и терминал. Для агентных сценариев — агент с поддержкой скиллов: Claude Code, Cursor или аналог. Отдельный сервер не нужен: всё работает локально.

Установка

Вариант A — приложение OpenCLIApp. Рекомендуемый путь для macOS и Windows: приложение приносит с собой runtime, следит за обновлениями, держит команду opencli в системе и даёт трей с настройкой, диагностикой, обновлениями, поддержанием сессии логина и конвертацией страниц в Markdown. Скачивается с opencli.info/download, после установки в разделе System ставится или чинится сама команда.

Вариант B — глобальный npm-пакет. Подходит для серверов и CI:

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

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

Проверка связки:

opencli doctor

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

opencli profile list
opencli profile rename <contextId> work
opencli profile use work

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

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

opencli list
opencli hackernews top --limit 5
opencli reddit 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
СкиллКогда нужен
opencli-browserРазовые задачи в живой странице: открыть, заполнить форму, кликнуть, забрать данные
opencli-adapter-authorНаписать переиспользуемый адаптер для нового сайта или добавить команду к существующему
opencli-autofixПочинить сломавшийся встроенный адаптер, когда сайт изменил вёрстку или ответы
opencli-browser-sitemapВести агента по карте сайта, а не вслепую перебирать элементы
opencli-sitemap-authorЗафиксировать найденный рабочий маршрут по сайту в знание для будущих запусков
opencli-usageБыстрый справочник по командам и поддерживаемым сайтам

После установки агент сам вызывает нужные команды: открывает URL, читает страницу структурированным DOM-снимком (не скриншотом), кликает, вводит текст, ждёт элементы, перехватывает сетевые ответы. Вы описываете задачу словами.

Набор браузерных примитивов: open, state, click, type, fill, select, keys, wait, get, find, extract, frames, screenshot, scroll, back, eval, network, работа с вкладками и close.

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

Свои команды: пять путей

ЗадачаПуть
Держать свои команды в собственном Git-репозиторииopencli plugin create и затем opencli plugin install file://...
Быстро набросать приватный адаптер на этой машинеopencli browser init <site>/<command>
Локально доработать официальный адаптерopencli adapter eject <site>, вернуть обратно — opencli adapter reset <site>
Поставить чужой набор командopencli plugin install github:user/repo
Обернуть уже установленный бинарникopencli external register <name>

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

opencli browser recon analyze https://example.com/list
opencli browser recon init example/top
opencli browser recon verify example/top

Знание о сайте сохраняется локально в ~/.opencli/sites/<site>/, поэтому следующий адаптер для того же сайта пишется уже с контекстом. Готовую команду проверяет opencli browser verify <site>/<command>; аргументы и фикстуры берутся из ~/.opencli/sites/<site>/verify/, а для первого запуска их можно задать флагами --write-fixture --seed-args.

⚠️
Локальный файл адаптера перекрывает поставляемый в пакете. Успешная локальная проверка не доказывает, что исправлен именно официальный адаптер: после переноса правки в репозиторий локальную копию нужно удалить или сбросить, иначе она продолжит затенять обновления пакета. opencli doctor предупреждает, когда видит такое затенение.

Форматы вывода и коды выхода

Все встроенные команды поддерживают флаг --format (он же -f) со значениями table (по умолчанию), json, yaml, md и csv.

opencli reddit hot -f json
opencli reddit hot -f csv
opencli reddit hot -v

Коды выхода следуют unix-соглашению sysexits.h, так что в CI и скриптах можно ветвиться по причине сбоя.

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

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

ПеременнаяЗачем
OPENCLI_PROFILEКакой профиль Chrome использовать, когда подключено несколько
OPENCLI_WINDOWОкно на переднем плане или в фоне (foreground / background)
OPENCLI_BROWSER_CONNECT_TIMEOUTСколько секунд ждать подключения браузера, по умолчанию 45
OPENCLI_BROWSER_COMMAND_TIMEOUTТаймаут одной браузерной команды, по умолчанию 60 секунд
OPENCLI_CDP_ENDPOINTПодключение к удалённому браузеру или Electron-приложению по CDP
OPENCLI_CDP_TARGETФильтр CDP-целей по подстроке URL, когда открыто несколько окон
OPENCLI_VERBOSEПодробный лог, эквивалент флага -v

Что ещё умеет из коробки

  • Хаб для локальных CLI. Через opencli можно вызывать gh, docker, vercel, wrangler, obsidian, ntn (Notion), tg, discord и свои зарегистрированные бинарники.
  • Десктопные адаптеры. Через CDP поддерживаются Electron-приложения: Cursor, Codex, ChatGPT App, Discord и другие.
  • Загрузка контента. Скачивание картинок, видео, статей и транскриптов с части площадок; для видео нужен установленный yt-dlp.
  • Плагины сообщества. Отдельные пакеты вроде агрегаторов трендов ставятся командой opencli plugin install.

Риски, о которых стоит подумать заранее

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

Второй риск — промпт-инъекции: агент читает содержимое страницы, а страница может содержать инструкции. Не отправляйте агента с широкими правами на незнакомые сайты и просите подтверждение перед действиями, которые что-то меняют или отправляют.

Проверка, что всё работает

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

Ссылки

Данные проверены по репозиторию и документации проекта 3 августа 2026 года.


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

Если цель — не разовые команды, а поток данных для агента, дальше логично посмотреть, как собранное отдаётся в Codex: Как собрать данные с сотен сайтов конкурентов и подать их в Codex

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

OpenCLI хорошо ложится в контур, где у агента уже есть скиллы, доступы и источники данных.

Статья: Мои Codex skills: как мы собираем дисциплину для ИИ-агента

Блог: ChatGPT Work теперь заходит в сервисы под вашим логином

База знаний: XCrawl — AI-скрейпинг и веб-данные для ИИ-агентов

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