Platform

Everything ships in the box.

No tier. No upgrade prompt. Every capability below is on every plan - free to self-host, or run it on Lastest Cloud and skip ops entirely.

Real Chromium, in a container

Every run and recording happens in an Embedded Browser pod with live CDP streaming. No local Playwright install, nothing simulated.

Zero flake

Deterministic rendering and network stubbing mean a diff is always a real change, never timing noise.

Self-healing selectors

When markup shifts, Lastest re-anchors the step instead of failing, so recorded flows keep working.

Every breakpoint

Capture full-page or per-component snapshots at any viewport width you ship to.

One-click baselines

Approve an intended change and it becomes the new source of truth, instantly, for the whole team.

Runs on your infra

Self-hosted by design. Your screenshots and test code never leave your cluster - customer code only ever executes inside EB pods, never on the host.

Everything ships in the box. No tier. No upgrade prompt.

Four capability families, every entry on every plan.

Intelligence

AI test generation

Claude writes resilient Playwright code with a 7-layer selector fallback (data-testid → id → role → aria-label → text → CSS → OCR). Survives refactors that break hand-written tests.

Modes

Three ways to work

AI-Free recording for air-gapped teams. AI-Assisted with human review on every change. Full Autonomous via the Play Agent. Pick a mode per test - or per team.

Economics

Zero-token replays

AI runs only when you create or fix a test. Every replay is pure Playwright execution. Test a thousand times a day for $0 in tokens. Self-hosted screenshots are unlimited regardless of volume.

Automation

Play Agent - 11-step pipeline

Specialized sub-agents (Orchestrator, Planner, Scout, Diver, Generator, Healer) plan, generate, run, and fix tests autonomously. Pause, approve, or skip any step. Resumes where it left off.

Precision

3 diff engines

pixelmatch (pixel-perfect), SSIM (structural similarity), and Butteraugli (human-perception-aligned). Choose the trade-off per test - or run all three for a benchmark verdict.

Stabilization

12 flaky-test guards

Text-region-aware OCR diffing, timestamp freezing, network idle wait, DOM stability detection, font loading wait, page-shift detection, burst capture, auto-mask of dynamic content. Cross-OS consistency baked in.

Ownership

Self-hosted & source-available

FSL-1.1-ALv2 license (converts to Apache 2.0). Your infra, your network boundary. Screenshots never leave your servers. Auditable source you can review before it touches a regulated system. Or run it on Lastest Cloud and skip ops entirely.

Integration

CI/CD native + Smart Run

Reusable GitHub Action, GitLab MR comments (self-hosted GitLab supported), webhook triggers, scheduled cron runs. Smart Run analyzes git diffs and runs only the tests your change touched.

Operations

Embedded Browser pool

Containerized Chromium with live JPEG streaming back to the dashboard - the only execution path. System-managed pods provision on demand into k3d locally or your Kubernetes cluster in production (one browser per test, warm pool, restricted egress). Or bring your own lastest-eb container on any machine or network.

Triage

Triage agent

One build-scoped classifier collects every failure and review-required diff, clusters them by root cause, and writes a run narrative with a suggested verdict per group - bug, improvement, false positive, flaky retry, or new baseline. Reviewed on the Run Results screen, with a failure-video queue and one-click GitHub issues per group.

Accessibility

WCAG 2.2 AA scoring

Axe-core checks every screenshot. 0–100 score with severity-weighted deductions (critical / serious / moderate / minor) and trend sparklines per build. A11y becomes part of your regression pipeline.

Providers

Bring your own AI

Claude CLI, OpenRouter, Anthropic API, OpenAI, or Ollama (local models). Use a separate provider for diff analysis than for test generation. No lock-in, no surprise pricing.

Spec-driven

OpenAPI & user stories → tests

Drop in an OpenAPI spec, a markdown PRD, or a list of user stories. AI extracts the cases and generates tests automatically. Route Discovery scans your source for paths the spec missed.

Extensibility

MCP server - 29 AI tools

Resource-oriented Model Context Protocol server (npx @lastest/mcp-server, or the built-in /api/mcp Streamable HTTP endpoint) lets Claude Code, Cursor, Codex and agent platforms run tests, validate a diff, decide diffs, heal tests, drive the Explorer and QA agents, and publish shares. OAuth 2.1 with dynamic client registration and read / write / full access levels.

