Tests & monitors
Open source · AI-native · any screen

Any device with a screen — tested and monitored 24/7 by AI.

Real remotes. Real HDMI capture. Real verification, not a green checkmark. Open source, one flat fee — no per-device licenses, no robots.

In production today at a tier-1 European TV operator — real set-top boxes, IR & Bluetooth remotes, and HDMI capture.

77 MCP tools4 devices per unit24/7 monitoring€0 software, forever
Platform

One platform, the whole test loop.

Map the app once, prove what's on screen, watch it around the clock, and let an AI agent see and act on the device — all in the same open-source stack.

01Navigation

Map your app once. Every test reuses it.

Every screen and path becomes a reusable graph. Change a screen once, and every test that touches it follows.

HomeSettingsGuideSearchPlayernavigate_to_node("player")

Passed8 of 8 steps, with the start and end screens and the run video.
A passed test report: 8 of 8 steps, with the initial and final screen and the run video
FailedThe steps that broke, with what the screen showed instead.
A failed test report: the two steps that failed, each with what the screen showed instead

Every run, a report you can read. Image matching, OCR and AI detectors keep the source, the reference and the diff.

10AI native

Talk to your lab. The AI drives the device.

A built in MCP server: any AI client can inspect and control a real device.

AI clientAny MCP clientMCP server77 toolstake_controlnavigate_to_nodeverify_nodecapture_screenshotHostDevice
Devices

Anything with a screen and a controller.

TVs, set top boxes, phones, PCs, consoles, drones. If it has a screen and something to drive it, it can be tested. A stream alone works too: watched, not driven.

TV and set top boxPhone and tabletPC and browserConsoleDroneStreamCaptureHDMI, camera or stream URLControllerIR, Bluetooth, ADB, networkHostServerWeb UI, MCPA stream needs no controller: it is watched, not driven.
Works withYour cloud device farm, driven as an ordinary device.BrowserStackSauce Labs

BrowserStack and Sauce Labs are trademarks of their respective owners. VirtualPyTest is not affiliated with or endorsed by either; the logos mark compatibility only.

See it in motion

A quick look at the platform.

Fleet heatmap: one frame per minute per device for the last 24 hours, with a scrub bar
1:00

VirtualPyTest in 60 seconds — dashboard, live control, one-click runs, reports, KPIs, heatmap, incidents

And the rest, in the box.

Free and open source, nothing sold as an add on.

02Authoring

No code for the team, Python for engineers.

A visual builder for everyone, and full Python the moment you need real logic.

03Variants

One script, every platform.

Named variants override only what differs per model.

05References

Reference images and text, easy to keep.

One library with auto OCR and focus detection. Recapture in one click when the UI changes.

07A/V quality

Audio and video quality, measured every minute.

Per minute A/V KPIs per device, trended by platform and software version.

06Monitoring

Black screen, freeze, audio loss. Caught live.

Every device watched day and night, alerted the moment it breaks.

11Heatmap and rewind

A fleet heatmap and 24 hours to scrub back.

One glance shows where the fleet hurts. Rewind to what happened at 3 a.m.

12Dashboard and device

Your whole fleet, status and live screen.

Hosts, devices and system metrics, with every live screen side by side.

13Device info

Device details, read straight off the screen.

Reads the device's own About screen, by OCR or menu, in any language.

16Occupancy and health

Every device accounted for, every host healthy.

Busy or idle, manual or script. CPU, memory, disk and temperature, around the clock.

09Analytics

The basics in the app, the whole story in Grafana.

Pass rates, durations and volume with nothing to query, on standard Grafana you own.

14Workspaces

Permissions, down to the last action.

Scoped by workspace, team and user. Grant or deny every action; deny always wins.

15Web UI

Runs in any browser, desktop to phone.

Nothing to install. Operate the whole lab from anywhere.

Pricing

One standard offer. Devices are unlimited.

The software is free. You pay only for the hardware you want, never a per device license.

Open source

€0/ forever
  • Full source, AGPLv3
  • Self host on your own hardware
  • Community support on GitHub
