Make everything you wrote testable!
- Setup environment:
uv sync --extra docs --extra dev
cp .env.example .env- Setup Playwright + Playwright MCP globally (one-time, machine-wide):
The agent uses @playwright/mcp (see assets/mcp.json), which needs the
Playwright browser binaries installed locally. Install both packages globally
so playwright and playwright-mcp are on PATH; standalone Playwright and
@playwright/mcp share the same browser cache (~/.cache/ms-playwright/ on
Linux, ~/Library/Caches/ms-playwright/ on macOS), so installing browsers
once covers both.
# Global CLIs.
npm install -g playwright @playwright/mcp
# Browser engines: chromium + firefox + webkit, plus required system libs on Linux.
playwright install --with-deps
# Verify both CLIs are on PATH.
playwright --version && playwright-mcp --version
# Confirms the browser cache is populated as expected.
playwright install --dry-runThe five MCP servers in assets/mcp.json reuse just three binaries:
chromium— desktop chromium andplaywright-android(Pixel 7 emulation)firefox— desktop firefoxwebkit— desktop webkit andplaywright-ios(iPhone 14 Pro emulation)
Mobile emulation is viewport + UA + touch on top of the desktop engine — no extra binary, no extra install.
Backend (FastAPI, serves the agent + API on :8080):
PYTHONPATH=src uv run python src/main.pyFrontend (Vite + React, dev server on :5173, proxies /api/* to :8080):
cd web
npm install
npm run devSee web/README.md for FE details.
uv run mkdocs serve