LIVE
IDLEAwaiting updates…
LexDev

Automium

Agent-native browser QA and automation platform — Playwright-backed runtime with semantic page snapshots, an MCP server for agent control, and a provider-backed test planner; the browser-runtime refactor is the latest workstream

Competes with QA Wolf

BuildingLexDev
Key metrics

Metrics being defined

Competitive Intel

0 entries

No competitive intel entries for this product yet.

Research Hub

0 types

No research documents for this product yet.

Roadmap

123 items
Planned88
`automium run --tag smoke` submits journeys, polls, and exits with correct exit code
`automium validate` reports config and connectivity issues with actionable messages
A journey authored via the API executes end-to-end and produces a pass/fail verdict
Actionability scoring correctly identifies interactive vs non-interactive elements
Actionability scoring correctly identifies interactive vs non-interactive elements *(uses engine-domain scoreActionability)*
Actionability scoring correctly identifies interactive vs non-interactive elements *(uses engine-domain scoreActionability)*
Adapter registry resolves Claude and fixture adapters by vendor string
All adapter implementations pass contract tests matching `packages/adapters/` interfaces
All phase tests pass
API requests are traced end-to-end via OpenTelemetry
Artifact upload job processes correctly after a journey run completes
Artifacts are organized in the correct bucket structure with org/workspace scoping
Artifacts are retrievable via the API and respect tenant authorization
At least one journey completes with Claude planner producing real tool-call intents
Audit events flow through the audit-sink queue to Postgres asynchronously
AuditSinkAdapter can emit and query audit events through Postgres
Automium replay event stream is serialized as JSONL and retrievable per run
Benchmark comparison report shows meaningful metrics across fixture and Claude planners
Benchmark runner works with v2 adapters for planner comparison
BrowserRuntime interface is defined and Playwright adapter passes all interface methods
BrowserRuntime interface is defined and Playwright adapter passes all interface methods *(stub shape validated; real Playwright wiring deferred)*
Can navigate an owned benchmark product URL and produce a complete enriched snapshot
Can navigate an owned benchmark product URL and produce a complete enriched snapshot *(contract-compliant snapshot shape validated; real navigation deferred)*
Can navigate an owned benchmark product URL and produce a complete enriched snapshot *(contract-compliant snapshot shape validated; real navigation deferred)*
CDP pipeline captures network requests, console messages, and DOM mutations in real-time
CDP pipeline captures network requests, console messages, and DOM mutations in real-time *(event types defined; real CDP subscription deferred)*
CDP pipeline captures network requests, console messages, and DOM mutations in real-time *(event types defined; real CDP subscription deferred)*
Claude adapter parses tool-call responses into PlannerIntent objects
Claude adapter produces valid tool-call prompts from enriched semantic snapshots
CLI can submit, monitor, and report on the end-to-end run with correct exit codes
CLI has zero Playwright/engine/provider SDK dependencies
Cold start meets <5s target, full 10-step journey meets <30s target
Control plane API serves artifact downloads for authenticated, authorized users
Credential CRUD endpoint encrypts values and never returns plaintext
Credential vault can store, retrieve, and rotate encrypted secrets
Drizzle schema compiles and generates migrations for all core tables
Executor can compile click, type, navigate, and assert intents into Playwright actions
Executor can compile click, type, navigate, and assert intents into Playwright actions *(action bridge validated; real Playwright execution deferred)*
Exit code 1 on test failure, exit code 2 on auth/infra error
FileStorageAdapter stores and retrieves files from R2 via S3-compatible API
Firecracker VM image boots and runs a Playwright script successfully
Firecracker VM image boots and runs a Playwright script successfully *(deferred — requires bare-metal KVM server)*
Firecracker VM image boots and runs a Playwright script successfully *(deferred — requires bare-metal KVM server)*
Fixture adapter returns deterministic intent sequences matching v2 contract
GitHub Actions example workflow runs successfully in a test repository
Hono server starts and serves all v1 routes
Iframe elements appear in the flattened semantic snapshot with frame metadata
Iframe elements appear in the flattened semantic snapshot with frame metadata
JobQueueAdapter can enqueue, dequeue, and acknowledge jobs through BullMQ
Journey CRUD operations persist to and read from Postgres
JSON output contains all journey results with run IDs and replay URLs
JUnit XML output is parseable by GitHub Actions test-reporter and GitLab CI
Migrations run successfully against a Neon Postgres instance
Migrations run successfully against a Neon Postgres instance *(deferred to integration)*
No regressions in previous phase tests
OpenAPI spec is generated and accessible at /api/v1/openapi.json
Owned benchmark corpus (Altitude, Switchboard, Foundry) runs with fixture planner
Parallel submission respects concurrency limit and tenant quota
Per-journey timeout surfaces as an explicit failure in all reporters
Per-run budget enforcement aborts a journey when cumulative tokens exceed the limit
Per-step telemetry accurately reports tokens, latency, and model version from Claude API
PlannerAdapterV2 contract is defined and exported from packages/contracts/
Playwright trace.zip is captured and uploaded alongside Automium event stream
Priority ordering works correctly (high > normal > low)
Provider retry handles 429 rate limits with exponential backoff
Queue and worker tests pass with a local Redis instance
RBAC middleware enforces role-based access per the permission matrix
RealtimeTransportAdapter can publish and subscribe to Redis channels
Replay artifacts are complete: event stream, targeted crops, network log, Playwright trace
Retention tags are set on upload and R2 lifecycle rules are configured
RLS policies prevent cross-tenant data access when session variables are set
Run status endpoint returns real-time status from Postgres
Run submission enqueues a job in BullMQ and returns a run ID
SearchBackendAdapter can index and query using Postgres tsvector/tsquery
Semantic enrichment produces stable element IDs that persist across page rerenders
Semantic enrichment produces stable element IDs that persist across page rerenders *(uses engine-domain stableHash)*
Semantic enrichment produces stable element IDs that persist across page rerenders *(uses engine-domain stableHash)*
Targeted vision capture produces annotated element screenshots under budget
Targeted vision capture produces annotated element screenshots under budget *(budget enforcement validated; real screenshot capture deferred)*
Targeted vision capture produces annotated element screenshots under budget *(budget enforcement validated; real screenshot capture deferred)*
Terminal output streams journey completion with pass/fail indicators
Two tenants can submit runs simultaneously with no cross-tenant data access
Vision crops are included as image content blocks when flagged by the runtime
WebSocket gateway streams run progress events from Redis pub/sub
Worker lease quota enforcement prevents over-allocation
Worker process dequeues a job and reports heartbeats via HTTP
WorkOS adapter authenticates via magic-link and validates session tokens
WorkOS authentication rejects unauthenticated requests with 401
Done35
All adapter implementations pass contract tests matching `packages/adapters/` interfaces
All phase tests pass
All phase tests pass (274/274)
All phase tests pass (309/309)
Audit events flow through the audit-sink queue to Postgres asynchronously *(queue definition exists; async flow deferred)*
AuditSinkAdapter can emit and query audit events through Postgres *(stub validated)*
BrowserRuntime interface is defined and Playwright adapter passes all interface methods *(stub shape validated; real Playwright wiring deferred)*
Credential vault can store, retrieve, and rotate encrypted secrets *(encrypt/decrypt validated)*
Drizzle schema compiles and generates migrations for all core tables
Executor can compile click, type, navigate, and assert intents into Playwright actions *(action bridge validated; real Playwright execution deferred)*
Iframe elements appear in the flattened semantic snapshot with frame metadata
JobQueueAdapter can enqueue, dequeue, and acknowledge jobs through BullMQ *(stub shape validated by contract tests; BullMQ wiring deferred)*
No regressions in previous phase tests
No regressions in previous phase tests
No regressions in previous phase tests
Phase 1: Persistence Foundation (13 steps) — archived in `tasks/phases/production-phase-1.md`
Phase 2: Queue + Worker Infrastructure (8 steps) — archived in `tasks/phases/production-phase-2.md`
Priority ordering works correctly (high > normal > low)
Queue and worker tests pass with a local Redis instance *(contract tests pass without Redis; live Redis deferred to integration)*
RealtimeTransportAdapter can publish and subscribe to Redis channels *(stub shape validated; Redis wiring deferred)*
RLS policies prevent cross-tenant data access when session variables are set *(policies defined)*
SearchBackendAdapter can index and query using Postgres tsvector/tsquery *(stub validated)*
Step 3.1: **Automated** Write failing contract tests for all Phase 3 components.
Step 3.10: **Automated** Refactor pass — verify barrel exports, adapter alignment, no dead code.
Step 3.2: **Automated** Scaffold `packages/browser-runtime/` and define BrowserRuntime interface types.
Step 3.3: **Automated** Implement semantic enrichment pipeline — raw accessibility tree to contract-compliant interactive elements.
Step 3.4: **Automated** Implement frame hierarchy flattening into unified element list with frame metadata.
Step 3.5: **Automated** Implement targeted vision capture contracts and budget enforcement.
Step 3.6: **Automated** Implement executor-to-BrowserRuntime action bridge.
Step 3.7: **Automated** Implement full BrowserRuntime adapter stub with enrichment pipeline wiring.
Step 3.8: **Automated** Build contract-compliant SemanticSnapshot from enriched browser state.
Step 3.9: **Automated** Run all tests and verify they pass (green).
Worker lease quota enforcement prevents over-allocation *(existing orchestrator logic, now wired to dispatch)*
Worker process dequeues a job and reports heartbeats via HTTP *(stub lifecycle validated; real dequeue loop deferred)*
WorkOS adapter authenticates via magic-link and validates session tokens *(stub validated)*