Versioning

Full test history & composition

Every edit, AI fix, or restore is versioned with a reason. Compose builds by cherry-picking specific test versions. Branch baselines fork on PR open and merge back on PR merge.

Engagement

Beat the Bot

Optional gamified leaderboard where humans compete with AI bots to author and triage tests. Points for catching regressions and clearing review todos. Seasonal play, achievements, Bug Blitz events.

Beyond visual

API & load testing

A backend API test type runs a single HTTP request - no browser - graded on status, headers, jsonPath, jsonSchema, body, and latency. Add a load config and the same test fans out under bounded concurrency, gating on p95/p99, error rate, and throughput.

Advisory

Fix-the-app advisor

When a diff is confirmed a real regression, Lastest produces a structured application-code fix recommendation - where to look and what to change. Advisory only: it points, it never edits your code.

Triage

Verify - one execution surface

Run, review, and history live on a single screen: a smart / all / comparison run split-button, live EB stream while a build runs, a build-history drawer, and a Trello-style board - Unsorted → Verified / Broken / Missed - backed by a build-level Change Map. “Accept all safe” clears AI-judged-safe cases in one click.

Sharing

Public share links

Publish any run, build, or diff as a watermarked, login-free /r/<slug> report - letter-graded for Accessibility (WCAG 2.2), Design system, and speed (Core Web Vitals), with AI demo notes, step-synced session video, artifact zip, and X / YouTube / TikTok share cards. Revokable, stable URL on re-publish.

Agents

Agents console

One roster at /agents for every agent working a repo - QA agent, Play agent, Explorer, Ranger, Triage, QuickStart - with what each is doing, what it is waiting on a human for, and how many embedded browsers it holds. Drill into any row.

Exploration

Explorer agent & App Map swarm

An exploratory tester drives a live browser in an observe → act loop with rotating planning styles, records defects and UX findings, learns across runs, and keeps passing flows as deterministic tests. App Map “Explore” fans a multi-EB crawler across your app into one connected map with Screens and Flows views.

Verification

9-layer check modes

Visual, text, DOM, network, console, performance, URL, API, and storage - plus a11y and design-system layers from their plugins. Set each to enforce, log, or disable per repo. Per-layer approve / reject / snooze on every step comparison.

Regulated

Regulated profile for pharma & life sciences

A segment fork in onboarding seeds Veeva Vault and Salesforce release-regression suites and turns on the regulated profile: nothing probabilistic produces a verdict, nothing leaves the tenant without an authenticated identity, text and DOM layers default to enforce for 21 CFR Part 11 manifestations, and gamification disappears.

Secrets

Per-repo credentials

Store the logins your setup scripts and tests need once, encrypted at rest. They are injected at run time as a credentials object inside the Embedded Browser - never substituted into test source, never hashed into a baseline, never persisted in run results.

Evidence

Interactive playback & evidence-grade issues

Session video on a single step-synced clock: per-step tick marks, click-a-step-to-seek, 8× speed, and network / perf / URL panes that follow and drive the scrubber. Confirmed regressions file full-evidence GitHub issues, can be assigned to an AI engineer, and auto-close when the next build goes green.

Full Platform

A comprehensive inventory of capabilities

Lastest consolidates test authoring, execution, visual comparison, and team review into a single self-hosted platform.

Three ways to author tests

Manual recording

Point-and-click browser recording via Playwright. No code, no AI, no API keys. Generates deterministic scripts you can edit by hand.

No AI needed
or

AI-assisted

AI generates, fixes, or enhances tests - but every change requires your review and approval. Import URLs, OpenAPI specs, or user stories.

You review everything
or

Autonomous Play Agent

11-step pipeline driven by specialized sub-agents (Orchestrator, Planner, Scout, Diver, Generator, Healer): scan routes, plan areas, generate, run, heal failures up to 3 attempts, re-run, report. Pauses only when stuck - resume from where it left off.

Full automation

One way to run: the Embedded Browser

Bring-your-own Embedded Browser

Run the lastest-eb container yourself - on the machine, network, or OS you need - and register it under Settings → Runners for a token. You bring a browser, not a Playwright daemon. The old remote-runner daemon and host-Playwright fallback are retired.

Your machine
or

System-managed EB pool

