Your model, your key
Workers AI out of the box, or OpenAI, Anthropic, Gemini, Groq, DeepSeek, Mistral, OpenRouter and any OpenAI-compatible custom endpoint.
Scan a GitHub repository, generate a test with the model you choose, validate it honestly, and open a pull request.
| Document | What it answers |
|---|---|
| Architecture | How the pieces fit, what happens during a run, where the security boundaries are |
| API | Every route, header, payload and SSE event |
| CLI | Scan, generate, run and open PRs from a terminal |
| MCP server | Expose EdgeSpec tools to Claude Desktop, Cursor and other agents |
| Configuration | Browser settings, providers, pipeline knobs, sandbox runner, deployment secrets |
| Deployment | D1, R2, secrets, Worker deployment, CI |
| UI | Workspace steps, pipeline states, settings, theme and layout rules |
The repository also carries README.md for setup, PLAN.md for requirements and AGENTS.md for conventions.
runPipeline() streams the interactive run over SSE (POST /api/run). GitHub webhooks use the durable TestGenerationWorkflow with deployment-owned credentials.bun install
bun run dev:worker # API + built assets on http://127.0.0.1:8787
bun run dev # Vite dashboard on http://127.0.0.1:5173
bun run dev:all # bothOpen the dashboard, enter owner/name in 01 Repository (or a folder path), pick a provider in Settings, then scan and start a run. For a private repository or to open a pull request, add a GitHub token in Settings. On localhost you can also enter a local folder path such as ./examples/missing-openapi; the dev server scans it read-only, so you can generate and validate tests without a GitHub repository. A folder path is only available through the Vite dev server.
CLI and MCP clients use the same Worker API:
bun --silent run cli -- scan owner/repo --limit 20
bun --silent run cli -- --help
bun run mcp -- --helpChecks:
bun run verify # format, lint, types, tests
bun run build # dist/web + dist/worker
bun run deploy -- --dry-runpackages/core/src/ pure pipeline logic (scanner, AI, GitHub, validation)
packages/client/src/ Worker API client shared by the CLI and MCP server
packages/ui/src/ shared React primitives and theme tokens
packages/cli/src/ terminal client
packages/mcp/src/ stdio MCP server
packages/sandbox/src/ self-hosted sandbox runner
apps/worker/src/ Hono routes, bindings, durable Workflow
apps/web/src/ React dashboard
apps/docs/ this documentation site
evals/ golden-scan harness and optional provider scoringTests live in each workspace's test/ directory. Deployment steps are in Deployment.
| Limit | Value |
|---|---|
| Repository input | owner/name, GitHub URL, folder path, or localhost filesystem path |
| Scan results in the dashboard | 25 gaps, first 8 enriched with exported symbols |
| Pipeline target | first gap only, per run |
| Self-correction retries | 0–5, default 2 |
| Coverage target | 0–100, default 90 (advisory to the model) |
| Provider / sandbox timeout | 120 seconds per call |
| Generated test size | up to 4096 output tokens |
| Pull request list | 20 most recent, all states |