# tested.dev > Patch-first PR coverage for humans and coding agents. Gate on new executable lines, shareable scorecard, CLI + MCP + GitHub Action. tested.dev is **Codecov for the agentic age**: measure patch coverage, fail the PR when the patch is under threshold, give agents the same uncovered ranges humans see. Primary product: https://app.tested.dev/sign-in Marketing: https://tested.dev Docs: https://tested.dev/docs Live demo (no login): https://app.tested.dev/demo Agent Auth discovery: https://app.tested.dev/.well-known/agent-configuration Agent auth.md (BA-native): https://app.tested.dev/auth.md OpenAPI (JSON): https://app.tested.dev/api/auth/open-api/generate-schema OpenAPI HTML (optional): https://app.tested.dev/api/auth/reference Pointer on marketing host: https://tested.dev/auth.md ## Docs Markdown for agents: append `.md` to any docs path. - [Install](https://tested.dev/docs/install) ([.md](https://tested.dev/docs/install.md)): Node 24+, no-account gate, optional token + share - [GitHub Action](https://tested.dev/docs/github-action) ([.md](https://tested.dev/docs/github-action.md)): CI workflow - [Migrate from Codecov](https://tested.dev/docs/migrate-from-codecov) ([.md](https://tested.dev/docs/migrate-from-codecov.md)): swap. Gate + project view. Then Codecov comes out. - [CLI](https://tested.dev/docs/cli) ([.md](https://tested.dev/docs/cli.md)): setup, doctor, run, diff, check, push. `td` alias - [MCP](https://tested.dev/docs/mcp) ([.md](https://tested.dev/docs/mcp.md)): agent tools - [Config](https://tested.dev/docs/config) ([.md](https://tested.dev/docs/config.md)): .tested.yaml - [Troubleshooting](https://tested.dev/docs/troubleshooting) ([.md](https://tested.dev/docs/troubleshooting.md)): Node 24, tokens, doctor - [Design](https://tested.dev/DESIGN.md): UI rules. Follow this file. If a screen fails it, it is not done. ## Blog - [Leaving Codecov](https://tested.dev/blog/tested-vs-codecov) - [Patch coverage for coding agents](https://tested.dev/blog/patch-coverage-for-coding-agents) - [GitHub Action for a patch coverage gate](https://tested.dev/blog/github-action-patch-coverage-gate) - Index: https://tested.dev/blog ## For agents (start here) 1. Read the full setup pack: https://tested.dev/llms-full.txt 2. Prefer Install: https://tested.dev/docs/install 3. Need Node 24+. 4. Install: `pnpm add -D @tested/cli`. After install, `td` is the same CLI. One-off: `npx @tested/cli`. 5. Local `tested diff` / `tested check` need no account. 6. CI gate: GitHub Action `tested-hq/cli/action@main` with `version: 0.1.10`. `push` defaults to false. No token. Pin `uses:` to a SHA in production. `fetch-depth: 0` is optional. 7. Optional share: install https://github.com/apps/tested-dev-app, mint token at https://app.tested.dev/repos/{owner}/{name}/settings. Settings shows the 64-character hex once. Env: `TESTED_TOKEN` or `TESTED_TOKEN_FILE`. API URL: `TESTED_API_URL`. Never print secrets. Then `push: true`. 8. Loop: `tested setup` → tests with coverage → `tested diff` (report, exit 0) → `tested check` (gate) → optional `tested push --pr ` (needs token). 9. `tested run` writes coverage even if tests fail. 10. MCP (`@tested/mcp` 0.1.3): `pnpm add -D @tested/cli @tested/mcp`. `npx @tested/mcp` needs `@tested/cli`. cwd must be absolute + git. Default base `origin/main`. Do not paste placeholder `TESTED_BIN` paths. Coverage is the only PR gate. Missing JUnit is a quiet miss. Tools: get_uncovered_diff, get_coverage_summary, explain_line, coverage_for, uncovered_branches, who_covers, map_uncovered_to_test, get_flakes, get_failed, get_performance, duration_delta, new_since_main, write_and_verify, check, push, doctor. Skills: triage (CI red → doctor/get_failed/get_flakes/get_uncovered_diff); close-patch (get_uncovered_diff → map_uncovered_to_test → write_and_verify → check). Docs: https://tested.dev/docs/mcp 11. GitHub App: https://github.com/apps/tested-dev-app ## Optional - [Agent Auth (app)](https://app.tested.dev/auth.md) - [Privacy](https://tested.dev/privacy) - [Terms](https://tested.dev/terms)