Встроенный браузер в Claude Code: нужен ли теперь стенд из Playwright и двух QA-агентов
Нет. Встроенный браузер Claude Code закрывает внутренний цикл разработки: агент сам поднимает dev-сервер и глазами проверяет свою правку. Но он работает в чистом профиле без логинов, не умеет headless и живёт только внутри десктопного приложения, поэтому регресс по расписанию и сценарии с реальными аккаунтами остаются за Playwright.
Встроенный браузер Claude Code поднимает dev-сервер и сам проверяет интерфейс. Разбираю, чем он отличается от Claude in Chrome и почему не заменил мой стенд из Playwright и двух QA-агентов.

В десктопном Claude Code завёлся встроенный браузер. Жмёшь Ctrl+Shift+B (на маке Cmd+Shift+B) - и справа от чата открывается нормальная вкладочная браузерилка, в которой агент сам поднимает твой dev-сервер, тыкает по кнопкам, читает DOM и чинит то, что нашёл. Расширение для Chrome для этого больше не нужно.
А у меня, напомню, стоит стенд из Playwright и двух QA-агентов с настоящими телеграм-аккаунтами, который гоняет мой mini-app. Я его строил, ругался, допиливал, потом написал про него статью. И первая мысль после новости была честная: ну всё, зря старался, теперь оно из коробки.
Сел разбираться. Спойлер: не зря. Но кое-что у себя я всё-таки выключил.
Что такое встроенный браузер в Claude Code
Встроенный браузер Claude Code - это вкладочный браузер внутри десктопного приложения, который агент использует как инструмент. Он открывает локальный dev-сервер и любые внешние сайты, делает скриншоты, читает DOM, кликает и заполняет формы. Живёт в чистом профиле - без твоих логинов и истории. Открывается по Cmd/Ctrl+Shift+B или из меню Views.
Ключевое отличие от того, что было раньше: это не "агент дёргает Chrome через расширение", а отдельная панель приложения со своим песочным профилем. Настройками решаешь, сохранять ли данные сессий между запусками или каждый раз начинать с чистого листа (Settings → Claude Code, там же браузер можно вырубить целиком).
Чем встроенный браузер отличается от расширения Claude in Chrome
Разница ровно одна, и она про личность. Встроенный браузер работает в чистом профиле, где нет ни одного твоего логина. Расширение Claude in Chrome, наоборот, шарит состояние входа твоего настоящего браузера, поэтому агент может действовать от твоего имени в Gmail, Notion, Google Docs и вообще везде, куда ты залогинен.
Отсюда простое правило из документации: строишь и проверяешь своё приложение или ходишь по сайтам, которым твоя личность не нужна - встроенный браузер. Нужно, чтобы агент был именно тобой в твоих залогиненных сессиях - расширение.
Модель безопасности при этом одна и та же. При первом действии на новом сайте вылезает карточка разрешения: Allow once, Always allow или Deny. "Always allow" сохраняется на устройстве, и каждому сайту нужно своё одобрение, включая поддомены. Локальным dev-серверам и файлам проекта разрешение не нужно - иначе автопроверка задалбывала бы промптами каждые полминуты. И даже на одобренном сайте агент сам не купит товар, не создаст аккаунт и не будет обходить капчу.
Из приятного: в корпоративной обстановке админ может задушить всё это managed-настройками - browserExternalPageTools в "disabled" оставляет людям возможность ходить по внешним сайтам, но отбирает инструменты у агента, а disableBrowserExternalNavigation: true рубит внешнюю навигацию вообще, не трогая localhost. То есть Anthropic заранее ответили на вопрос безопасника "а оно точно не полезет в наш внутренний Confluence".
Как агент сам поднимает dev-сервер и проверяет интерфейс
Вот это самая вкусная часть, и она реально закрывает цикл. Claude сам определяет твою конфигурацию dev-сервера и складывает её в .claude/launch.json в корне папки, которую ты выбрал при старте сессии. В большинстве случаев сервер стартует автоматически после правки файлов проекта, но можно и просто попросить.
Конфиг человеческий, JSON с комментариями:
{
"version": "0.0.1",
"configurations": [
{
"name": "my-app",
"runtimeExecutable": "npm",
"runtimeArgs": ["run", "dev"],
"port": 3000
}
]
}Хочешь yarn dev вместо npm run dev или другой порт - правишь руками. Хочешь фронт и API одновременно - пишешь две конфигурации.
Дальше включается штука под названием auto-verify, и она по умолчанию ВКЛЮЧЕНА. Агент после каждой правки файлов сам проверяет результат: делает скриншоты, смотрит ошибки, убеждается, что изменение работает, и только потом заканчивает ответ. Не нравится - добавляешь "autoVerify": false в тот же launch.json или щёлкаешь тумблер в дропдауне сервера. Инструменты превью при этом никуда не деваются, просто проверка перестаёт быть автоматической.
Работает это не только для фронта. Бэкенд тоже: агент дёргает эндпоинты, смотрит логи сервера и итерируется по найденным проблемам. Плюс в панель можно открывать статические HTML, PDF, картинки и видео из проекта - кликнул по пути в чате, оно открылось.
Ещё есть Persist sessions в дропдауне сервера: куки и localStorage переживают рестарты, чтобы не перелогиниваться в своё же приложение по двадцать раз за вечер. Мелочь, а именно на таких мелочах обычно и ломается энтузиазм.
Заменяет ли встроенный браузер стенд на Playwright
Нет, не заменяет - если стенду нужны реальные залогиненные аккаунты, CI или браузеры кроме Chrome. Встроенный браузер живёт в чистом профиле внутри десктопного приложения и не умеет в headless, поэтому в пайплайн его не воткнёшь. Он закрывает цикл "написал компонент - сам проверил глазами", а не "ночью прогнал регресс".
Разберу по своим болячкам.
Первое - аккаунты. Мой стенд тестирует Telegram mini-app: два агента заходят с настоящих TG-аккаунтов, проходят весь флоу, общаются с DnD-ботом и снимают скрины. Чистый профиль без логинов тут бесполезен в принципе. Мне нужны две разные личности, которые друг с другом взаимодействуют, а не один агент в песочнице.
Второе - headless и CI. Claude in Chrome (и встроенный браузер по той же модели) headless не умеет, поэтому в CI/CD он не игрок. Playwright гоняется в headless нативно и живёт в GitHub Actions, GitLab CI, Jenkins и вообще везде. У меня прогоны идут по расписанию, без человека у экрана. Встроенному браузеру для работы нужно открытое десктопное приложение и живой я рядом.
Третье - зоопарк браузеров. Playwright MCP от Microsoft тянет Chromium, Firefox и WebKit и раздаёт агенту 33+ инструмента, бесплатно и с открытым кодом. Claude in Chrome - 16 инструментов, только Chrome и Edge, и нужен платный план Anthropic. Ни Firefox, ни Safari. Для меня это не смертельно, но если бы я ловил регрессы в вебките, разговора бы не было.
Из приятных новостей мимо кассы: в начале 2026 Microsoft выкатили Playwright CLI как компаньон к MCP - он пишет снапшоты на диск компактным YAML вместо того, чтобы лить полное дерево доступности в контекст. По замерам получается примерно вчетверо меньше токенов за сессию. Учитывая, как я сжигал недельный лимит скиллами, мимо такого пройти не смог.
Кому хватит встроенного браузера без Playwright
Хватит, если ты пилишь обычное веб-приложение, тестируешь его руками сам и не гоняешь регресс по расписанию. Встроенный браузер закрывает вёрстку, ошибки консоли, проверку форм и пользовательских сценариев прямо в момент правки. Отдельный стенд начинает окупаться там, где нужны чужие логины, ночные прогоны или браузеры вне связки Chrome и Edge.
По-хорошему вопрос надо задавать не "браузер или Playwright", а "кто нажимает кнопку". Если рядом всегда сидит человек и смотрит в экран - хватает встроенного. Если проверка должна случиться в три часа ночи, когда человека нет, нужен headless, а его тут нет и не планируется. Это не недоделка, это осознанная граница продукта: панель браузера - часть десктопного приложения, она физически не бывает без открытого приложения.
Мой mini-app, если бы он был просто сайтом, я бы уже перевёл целиком на встроенный. Но он живёт внутри телеграма, а телеграм - это логин, чужая обёртка и второй участник диалога. Три вещи, которых у чистого профиля нет по определению.
Что я в итоге поменял у себя
Стенд остался. Он делает то, чего встроенный браузер не делает: 7 циклов тестирований за два дня без меня, реальные аккаунты, покрытие с типичных 20-40% до 80% с плюсом.
А вот что поменялось - у меня из процесса выпал целый слой ручной возни. Раньше цикл выглядел так: попросил агента поправить вёрстку, дождался, сам открыл localhost, сам потыкал, сам вернулся и сказал "нет, кнопка уехала". Теперь агент проверяет себя сам сразу после правки, и до меня доезжает уже то, что он хотя бы один раз увидел своими глазами. Мелкие косяки вёрстки и очевидные JS-ошибки перестали доходить до стенда - их ловят на два шага раньше.
То есть это не "браузер вместо Playwright". Это два разных этажа. Встроенный браузер - внутренний цикл разработчика, секунды и минуты, глазами. Стенд - внешний цикл, ночь и регресс, без человека. Раньше я нижним этажом работал руками, потому что другого варианта не было. Теперь не работаю.
Ну и честно про цену вопроса: включение браузерных инструментов по умолчанию жрёт контекст, потому что тулзы всегда загружены. В доке про CLI это сказано прямым текстом - заметил рост потребления, выключай дефолт и зови по необходимости. Я пока не выключал, но глаз держу.
Такие дела. Стенд живёт, руки освободились, а новость, из-за которой я чуть не решил, что два месяца работы ушли в мусорку, оказалась просто хорошим апгрейдом соседнего этажа.
Частые вопросы
Нужен ли платный план Anthropic для браузера в Claude Code
Для интеграции с Chrome нужен прямой план Anthropic - Pro, Max, Team или Enterprise. Через сторонних провайдеров (Amazon Bedrock, Google Cloud, Microsoft Foundry) она недоступна: понадобится отдельный аккаунт claude.ai.
Как отключить автопроверку изменений в Claude Code
Auto-verify включён по умолчанию. Отключается по проекту строкой "autoVerify": false в файле .claude/launch.json либо тумблером в дропдауне сервера. Инструменты превью при этом остаются, просто проверка перестаёт запускаться сама после каждой правки.
Может ли агент в браузере Claude Code что-то купить или создать аккаунт
Нет. Даже на сайте, которому вы выдали Always allow, агент не покупает товары, не создаёт аккаунты и не обходит капчу без вашего участия. Write-действия на внешних страницах дополнительно проверяются классификаторами безопасности в любом режиме разрешений.