GSD Browser — Native CLI для автоматизации браузера на Rust | Документация на русском ← все продукты
Rust · CDP · Single binary

// gsd-build/gsd-browser GSD Browser

Быстрый нативный CLI для автоматизации браузера на Chrome DevTools Protocol. 63 команды в одном бинарнике: навигация, взаимодействие, скриншоты, accessibility, моки сети, визуальный diff, генерация тестов. Создан для AI-агентов, CI-пайплайнов и разработчиков.

$curl -fsSL https://raw.../gsd-browser/install.sh | bash
GitHub → gsd-build/gsd-browser
63 команды 15 категорий Rust MIT/Apache

01Зачем это нужно

AI-агенты упираются в стену, когда нужно протестировать UI или провзаимодействовать с веб-приложением. Playwright тяжёл, требует Node.js рантайма и драйверов. Selenium — наследие. Готовые SaaS — стоят денег и ограничены.

gsd-browser — single Rust binary. Без рантайма, без драйверов, без зависимостей. 63 команды покрывают всю поверхность браузер-автоматизации. Запустил, использовал, забыл.

Скорость Rust

Native binary — без overhead JavaScript-рантайма. Daemon-архитектура с persistent CDP-соединением.

📦

Single binary

Один исполняемый файл. Не нужен Node.js, не нужен браузер-драйвер. Скачал — запустил.

🤖

AI-agent native

JSON-output mode (--json), SKILL.md для discovery агентами, semantic actions через intents.

🎯

Deterministic refs

Команда snapshot присваивает версионные refs (@v1:e1) для стабильного взаимодействия с элементами.

🔒

Encrypted vault

Сохранение и replay логин-кредов безопасно через vault-save / vault-login.

🧪

Test generation

Записал действия — generate-test экспортирует как Playwright-тест.

02Установка

One-liner (macOS / Linux)

$ curl -fsSL https://raw.githubusercontent.com/gsd-build/gsd-browser/main/install.sh | bash

Скачивает бинарник + Chromium автоматически. Работает в CI.

npm

$ npm install -g @gsd-build/gsd-browser

Cargo (из исходников)

$ cargo install gsd-browser

Pre-built бинарники

Скачать с GitHub Releases:

ПлатформаБинарник
macOS (Apple Silicon)gsd-browser-darwin-arm64
macOS (Intel)gsd-browser-darwin-x64
Linux (ARM64)gsd-browser-linux-arm64
Linux (x64)gsd-browser-linux-x64

03Быстрый старт

# Перейти на страницу $ gsd-browser navigate https://example.com

# Сделать скриншот $ gsd-browser screenshot --output page.png --format png

# Получить дерево accessibility $ gsd-browser accessibility-tree # Кликнуть на кнопку по CSS-селектору $ gsd-browser click "button.submit" # Извлечь структурированные данные $ gsd-browser extract --schema '{"title": {"_selector": "h1"}}'

0463 команды в 15 категориях

Полный набор для любых задач браузер-автоматизации. Каждая команда поддерживает --json для структурированного вывода.

// Навигация
Переходы между страницами и история
navigatebackforwardreload
// Консоль и сеть
Доступ к console-логам, network-запросам, диалогам
consolenetworkdialog
// JavaScript
Выполнение произвольного JS в контексте страницы
eval
// Взаимодействие
Все способы повзаимодействовать с элементами страницы
clicktypepresshoverscrollselect-optionset-checkeddragset-viewportupload-file
// Скриншоты и визуальное
Снимки, PDF, визуальный diff с baseline
screenshotzoom-regionvisual-diffsave-pdf
// Accessibility
Доступ к a11y-дереву и поиск по ролям
accessibility-treefindpage-source
// Ожидания и тайминги
Надёжная работа с асинхронным состоянием
wait-for
// Timeline и debug
Дебажные дампы и сводки сессий
timelinesession-summarydebug-bundle
// Refs (трекинг элементов)
Версионные ссылки на элементы для стабильности
snapshotclick-refhover-reffill-refget-ref
// Семантические действия
15 предопределённых intents (формы, auth, cookies, навигация)
find-bestact
// Формы
Анализ полей и автозаполнение
analyze-formfill-form
// Извлечение данных
Структурированный extract по schema
extract
// Моки сети
Перехват запросов, блокировка URL, HAR-экспорт
mock-routeblock-urlsclear-routes
// Устройства и состояние
Эмуляция, сохранение и восстановление состояния
emulate-devicesave-staterestore-state
// Auth Vault
Зашифрованный vault для логин-кредов
vault-savevault-loginvault-list
// Тесты и трейсинг
Генерация Playwright-тестов, action-cache, трейсы
generate-testaction-cachecheck-injectionhar-exporttrace-starttrace-stop
// Страницы и фреймы
Управление множеством страниц и iframe'ов
list-pagesswitch-pageclose-pagelist-framesselect-frame
// Daemon
Управление persistent daemon-процессом
daemon startdaemon stopdaemon health

05Ключевые отличия