Timeline

20 events
April 2026
chore
chore: complete browser runtime refactor pass
Apr 27static-
chore
chore: verify browser runtime green phase
Apr 27static-
feature
feat(browser-runtime): build contract semantic snapshots
Apr 26static-
feature
feat: wire browser runtime adapter stub
Apr 26static-
feature
feat(browser-runtime): add executor action bridge
Apr 26static-
feature
feat: add browser vision capture budgeting
Apr 26static-
feature
feat(browser-runtime): flatten frame hierarchy
Apr 26static-
feature
feat: add browser runtime semantic enrichment
Apr 26static-
docs
docs(tasks): mark browser runtime scaffold complete
Apr 26static-
feature
feat(browser-runtime): scaffold BrowserRuntime interface types and adapter stub (Step 3.2)
Apr 26static-
test
test(browser-runtime): add 32 red-phase contract tests for Phase 3 (Step 3.1)
Apr 26static-
docs
docs(tasks): plan Phase 3 Browser Runtime with 10 TDD steps
Apr 26static-
refactor
refactor(adapters-redis): add explicit return type, complete Phase 2 (Step 2.8)
Apr 26static-
docs
docs(tasks): mark Step 2.7 green verification complete, plan Step 2.8 (refactor pass)
Apr 26static-
feature
feat(orchestrator): add dispatchRun wiring lease-to-queue (Step 2.6)
Apr 26static-
feature
feat(worker): add WorkerProcess skeleton + HeartbeatReporter stubs (Step 2.5)
Apr 26static-
feature
feat(adapters-redis): add RealtimeTransportAdapter stub + Redis connection factory (Step 2.4)
Apr 26static-
feature
feat(adapters-bullmq): add queue definitions with priority ordering (Step 2.3)
Apr 26static-
docs
docs(tasks): mark Step 2.2 complete, plan Step 2.3 (queue definitions)
Apr 26static-
feature
feat(adapters-bullmq): scaffold JobQueueAdapter stub (Step 2.2)
Apr 26static-