deskcheck
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
deskcheck-ai
A free, open-source (MIT), deterministic desktop-test loop for open coding agents. A coding agent (OpenCode, Codex CLI, Claude Code, etc.) calls deskcheck to verify its own GUI/desktop work: launch a named app, perform scripted GUI steps, screenshot, get pass/fail back into its build-fix loop.
It is a test harness, not another agent brain. It decides nothing about what to do — it runs exactly the steps in a YAML test file and reports whether they passed.
Why this exists
Desktop agents that can click anywhere carry an obvious risk: an agent with OS-wide control can touch mail, password managers, and signed-in browsers (Cursor's Computer Use announcement, Oct 23, 2026, published no permission model for exactly this). deskcheck's answer is the headline feature: a named-app allowlist with default deny, enforced at launch and at every input step, with whole categories (password managers, credential stores, system-settings apps, browsers with existing profiles) denied outright. See docs/SECURITY.md.
Related MCP server: clef-use
Quickstart
pip install -e .
# 1. Write a test (steps are data, never code — no shell/exec step exists)
# 2. Run it against the mock driver (hermetic demo, no real desktop needed)
deskcheck run examples/demo-pass.yaml --config examples/config.yaml \
--driver mock --mock-windows demo-app
# Exit 0 = pass, 1 = fail, 2 = setup/parse error, 3 = interrupted (Ctrl-C)
# Reports: <test-dir>/runs/<name>/report.md + report.html + actions.jsonl
# + screenshots/<name>.png per screenshot stepOn a real Linux desktop, use --driver linux (needs xdotool + scrot);
on Windows, --driver windows (PowerShell + .NET, no new dependencies).
If the driver is unavailable, deskcheck says so clearly instead of
failing mid-run.
One full example test
version: 1
name: demo-pass
app: demo-app
steps:
- type: launch
app: demo-app
- type: wait
ms: 10
- type: click
x: 100
y: 200
- type: type
text: "hello"
- type: key
key: Enter
- type: screenshot
name: main
- type: assert
kind: window-visible
window: demo-app
- type: assert
kind: screenshot-saved
screenshot: mainStep types, and only these: launch, wait (ms, or window-visible),
click (x,y), type (text), key (named key), screenshot (named),
assert (window-visible | screenshot-saved | pixel-diff vs a
baseline, with tolerance + max-diff-ratio knobs). The parser rejects any
unknown step type or unknown key with a clear error, and rejects
shell/exec-style keys outright. Timeouts apply to every step; --max-steps
caps runaway tests; Ctrl-C stops gracefully and marks the run interrupted.
Pixel-diff baselines (the Playwright-style accept flow)
First run with no baseline fails with a clear "baseline missing" message. Accept the current screenshot as the baseline, then re-run:
deskcheck run examples/pixel-diff.yaml --config examples/config.yaml \
--driver mock --mock-windows demo-app --update-baselines
deskcheck run examples/pixel-diff.yaml --config examples/config.yaml \
--driver mock --mock-windows demo-appOn a pixel-diff failure, a red diff image is written next to the report
(diff-<name>.png). OCR is optional only: if tesseract is installed you
may add your own checks outside deskcheck; it is never in the default path
and never required.
MCP setup (for coding agents)
deskcheck speaks MCP over stdio (JSON-RPC 2.0, initialize /
tools/list / tools/call / ping). Tools: launch_app, click,
type_text, press_key, screenshot, assert_window, run_test
(tool failures return isError: true, not a transport error, so the model
can read the reason and retry).
{
"mcpServers": {
"deskcheck": {
"command": "deskcheck",
"args": ["mcp", "--config", "/path/to/config.yaml", "--driver", "linux"]
}
}
}Drop-in agent instructions live in AGENT-SKILL.md: write test → run → read report → fix → re-run.
How deskcheck differs from HQ's Holo4
Holo4 (in the HQ system) is a model-driven autonomous desktop agent: it decides what to do next on the desktop. deskcheck is the opposite side of that loop: it verifies — it runs only the steps a test file spells out, against an allowlist, and returns pass/fail. Interop is documented here only; there is no code coupling to HQ, and deskcheck never modifies HQ files. In a combined workflow, Holo4 (or any agent) builds, deskcheck checks, the agent fixes, deskcheck re-checks.
Docs
docs/SECURITY.md — permission model + threat model
docs/RESEARCH.md — what was borrowed from Cursor, Playwright, PyAutoGUI, and MCP conventions
AGENT-SKILL.md — drop-in instructions for coding agents
Tests
sh test/smoke.sh # unit + e2e (MockDriver) + CLI + MCP handshakeNo network calls in tests. Dependencies: PyYAML only; everything else (including the PNG decoder used for pixel-diff) is stdlib.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Hosted real Google Chrome MCP with per-user persistent state. Navigate, click, type, screenshot.
Run multi-step tasks in a real Chrome browser: persistent environments, live view, human takeover.
Drive real devices from your AI Coding tool. Embed a client SDK (Unity, Godot, Flutter, iOS/macOS, Android, React Native, Web) in your app, then capture screenshots, traverse the UI tree, inject taps and key events, and run automated test tasks on the physical device over a secure relay.
Eyes and hands on real Windows PCs — observe, click, type via Glasswarp API.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables MCP agents to automate real GUI applications on headless desktops, providing background mouse/keyboard control, window/process management, screenshots, and safe human handoff without disturbing the user's desktop.594MIT
- AlicenseNot gradedqualityBmaintenanceEnables MCP agents to run, continue, observe, check status of, and abort bounded GUI automation tasks through a shared local runtime with visual detection and deterministic input.Apache 2.0
- AlicenseNot gradedqualityBmaintenanceEnables agents to control Windows desktop applications through UI Automation and Win32, supporting window management, mouse/keyboard input, element inspection, screenshots, OCR, macro recording, and autonomous multi-app missions. It also provides an HTTP/stdio MCP interface, an operator UI, and optional telemetry and safety controls.MIT
- AlicenseNot gradedqualityCmaintenanceEnables MCP-capable AI agents to control Windows desktops through UI Automation element trees, native screenshots, app launching, batched action sequences, smart waits, and safety gates using normalized coordinates.MIT