---
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.

Планове за следващия “подход”:

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