Get the code

Standard hardware unit

€3,000/ unit
  • Drives up to 4 devices + web tests at once
  • Capture, control and compute, preconfigured
  • Plug in and go, no assembly
Try it live

Managed lab

Talk to us
  • Unlimited devices
  • Integration, training, ongoing support
  • Optional 24/7 SLA + AI test generation
Talk to us

Self host on a Raspberry Pi, standard PC, or Minisforum mini PC. We recommend Linux. Prefer plug and play? We can configure and ship a complete unit.

FAQ

Frequently Asked Questions

Is it really free?

Yes. VirtualPyTest is open source under the GNU AGPL v3. You can use, modify and self host it at no cost, including for commercial internal use. No paid tiers, no usage limits, no feature gates.

The one obligation: if you distribute a modified version or offer it to others as a service, you must publish your changes under the same license. For commercial licensing outside those terms, talk to us.

What devices are supported?

Anything that can be remotely controlled: Android and iOS phones and tablets, Android TV, Apple TV, Fire TV and smart TVs, set top boxes with IR or network control, any browser, and Windows, macOS or Linux desktop apps.

Control goes through ADB, Appium, IR blasters, smart TV network APIs or browser automation. Any device with an HDMI output can be captured with a USB capture card.

How does one script work on every device?

Test logic and navigation are separate. A navigation tree maps your app once: nodes are screens, edges are the actions that move between them.

Same script on Android, iOS, a set top box or the web. Change a screen once and every test that touches it follows.

How does verification work?

Every check runs against what is actually on screen. Image matching, OCR and AI vision detectors confirm the expected content is there, and each result keeps the source frame, the reference and the pixel diff as evidence.

No brittle DOM selectors, so checks survive UI redesigns and work the same on every platform.

How is the screen captured?

Real devices are always captured through an HDMI acquisition card, whether they are set top boxes, TVs, phones or tablets. You see exactly what a viewer sees, with no dependency on the device's own APIs. Only emulators are captured through ADB.

Every run keeps a frame by frame replay and a screenshot timeline you can attach to bug reports.

How is it different from Appium or Selenium?

VirtualPyTest is visual first and platform agnostic: one script for every device, AI vision instead of element selectors, and built in support for set top boxes and TVs through IR and HDMI capture, which Appium and Selenium do not cover. Monitoring and Grafana dashboards are built in.

It complements them rather than replacing them: Appium and Playwright are used under the hood for mobile and web.

Can I run it from CI/CD?

Yes. Trigger scripts and campaigns through the REST API from any pipeline, and receive a completion callback on a URL you provide when a long run finishes. Point your CI at a running server, or launch the stack with the setup scripts as part of the job.

What do I need to get started?

Docker and Docker Compose for the stack, Python 3.11 or newer for local development. Per device: ADB access for Android, a Mac with Xcode and Appium for iOS, an IR blaster or network API for set top boxes and TVs, a USB capture card for HDMI, and Chrome or Firefox for web.

How do I add a new device?

Controllers already exist for Android, iOS, web and IR controlled devices, so most devices only need connection details and a navigation tree, which the AI can help build. For a new platform, implement the controller interface once and every feature works with it.

Which AI clients can connect?

Any client that speaks MCP, such as Claude Desktop or Cursor. The built in server exposes 77 tools: take control of a device, navigate, verify, capture the screen, run tests and read the results.

Does it work with BrowserStack or Sauce Labs?

Yes. A phone from your farm account joins the fleet as an ordinary device, with the same navigation graph, scripts and reports. You keep your own farm account; we never resell the minutes.

Can I see what happened when nobody was watching?

Yes. Every device's screen is recorded for 24 hours. The fleet heatmap shows where incidents happened, and you can scrub back to the exact minute.

Something else? Read the full FAQ on GitHub or .

Any device with a screen — tested and monitored 24/7 by AI.

No install, nothing to set up. Sign in on a read only account and watch real devices, real dashboards, real incidents, as they happen.