Containerized Chromium with CDP live streaming, provisioned on demand into k3d locally or your Kubernetes cluster in production. One browser per test, worker pool per build, warm-pool keep-alive, CNI burst protection, restricted pod egress, graceful reaping during deploys. Records and runs.

Zero install

Beyond the browser - API, load & app fixes

Backend API tests

A headless api test type runs a single HTTP request - no browser - graded on status, header, jsonPath, jsonSchema, bodyContains, and latency. Flows through the same verdict pipeline as browser tests.

Load & performance testing

An optional per-test load config drives a bounded-concurrency runner (count- or duration-based, server-capped) and gates on p95/p99, error rate, and throughput thresholds.

Fix-the-app advisor

For a confirmed real regression, produces a structured application-code fix recommendation - advisory only, it never edits code. Runs triage on demand when a diff is still unclassified.

Diff-scoped validation

Maps a unified diff or branch range to the affected tests, runs only those, and returns a pass / fail / review verdict with a request-safe wait ceiling. Exposed as an MCP tool.

The testing pipeline

Record

Capture interactions or let AI explore

Generate

AI creates tests (one-time tokens)

Run

Deterministic replay, zero tokens

Compare

Three diff engines analyze changes

Review

Humans approve before deploy

Core platform

Multi-step screenshots

Capture multiple labeled screenshots per test for multi-page flow coverage.

Approval workflow

Review visual diffs before they become baselines. Structured review process.

Git-aware builds

Test per branch and commit. Compare across PRs. Track coverage over time.

Branch comparison

Side-by-side branch-to-branch test result diffing.

Test suites

Ordered suites for structured, sequential execution.

Test versioning

Full history with change reasons: manual, AI fix, AI enhance, restore.

Test composition

Cherry-pick tests and pin specific versions per build.

Functional hierarchy

Nested parent/child areas with drag-and-drop reordering.

Debug mode

Step-by-step execution with live feedback per action.

8 testing templates

Presets for SaaS, Marketing, Canvas, E-commerce, Docs, Mobile, SPA, CMS.

Planned screenshots

Compare against Figma exports with planned-vs-actual tracking.

Setup & teardown

Multi-step orchestration with per-test overrides. Playwright, API, and script types.

Dashboard health score

Weighted 0–100 score combining pass rate (60%), non-flaky rate (20%), route coverage (20%). Sparkline trend tracking.

Batch approval

Select and approve multiple visual diffs in a single action. Accelerates review for large builds.

Comparison runs

A/B testing mode: compare baseline vs. current branch builds side-by-side with per-test diff detail.

Scheduled runs

Cron-based automation with preset schedules or custom cron expressions. Auto-disables after consecutive failures. Optional branch targeting.

Guided onboarding

8-step setup guide for new users: connect Git, configure AI, scan routes, record first test, run, set baselines, re-run, check results. Auto-detects completion.

In-app bug reports

Auto-captures URL, viewport, console errors, failed requests, breadcrumbs, and screenshot attachment. Files GitHub issues directly.

Review todos

Branch-specific actionable items created when reviewers flag a diff. Track review feedback as todos tied to specific builds and tests.

Early adopter mode

Team-level toggle to access experimental features before general release. Opt in per-workspace.

Verify triage board

The single execution surface (/run and /builds retired into it): run split-button, live EB stream, build-history drawer, Unsorted → Verified / Broken / Missed board with Change Map, “Accept all safe”, swipe-to-triage down to 360 px.

QuickStart & public shares

QuickStart spins up a productized demo against any base URL and publishes a watermarked /r/<slug> report - graded for Accessibility, Design system, and speed - with session video (WebM + MP4), artifact zip, and social cards. Revokable; stable URL on re-publish.

Check modes - 9 core layers

Visual, text, DOM, network, console, perf, URL, API, storage (+ a11y and design from plugins). Enforce, log, or disable each per repo; approve / reject / snooze per layer on a step.

URL diff

Captures the navigation trajectory of every run and diffs it against the baseline to catch unexpected redirects and broken routes.

Analyze URL

Pre-recording selector tuning: scans the target page, measures data-testid / aria / id coverage, and recommends a selector priority order for your app.

Interactive test playback

Step-synced video timeline: tick marks per step, click-to-seek, 8× speed, and evidence panes (network, perf, URL, chapters) that follow and drive the scrubber. On test detail, Verify, and public shares.

Per-repo credentials

