---
title:

foxcode: claude code управляет настоящим браузером

date: 2026-04-05
draft: false
---

https://github.com/korchasa/foxcode

Мне постоянно приходится давать агенту доступ к браузеру. Для тестирования приложений, дебага, да и просто чтобы что-то узнать или помочь с чем-то. После перехода с playwright-mcp на playwright-cli скорость повысилась, но все равно была слишком низкой. Плюс, мне нужен был способ дать claude code доступ к настоящему браузеру — с моими сессиями, относящимися к конкретному проекту. Пришлось делать свое решение. Заодно решил проверить идею из https://www.anthropic.com/engineering/code-execution-with-mcp с оптимизацией через программирование вызовов.

Как это работает

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

  • claude code общается с mcp-сервером по stdio
  • mcp-сервер держит websocket-соединение с firefox-расширением
  • расширение выполняет javascript в контексте активной вкладки

Аутентификация через случайный 32-hex токен в ~/.foxcode/password (mode 0600). Передаётся через url hash — никогда не отправляется на сервер.

Инструменты и api

Основной инструмент в mcp — evalInBrowser(code, timeout?). Внутри доступен объект api с методами, аналогичными playwright. Например, можно залогиниться и собрать данные за один вызов:

await api.navigate("https://app.example.com/login");
await api.fill("#email", "user@test.com");
await api.fill("#password", "secret");
await api.click("button[type=submit]");
await api.waitFor(".dashboard", { timeout: 5000 });
return await api.snapshot(".stats-panel");

Преимущества

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

Недостатки

  • соединение не мгновенное и есть стадия установки соединения и авторизации
  • для пользовательского профиля пока нужно вручную установить расширение через страницу about:debugging, так что это не совсем plug-and-play
  • пока поддерживается только firefox

Установка

/plugin в claude code — это откроет интерактивный менеджер плагинов. Добавьте маркетплейс korchasa/foxcode на вкладке Marketplaces, затем установите foxcode на вкладке Discover.

Запуск

Есть два режима запуска:

  • /foxcode:foxcode-run-project-profile — изолированный firefox с чистым профилем. Профиль хранится внутри текущего проекта.
  • /foxcode:foxcode-run-user-profile — ваш основной firefox. Требует ручной установки расширения через about:debugging.

Планы на следующий “подход”:

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