- BrainTools - https://www.braintools.ru -

автоматизация браузера и развёртывание функций прямо из терминала

Notte — платформа для автоматизации браузера. Недавно мы выпустили CLI, который позволяет управлять браузерными сессиями, запускать AI-агентов, извлекать структурированные данные и развёртывать функции автоматизации, всё это прямо из терминала.

В этой статье разберём, что он умеет и как устроен.

Какую проблему мы решали

Большинство рабочих процессов автоматизации браузера начинаются локально. Вы пишете скрипт на Playwright или Puppeteer, он работает на вашей машине, а затем вы тратите время на его переработку под продакшн.

Notte CLI подключается напрямую к облачным браузерным сессиям. Браузер запущен не у вас, он работает у нас. Это означает, что то, что вы делаете в терминале, в точности совпадает с тем, что будет работать в продакшне.

Как работают сессии

Весь CLI построен вокруг сессий. Сессия, это живой экземпляр браузера (headless или headed), запущенный в облаке.

Запустить её можно так:

notte sessions start --headless

После старта сессия автоматически становится активным контекстом. Все последующие команды будут использовать её без необходимости каждый раз указывать ID сессии. Навигация, скрейпинг, клики, наблюдение, всё это идёт в одну и ту же сессию, пока вы её не остановите.

При запуске сессии поддерживается широкий набор настроек: кастомные viewport’ы, user agent’ы, ротация прокси, решение капч, файловое хранилище, переопределение CDP URL и сохранение профиля браузера.

Видимость

При запуске headless-сессии в выводе появляется viewer URL. Откройте его в браузере, и вы наблюдаете за живой сессией в реальном времени, пока команды выполняются в терминале. Удобно для отладки без переключения в отдельный интерфейс.

По завершении сессии можно экспортировать всё произошедшее в виде Python-кода:

notte sessions workflow-code

В результате вы получаете воспроизводимый скрипт каждого шага, выполненного в сессии.

Взаимодействие со страницей

После запуска сессии можно взаимодействовать со страницами прямо из терминала:

notte page goto "<https://example.com [1]>" notte page observe # возвращает состояние страницы и ID интерактивных элементов notte page click "@B1" # клик по ID элемента notte page fill "@I1" "text" # заполнение поля ввода notte page scrape --instructions "..." # извлечение структурированных данных notte page screenshot

observe особенно полезен — он возвращает текущее состояние страницы вместе с ID элементов, которые можно использовать в последующих командах, без необходимости писать CSS-селекторы или XPath’ы.

AI-агенты

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

notte agents start --task "Go to LinkedIn and extract the last 10 posts from this profile"

Агент работает автономно в рамках активной сессии. Можно проверить его статус, остановить или экспортировать его рабочий процесс в виде кода.

Функции: от терминала до продакшна

Это та часть CLI, которую мы считаем наиболее полезной для команд. Как только автоматизация готова — написана вручную или экспортирована из записанной сессии — её можно развернуть как serverless-функцию:

notte functions create --file workflow.py [2] notte functions run notte functions schedule --cron "0 9 * * *"

Это закрывает разрыв между «тем, что я сделал в терминале» и «тем, что запускается каждое утро в 9:00» — без какой-либо работы с инфраструктурой на вашей стороне.

Работа с AI-ассистентами для написания кода

Если вы используете Claude Code, Cursor, Windsurf или любой другой MCP-совместимый ассистент, CLI можно добавить как skill:

npx skills add nottelabs/notte-cli

Или добавьте следующее в ваш файл AGENTS.md [3] или CLAUDE.md [4] — и ваш coding-агент сможет управлять CLI напрямую:

Use nottefor web automation. Runnotte –help for all commands.

Вывод --help достаточно подробный, чтобы большинство агентов могли работать с ним без дополнительного контекста.

Прочие возможности

  • Credential vaults — хранение паролей от сайтов с привязкой к URL, автоматически извлекаемых во время сессий. API-ключи хранятся в системном хранилище ключей (macOS Keychain, GNOME Keyring, KWallet, Windows Credential Manager) и никогда не передаются через командную строку

  • Personas — одноразовые цифровые личности с реальными адресами электронной почты и номерами телефонов, удобны для тестирования процессов регистрации или мультиаккаунтных сценариев

  • Profiles — сохранённое состояние браузера (куки, localStorage), которое можно подключать к сессиям

  • Работа с файлами — загрузка и выгрузка файлов внутри сессий

  • Форматы вывода — по умолчанию удобочитаемые таблицы, output json для скриптинга и пайпинга

Установка

Через Homebrew:

brew install notte

Через Go:

go install github.com/nottelabs/notte-cli/cmd/notte@latest

Или сборка из исходников:

git clone <https://github.com/nottelabs/notte-cli.git [5]> cd notte-cli make build

Вам понадобится API-ключ с console.notte.cc [6].

Авторизация:

notte auth login

CLI Repo: https://github.com/nottelabs/notte-cli [7]

Notte Repo: https://github.com/nottelabs/notte [8]

Готов ответить на вопросы по реализации или конкретным сценариям использования в комментариях.

Автор: spilldahill

Источник [9]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/26094

URLs in this post:

[1] https://example.com: https://example.com

[2] workflow.py: http://workflow.py

[3] AGENTS.md: http://AGENTS.md

[4] CLAUDE.md: http://CLAUDE.md

[5] https://github.com/nottelabs/notte-cli.git: https://github.com/nottelabs/notte-cli.git

[6] console.notte.cc: http://console.notte.cc

[7] https://github.com/nottelabs/notte-cli: https://github.com/nottelabs/notte-cli

[8] https://github.com/nottelabs/notte: https://github.com/nottelabs/notte

[9] Источник: https://habr.com/ru/articles/1002800/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1002800

www.BrainTools.ru

Rambler's Top100