Encrypted secret store under Setup. Injected at run time as a credentials object inside the EB - never substituted into source, never hashed into a baseline, never written to run results.

Test migration

Move tests and functional areas between Lastest instances - connect by URL + API key, browse remote repos, import with idempotent upsert. Also GET /export + POST /import.

Regulated profile

Pharma & life-sciences onboarding fork seeds Veeva Vault + Salesforce release-regression suites and locks the profile: no probabilistic verdicts, no anonymous egress, text/DOM enforced, gamification hidden.

AI capabilities

6 AI providers

Claude CLI, OpenRouter, Claude Agent SDK, direct Anthropic API, OpenAI, or Ollama (local, free). Separate provider for diff analysis.

AI test generation

Multi-selector fallback: data-testid, id, role, aria-label, text, CSS, OCR.

AI diff analysis

Classifies changes with confidence scores. Separate provider from generation.

AI test fixing

Auto-proposes fixes. Review before accepting, or let the agent auto-fix.

Spec-driven testing

Import OpenAPI specs, user stories, or markdown. AI extracts and generates tests.

Route discovery

AI scans source code to discover routes and suggest tests.

AI prompt audit trail

Full logging of all AI requests and responses.

AI confidence scores

Every AI recommendation includes a numeric confidence score. Filter and prioritize reviews by certainty.

MCP server - 29 tools

Resource tools (repo, test, area, build, diffs, verify, insights, share, storage state, setup script) plus workflow verbs: run, create, heal, validate diff, decide diff, approve layer, suggest app fix, scout URL, publish share, QuickStart, Explorer, Ranger, QA agent. Stdio via npx @lastest/mcp-server or remote at /api/mcp with OAuth 2.1 and read / write / full access levels.

Agent monitoring

Real-time SSE activity feed tracking Play Agent sessions step-by-step. Session history, pause/resume, and active/paused/completed status from the dashboard.

Codebase intelligence

Auto-detects framework, CSS, auth, state management, API layer, and key dependencies. 100+ package database maps stacks to testing recommendations to enrich AI prompts.

Triage agent

Single build-scoped classifier: clusters failures and review-required diffs by root cause, writes a run narrative and per-group verdict suggestion, and feeds the healer, RCA, and Verify board. Run Results screen with failure-video queue and group-level GitHub issues.

Agents console

/agents - one roster of QA agent, Play agent, Explorer, Ranger, Triage, and QuickStart runs per repo: working / blocked / paused / idle, what each waits on a human for, and embedded browsers held.

Explorer agent

Exploratory tester: observe DOM → one AI action → execute, with rotating planning styles, stuck detection, clustered findings, and knowledge + experience memory across runs. Keeps passing flows as deterministic tests.

App Map & Explore swarm

Every screen becomes a node on one connected map. “Explore” fans a multi-EB crawler across the app with live progress; Screens gallery and Flows player with step-by-step mode.

QA agent console

Ongoing suite builder on a bento console: Scout → Summary pipeline strip, coverage matrix, Doing now / Up next / Watching quadrants, direction queue, and scheduled triggers.

Root-cause analysis

“Is this diff the test or the code?” - an RCA verdict on every visual diff, feeding the fix-the-app advisor and the healer.

MCP selector validation

Real-time selector validation against live pages via Claude MCP. Catches brittle selectors during generation, not after they break.

Visual comparison

3 diff engines

Pixelmatch, SSIM, and Butteraugli. Speed vs. perceptual accuracy trade-off.

Text-region diffing

OCR-based two-pass comparison with separate text/non-text thresholds.

Page shift detection

Detects inserted/deleted rows with fuzzy matching, not full-page flags.

Ignore regions

Mask dynamic areas with solid-color or placeholder-text styles.

Configurable sensitivity

Pixel and percentage thresholds for unchanged/flaky/changed classification.

SHA256 fast-path

Hash match = instant pass. No pixel comparison needed on every run.

Diff engine benchmarks

Built-in benchmark framework comparing all three engines across synthetic test scenarios with timing and accuracy metrics.

Stabilization - 12 features for flaky test prevention

Timestamp freezingRandom value seedingCross-OS consistencyBurst captureAuto-mask dynamic contentNetwork idle waitingDOM stability detectionThird-party blockingFont loading waitLoading indicator hidingAnimation freezingAuto-detect capabilities

Integrations

