DESKTOP TESTING, UNDER THE SURFACE

One protocol.
Two ways in.
Real actions.

Choose the backend for the application—not the other way around. Use the interface that fits your workflow.

INSIDE OR OUTSIDE

Your app.
Your machine.

The Qt generic plugin runs inside the application. The external backend reaches it through OS accessibility and input. Python, CLI and MCP clients speak the same local protocol.

The probe listens on a local socket restricted to the current user, or a Windows named pipe—not an exposed remote testing endpoint.

Explore the Qt probe

CHOOSE YOUR INTERFACE

One toolkit.
Your kind of workflow.

Small terminal commands, Python composition or MCP tools for an AI agent.

SMALL COMMANDS. PRECISE TARGETS.

Speak the language of the interface.

Find a named button, type into a field, wait for a result and save a screenshot. Launch and connect to the application first.

python3 -m testhand click '#greetButton'
python3 -m testhand type Ada --target '#nameEdit'
python3 -m testhand screenshot --out result.png

DIFFERENT REACH. CLEAR BOUNDARIES.

Built for local testing.
Not every app, everywhere.

Local testing. Real platform differences.macOS, Linux and Windows support differs. External desktop access may require OS permissions; available targets depend on accessibility support. No universal app compatibility or zero-permission promise.

FROM AN IDEA TO A REPEATABLE TEST

Your next test.
A little more human.

Choose the right backend, connect to your application and start with one small workflow.

Get started