> · 6 мин

Plasmate — браузерный движок на Rust, который режет токены AI-агентов на 94%

Plasmate — браузерный движок на Rust, который режет токены AI-агентов на 94%

Plasmate — браузерный движок на Rust, который режет токены AI-агентов на 94%

Когда Claude Code или Cursor лезут в веб через Playwright или Puppeteer, происходит абсурдная штука. Chrome парсит страницу, рендерит DOM на 589 KB, и весь этот суп из <div class="container__inner">, рекламных скриптов, GDPR-баннеров и трекинговых пикселей улетает в LLM. Модель тратит 22 000 токенов, чтобы понять, что на главной Hacker News лежит 30 ссылок.

David Hurley устал смотреть, как его агенты задыхаются от HTML-мусора, и сделал Plasmate. Это браузер, который не отдаёт DOM. Он компилирует страницу в Semantic Object Model.

TL;DR: Plasmate — headless-браузер на Rust под Apache-2.0, который превращает HTML в структурированный JSON для LLM. На 1000 страниц в день уходит $5.69 токенов вместо $99 у Chrome. Подключается к Claude Code, Cursor, Windsurf через MCP в одну строку. v0.5, 21 звезда, проект одного человека.

Что такое Semantic Object Model

DOM показывает каждый тег. SOM показывает, что на странице важно агенту: что можно кликнуть, что можно ввести, что там написано. Всё остальное стрипается ещё на этапе компиляции.

Вот примерно как выглядит SOM-вывод плазматовского fetch_page:

{
  "version": "0.1",
  "url": "https://example.com",
  "title": "Page Title",
  "meta": {
    "html_bytes": 589546,
    "som_bytes": 56625,
    "compression_ratio": 10.4
  },
  "regions": [
    {
      "id": "r_navigation",
      "role": "Navigation",
      "elements": [
        { "id": "[3]", "role": "link", "name": "About", "href": "/about" }
      ]
    },
    {
      "id": "r_main",
      "role": "Main",
      "elements": [
        { "id": "[12]", "role": "heading", "text": "Welcome" },
        { "id": "[15]", "role": "input", "type": "email", "name": "Email" }
      ]
    }
  ]
}

Кликабельные элементы пронумерованы. Агент не пишет CSS-селектор, он говорит click [15]. Никаких [backend_node_id]<input> соплей — агент видит структуру страницы вместо вёрстки.

Структурированные данные (JSON-LD, OpenGraph, Twitter Cards) Plasmate тоже вытаскивает в отдельный блок. То, что ты раньше парсил руками через regexp.

Цифры, которые трудно игнорировать

По бенчмарку Plasmate Labs на 98 реальных сайтах:

  • 4-5 мс на страницу против 252 мс у Chrome headless и 23 мс у Lightpanda
  • 28 MB памяти на 100 параллельных страниц против 20 GB у Chrome
  • 94% экономии на токенах в среднем, медиана сжатия 9×, на тяжёлых SPA до 1544×
  • $5.69 vs $99 за обработку 1000 страниц в день при ставках Claude Sonnet

Цифры от авторов, но методология опубликована и совпадает с протоколом Lightpanda — то есть проверяется одной командой ./run-benchmark.sh. Покрытие парсера тоже не приукрашено: 94 из 98 топовых сайтов работают, остальные четыре сломались на JS-тяжёлых SPA с кастомным рендерингом.

Бинарник плазматы — 45.8 MB. Chrome в комплекте с Puppeteer-кешем — 300-500 MB.

Установка и MCP за 30 секунд

Plasmate ставится из четырёх каналов одновременно:

# pip, cargo, npm или brew — на выбор
pip install plasmate
cargo install plasmate
npm install -g plasmate
brew tap plasmate-labs/plasmate && brew install plasmate

# Проверка
plasmate fetch https://example.com

Подключение к Claude Code в одну строку:

claude mcp add plasmate -- npx plasmate-mcp

После этого Claude получает 16 MCP-инструментов: fetch_page, extract_text, extract_links, open_page, navigate_to, click, type_text, select_option, scroll, toggle, clear, evaluate, close_page, get_cookies, set_cookies, clear_cookies. Хватает для агента, который сам логинится, листает выдачу и вытаскивает данные.

Для Cursor и Windsurf конфиг тот же:

{
  "mcpServers": {
    "plasmate": {
      "command": "npx",
      "args": ["-y", "plasmate-mcp"]
    }
  }
}

Совет из доков: на тяжёлых страницах добавляй selector="main", чтобы плазмата выкинула шапку и подвал ещё до того, как LLM их увидит.

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

Технология сырая, и Hurley это не скрывает.

Скриншотов нет. Совсем. Если твой агент решает CAPTCHA по картинке, парсит визуальный layout или работает с canvas-элементами, Plasmate не подходит. Ставь Playwright MCP. SOM описывает только семантику, не пиксели.

Никаких кликов по координатам. Только по SOM-индексу элемента. Это удобно для агента, но если у тебя есть legacy-код с page.click({x: 540, y: 320}), переписывать всё.

Загрузка файлов не поддерживается. Action upload_file отсутствует. Для сценариев типа «загрузить PDF в форму» снова придётся брать Playwright.