GitHubOAuth, PR comments, webhooks, Action, issues
GitLabOAuth, MR comments, self-hosted
Google Sheets & CSVTest data sources via OAuth / upload
NotificationsSlack, Discord, custom webhooks
VSCode & APIREST + SSE at /api/v1/
AccessibilityWCAG 2.2 AA scoring (0–100), axe-core on every capture
Network & consoleRequest + error capture per run
CI trigger CLI@lastest/runner - browser-free, any CI
WebMCPTools on document.modelContext for ChatGPT / Chrome agents
Remote MCP + OAuth 2.1/api/mcp, dynamic client registration, PKCE
OpenTelemetryOTLP traces incl. scrubbed DB spans
GitHub IssuesFull-evidence issues, AI-engineer assignment, auto-close on green

Analytics & insights

Impact timeline

Track visual regression impact across PRs and commits. Author contribution analysis and trend visualization.

WCAG 2.2 AA compliance

Automated 0–100 accessibility scoring with severity-weighted violations. Per-test violation detail across builds.

Design system score

Scores each build for design-system compliance - token, spacing, and type-scale adherence - as a graded dimension alongside accessibility and speed on the founder report.

Core Web Vitals

Captures absolute LCP, INP, and CLS and grades them against Google’s good / needs-improvement / poor thresholds - not just a regression diff.

Awards & badges

“Prove your app is not AI slop” - per-repo tier and category badges computed from build, test, and diff history, an embeddable badge SVG, a public criteria page, and a team trophy room.

Coverage matrix

Route × layer coverage per repo, driving the QA agent’s plan and exposed to agents via the MCP insights tool.

Infrastructure & team

Smart Run

Git-diff analysis runs only affected tests.

Parallel execution

Configurable max parallel tests bounds the EB pool per build; CNI burst protection throttles pod creation.

Branch baselines

Fork/merge baselines per branch. SHA256 carry-forward matching.

Docker & Kubernetes deployment

Multi-stage images, k8s manifests for app + pool service, health checks, non-root with seccomp, deploy:zima / deploy:olares scripts.

App state inspection

Access window.__APP_STATE__, Redux stores during tests.

Multi-tenant teams

Slug-based workspaces with email invitations.

Role-based access

Owner, admin, member, and viewer permissions.

Multiple auth

Email/password (Argon2), GitHub, GitLab, Google OAuth.

Storage states

Save and restore browser storage snapshots - localStorage, sessionStorage, and cookies - for authenticated flows.

Assertion tracking

Parsed expect() calls with expected vs. actual values, error messages, and code line references per test.

Selector stats

Track selector success rates and response times. Identify brittle selectors before they cause flaky tests.

CI trigger CLI

@lastest/runner - a browser-free npm client that triggers a build and polls for results (writes GITHUB_OUTPUT / step summary, non-zero exit on failure or --fail-on-changes). Execution stays in the EB pool.

Reusable GitHub Action

las-team/lastest/action@main - zero-config CI/CD integration. No local Playwright install; tests run server-side in the Embedded Browser pool. Status, build URL, and counts posted to the Actions step summary.

Webhook triggers

Builds fire on PR opened/updated, push to monitored branches, or manual click. Smart Run filters to only affected tests.

Background jobs

Queue tracking for long-running operations - AI route scans, agent sessions, and builds - with live status and history.

API tokens

Long-lived lastest_api_* Bearer tokens for the MCP server, VS Code extension, CI, and cross-instance migration. Labelled, revokable per user.

Secrets encrypted at rest

OAuth tokens, AI provider keys, and repo credentials are encrypted in the database; provider keys are never serialized to the browser.

Customer-code isolation

Customer and AI-authored test code is evaluated only inside EB pods with restricted egress - never in the host process. MCP browser agents route through EB pods with a mandatory CDP endpoint.

OpenTelemetry tracing

Opt-in OTLP export from the app and pool service - HTTP, job, and DB spans with statement literals scrubbed and parameters never attached.

Core + plugin architecture

A small kernel with declared capabilities; features ship as plugins (explorer, app-map, api-test, share, awards, qa-agent, scheduling, a11y, design-system, and more) that cannot reach past their manifest.

Ready when you are

Every feature, inside your network.

Run Lastest on your own infrastructure, where screenshots and application data never leave your network, or spin up a project on Lastest Cloud in minutes. Same engine, same dashboard, same diff - every capability above included.

See pricing