// SINGLE BINARYБез Node.js рантайма, без скачиваний браузер-драйвера
// 63 КОМАНДЫПокрывает полную поверхность браузер-автоматизации
// REFSsnapshot присваивает версионные refs (@v1:e1) для стабильного взаимодействия
// SEMANTIC ACTIONSfind-best и act разрешают 15 предопределённых intents к элементам автоматически
// NETWORK MOCKINGIntercept запросов, блок URL, экспорт HAR-файлов
// VISUAL REGRESSIONPixel-level diff против baseline-снимков
// AUTH VAULTEncrypted сохранение и replay логин-кредов
// TEST GENERATIONЗапись действий → экспорт как Playwright-тест
// AI AGENT NATIVEJSON-output mode (--json), SKILL.md для discovery агентами

06Конфигурация

5-слойный merge конфигов:

  1. Built-in defaults — разумные значения для всего
  2. User config~/.gsd-browser/config.toml
  3. Project config./gsd-browser.toml в корне проекта
  4. Environment variables — префикс GSD_BROWSER_*
  5. CLI flags — высший приоритет, перебивают всё

Пример gsd-browser.toml

[browser]
path = "/usr/bin/chromium"
headless = true

[daemon]
port = 9222
host = "127.0.0.1"

[screenshot]
quality = 90
full_page = false

[settle]
timeout_ms = 500
poll_ms = 40
quiet_window_ms = 100

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

$ export GSD_BROWSER_BROWSER_PATH=/usr/bin/chromium
$ export GSD_BROWSER_DAEMON_PORT=9333

07Архитектура

┌─────────────┐     IPC/HTTP      ┌──────────┐      CDP       ┌─────────┐
│  CLI (clap) │ ───────────────→ │  Daemon   │ ────────────→ │ Chrome  │
│  browser-   │ ←─────────────── │  (tokio)  │ ←──────────── │  (CDP)  │
│  tools      │   JSON response  │           │   events       │         │
└─────────────┘                  └──────────┘                └─────────┘
       │                                │
       │ --json flag                    │ manages
       ▼                                ▼
  Структурированный             Browser lifecycle
  JSON-вывод для агентов        Изоляция сессий
                                 Page/frame routing

CLI парсит команды и делегирует daemon'у через локальный HTTP-канал. Daemon поддерживает persistent CDP-соединение с Chrome, управляет lifecycle браузера, маршрутизирует команды к нужной странице/фрейму. Daemon стартует автоматически при первом использовании и сохраняется между командами для быстрого выполнения.

08JSON-вывод

Каждая команда поддерживает --json для структурированного вывода:

$ gsd-browser navigate https://example.com --json # {"title":"Example Domain","url":"https://example.com/","status":"ok"} $ gsd-browser find --text "More information" --json # {"elements":[{"role":"link","name":"More information...","selector":"a"}]}

09Для AI-агентов

gsd-browser шипится с SKILL.md и AGENTS.md для автоматического discovery агентами. Агенты могут:

📖

1. Прочитать SKILL.md

Полный command reference и workflow-паттерны для агента.

📊

2. JSON-парсинг

Использовать --json output для структурированного парсинга данных.

🎯

3. Refs для стабильности

snapshotclick-ref / fill-ref для детерминистичного взаимодействия с элементами.

🧠

4. Intent resolution

find-best / act для предопределённых intent (8 встроенных) — без знания селекторов.

⏱️

5. Async-надёжность

wait-for для надёжной работы с асинхронными состояниями страницы.

🔗

6. Интеграция с GSD

Работает в связке с get-shit-done и gsd-2 для тестирования UI-фаз.

10Глоссарий

CDP Chrome DevTools Protocol
Протокол отладки и автоматизации, используемый Chrome DevTools и сторонними инструментами. Даёт доступ к DOM, network, console, profiler и другим возможностям браузера.
Daemon демон
Долгоживущий фоновый процесс, поддерживающий соединение с браузером. Стартует автоматически — не нужно управлять вручную.
Refs snapshot refs
Версионные идентификаторы элементов вида @v1:e1. Команда snapshot присваивает их всем элементам страницы для стабильного последующего взаимодействия.
Semantic actions
Высокоуровневые intents типа «найти кнопку логина», «закрыть cookie banner», «следующая страница». Реализуются через find-best и act.
Intent
Предопределённое действие из набора (формы, auth, cookies, пагинация, навигация, диалоги). 15 встроенных. Агент описывает «что хочу», не «как».
Network mocking
Перехват и модификация HTTP-запросов браузера. mock-route перехватывает, block-urls блокирует, har-export сохраняет в HAR.
Visual diff
Pixel-level сравнение скриншота с baseline для регрессионного тестирования UI.
Auth vault
Зашифрованное хранилище логин-кредов. vault-save сохраняет, vault-login делает replay для авторизации в новой сессии.
HAR HTTP Archive
JSON-формат для записи всех HTTP-запросов сессии. Можно посмотреть в DevTools или другом анализаторе.
SKILL.md
Файл-инструкция для AI-агентов: какие команды есть, как их использовать, какие паттерны workflow. Lethal weapon для discovery в Claude Code.