Кайтсёрфинг теперь открыт для всех
- Cloudflare открыла исходный код Kitesurf на GitHub по лицензии Apache 2.0; его можно запускать локально и разворачивать на Workers.
- Браузер работает на Cloudflare Workers без браузерного контейнера, поддерживает Chrome DevTools Protocol и подключение клиентов вроде Puppeteer.
- Для собственного развертывания нужен платный план Workers; движок использует Dynamic Workers для изоляции страниц.
Почему это важно: Kitesurf создан для ИИ-агентов и, по словам Cloudflare, использует меньше процессорных ресурсов и памяти, чем полноценный браузер вроде Chromium.
В августе мы представили Kitesurf — наш браузер без сохранения состояния для ИИ-агентов, который полностью работает на базе Workers, —, а в сентябре рассказали о новых возможностях: поддержке WebMCP, новых API и улучшенной совместимости. Каждый раз мы упоминали о намерении открыть исходный код, чтобы разработчики при желании могли запускать собственный браузерный движок в своих аккаунтах Cloudflare.
Теперь это обещание выполнено. Исходный код Kitesurf открыт на GitHub по лицензии Apache 2.0. Вы можете изучить код, запускать его локально, изменять и развернуть собственный экземпляр на Cloudflare Workers.
Браузер, созданный для агентов
Kitesurf полностью работает на Cloudflare Workers. Он разбирает HTML, применяет CSS, выполняет JavaScript страниц и создает снимки экрана без браузерного контейнера. Поддерживается протокол Chrome DevTools (CDP), поэтому к нему можно подключать такие клиенты, как Puppeteer.
Наша главная цель — предоставить ИИ-агентам легковесный и эффективный браузер, который загружает сайты, выполняет JavaScript и взаимодействует со страницами, используя меньше процессорных ресурсов и памяти, чем полноценный браузер вроде Chromium, и масштабируется по запросу в глобальной сети Workers Cloudflare.
Подробнее о том, зачем и как мы создали Kitesurf, читайте в нашем первоначальном анонсе, а о том, как им пользоваться, — в документации для разработчиков Browser Run.
Что входит в репозиторий?
Kitesurf использует платформу и API для разработчиков Cloudflare, а также экосистему пакетов Rust с открытым исходным кодом, скомпилированных в WebAssembly:
- Blitz обеспечивает разбор HTML, работу с DOM, компоновку и отрисовку.
- Stylo обеспечивает разбор CSS, каскадирование и вычисление стилей.
- Boa выполняет JavaScript в WebAssembly (только в крайнем случае, когда выполнить JavaScript в Dynamic Workers невозможно).
- Библиотеки Linebender обеспечивают компоновку текста и двухмерную графику, а Krilla создает PDF-файлы.
Благодаря этим проектам Kitesurf стал возможен. На них распространяются соответствующие лицензии; в репозитории есть файл NOTICE с уведомлениями о сторонних компонентах.
У Kitesurf три основных компонента: Engine управляет сессиями браузера и подключениями клиентов, PageScript запускает страницу и ее JavaScript, а PageRenderer отрисовывает результат.

Все пакеты, движок, его ядро на Rust, DOM-эмуляторы, рендерер и интерфейс командной строки Kitesurf размещены отдельно в папках каталога packages репозитория. Там можно изучить, как устроено взаимодействие всех компонентов.
Запустите собственный Kitesurf
Чтобы запустить Kitesurf локально, ознакомьтесь с требованиями к сборке в репозитории, затем клонируйте репозиторий, установите зависимости и запустите движок:
git clone https://github.com/cloudflare/kitesurf.git
cd kitesurf
pnpm install --frozen-lockfile
pnpm run devПервая сборка компилирует ядро Rust и его зависимости, поэтому это может занять некоторое время. При последующих сборках используется кеш. Затем wrangler запускает локальный сервер разработки по адресу http://127.0.0.1:8787. Откройте этот адрес, чтобы проверить страницу в Chrome DevTools, или взаимодействуйте с ней программно.
Можно использовать Puppeteer в скрипте NodeJS:
import puppeteer from "puppeteer-core";
const browser = await puppeteer.connect({
browserWSEndpoint: "ws://127.0.0.1:8787/devtools/browser",
});
try {
const page = await browser.newPage();
await page.goto("https://example.com/");
await page.screenshot({ path: "page.png" });
} finally {
await browser.disconnect();
}Также можно подключить ИИ-агента к локальному порту CDP (агенты обожают CDP) и посмотреть, как он полностью управляет Kitesurf.
Разверните Kitesurf в своем аккаунте Cloudflare
Когда вы закончите вносить изменения и тестировать локальную версию, можно развернуть движок в собственном аккаунте и пользоваться Kitesurf вместо управляемых API Browser Run, которые мы предоставляем. Обратите внимание: для этого требуется платный план Workers, поскольку Kitesurf использует Dynamic Workers для создания изолированных Workers для страниц.
В корневой папке репозитория выполните:
pnpm run deployПомогите нам сделать Kitesurf лучше
Как и все наши проекты с открытым исходным кодом, Kitesurf размещен на Github, и мы приветствуем создание форков и вклад в проект. Однако учтите, что Kitesurf активно разрабатывается, и сейчас мы сосредоточены на повышении совместимости движка (см. развитие Web Platform Test), надежности и эффективности.
Если хотите внести свой вклад, начните с руководства для участников проекта. Создайте issue с минимальным примером воспроизведения ошибки или предлагаемым подходом и получите одобрение сопровождающего проекта, прежде чем открывать pull request. Узконаправленные исправления с тестами, четкими доказательствами и ясно определенными границами задачи гораздо проще проверять, чем крупные переписывания или несвязанные с задачей изменения. При этом вклад не обязательно должен быть связан с кодом: небольшая страница, воспроизводящая ошибку отрисовки, неработающий сценарий автоматизации или четко сформулированное исправление в документации тоже помогут нам двигаться вперед.
Следите за обновлениями
Kitesurf быстро развивается. Следите за обновлениями в блоге и журнале изменений, а также заглядывайте на официальную страницу проекта — там публикуются последние данные о совместимости со стандартами на странице Web Platform Tests и результаты тестов производительности.
И приходите пообщаться с командой в Discord. Мы создаем браузер для агентов и будем рады вашей помощи в его развитии.