Одна вкладка на сессию. Каждый PlasmateBrowser держит ровно один контекст. Multi-tab воркфлоу нужно собирать через несколько инстансов вручную.

Bus factor = 1. Plasmate Labs пока что состоит из одного человека (David Hurley, dbhurley.com/plasmate). 25 тысяч строк Rust, 230 тестов, 98.9% покрытия выглядят солидно. Но если автор завтра выгорит, проект встанет. На главном репо 21 звезда, на plasmate-mcp ноль на момент проверки. Ставить Plasmate в продакшн на критичный пайплайн прямо сейчас — авантюра.

Pre-1.0. Текущая версия v0.5.1 от 5 апреля. SOM Spec помечен как v1.0, AWP-протокол ещё в драфте. До GA можно ловить breaking changes между минорными релизами.

Альтернативы

  • Lightpanda — самый близкий конкурент. Rust, headless, выдаёт сырой HTML. На 5× медленнее Plasmate (23 мс против 4-5 мс), нулевая экономия токенов. Главный косяк — лицензия AGPL-3.0: используешь в продукте, и весь твой стек обязан стать open source. Уже писал про него.
  • Playwright MCP — Microsoft, MIT, использует настоящий Chrome. Зрелый, поддерживает скриншоты и file uploads, всё то, чего Plasmate не умеет. Платишь за это 252 мс на страницу и 20 GB памяти на 100 вкладок.
  • Browser Use — Python-фреймворк поверх Playwright. Удобный API для агентов, но скорость и токены ровно как у Chrome. Кстати, у Plasmate есть готовая интеграция с Browser Use, которая просто заменяет Playwright-бэкенд на SOM.
  • Browserbase — managed cloud-сервис от $49 в месяц. Сильный анти-бот стек, но это другой жанр: облако вместо локального бинарника.

Вердикт

Если у тебя AI-агент жуёт веб-страницы пачками и счёт за токены пугает — ставь Plasmate в тестовую среду уже сегодня. 94% экономии переводит проект из категории «не масштабируется» в «можем себе позволить».

Если агент рассчитывает на скриншоты, кликает по координатам или грузит файлы, Plasmate не для тебя. Оставайся на Playwright MCP.

Для продакшн-критичного workflow дождись v1.0 или хотя бы появления второго мейнтейнера. Технически проект сильный, но bus factor единицы остаётся главным риском, и 230 тестов это не лечат.

Как попробовать

  1. Поставь движок: pip install plasmate (или cargo/npm/brew)
  2. Подключи MCP к Claude Code: claude mcp add plasmate -- npx plasmate-mcp
  3. В чате попроси: «Используй plasmate_fetch и собери три топовые истории с news.ycombinator.com со ссылками»
  4. Сравни число потраченных токенов с тем же запросом через Playwright MCP — разница покажется в /cost
  5. Для Python-агента: гайд по research-агенту в 50 строк — реальный кейс, не марковский псевдокод

MCP Registry с автоустановкой, бенчмарки с воспроизводимыми скриптами, W3C Community Group по агентским браузерам, куда Hurley тащит SOM как открытый стандарт.

$ ls ./related/

Похожие статьи

gpt-55-spud-codex-leak.md
Spud утёк за сутки до релиза: GPT-5.5 засветили в пикере Codex, а Simon Willison собрал «backdoor-API»
> · 7 мин

Spud утёк за сутки до релиза: GPT-5.5 засветили в пикере Codex, а Simon Willison собрал «backdoor-API»

22 апреля в Codex у Pro-юзеров внезапно появился пикер с gpt-5.5, oai-2.1, arcanine и glacier-alpha. Через сутки OpenAI выкатила GPT-5.5 официально. Simon Willison параллельно собрал инструмент, который крадёт авторизацию Codex CLI и стучится в API, которого пока нет. Разбираем, что утекло, что умеет Spud, и почему API «задерживается ради безопасности».

llm openai codex ai-agents
openrouter-stealth-models-guide.md
Hunter, Healer, Elephant: 3 секретные AI-модели на OpenRouter, бесплатные прямо сейчас
> · 8 мин

Hunter, Healer, Elephant: 3 секретные AI-модели на OpenRouter, бесплатные прямо сейчас

Hunter Alpha оказался Xiaomi MiMo-V2-Pro, Healer Alpha до сих пор анонимный, Elephant Alpha появился 13 апреля. Все три frontier-модели бесплатные на OpenRouter. Как подключить через OpenAI SDK за 2 минуты, где каждая сливает, и почему логи промптов это не мелочь.

ai tips openrouter stealth-models
claude-mythos-anthropic-stealth-model.md
Claude Mythos — модель, которую Anthropic прячет от тебя. И правильно делает
> · 9 мин

Claude Mythos — модель, которую Anthropic прячет от тебя. И правильно делает

Две недели назад Anthropic случайно спалил существование своей самой мощной модели. Claude Mythos Preview нашла тысячи 0-day в OpenBSD, FFmpeg и ядре Linux. Публично не будет. Зачем это знать разработчику.

ai llm claude anthropic
subscribe.sh

$ cat /dev/blog/updates

> Свежие заметки о программировании,

> DevOps и AI — прямо в мессенджер

./subscribe