Isolated Tester
Vision and control for any model: drive macOS apps and VMs on isolated virtual displays over MCP
- Transport
- Not stated
- Package
- —
- Registry id
- io.github.AgewellEPM/isolated-tester
No install snippet on purpose. A working MCP config is a command, its arguments and an environment block — the last two are where API keys live, so this catalogue never stores them and cannot publish them. Follow the link above for the authors' own instructions.
AI-powered isolated app testing for macOS. Launch any .app on a virtual display, control it with vision-based AI, and verify behavior — without taking over your screen.
Quick Install (Claude Code Plugin)
git clone https://github.com/AgewellEPM/IsolatedTester.git && cd IsolatedTester && ./install.sh
This builds from source, installs binaries to ~/.local/bin/, and configures the MCP server in Claude Code automatically. Then grant Screen Recording and Accessibility permissions in System Settings.
Update
cd IsolatedTester && git pull && ./install.sh
Uninstall
cd IsolatedTester && ./uninstall.sh
Slash Commands
Once installed, these slash commands are available in Claude Code:
| Command | Description |
|---|---|
/test-app <path> <objective> |
Launch and test a macOS app in an isolated virtual display |
/test-screenshot [session-id] |
Capture a screenshot from a running session |
/test-elements [session-id] |
Inspect accessibility elements of a running session |
/test-cleanup |
Stop all active test sessions |
Verify Setup
Ask Claude Code to call the setup_status tool — it reports version, permissions, virtual display availability, and active sessions.
What It Does
IsolatedTester creates invisible virtual displays using private CoreGraphics APIs, launches your app there, and lets an AI agent (Claude, GPT-4, or Claude Code CLI) drive the UI through a screenshot → reason → act loop. Your physical screen is never touched.
┌──────────────────────────────────────────────────────┐
│ You (CLI / HTTP / MCP) │
│ ↓ │
│ SessionManager (actor) │
│ ↓ │
│ TestSession │
│ ├── VirtualDisplayManager → invisible display │
│ ├── AppLauncher → launch .app on it │
│ ├── InputController → CGEvent synthesis │
│ ├── ScreenCapture → ScreenCaptureKit │
│ └── AITestAgent → vision → action loop │
│ ├── Anthropic API │
│ ├── OpenAI API │
│ └── Claude Code CLI │
└──────────────────────────────────────────────────────┘
Advanced Installation
Build from Source (Manual)
git clone https://github.com/AgewellEPM/IsolatedTester.git
cd IsolatedTester
swift build -c release
cp .build/release/isolated .build/release/isolated-mcp .build/release/isolated-http ~/.local/bin/
Grant Permissions
IsolatedTester requires two macOS permissions:
- Screen Recording — for capturing screenshots via ScreenCaptureKit
- Accessibility — for synthesizing mouse/keyboard input via CGEvent
Check status: isolated displays (will prompt if needed)
Usage
CLI
# List available displays
isolated displays
# Launch an app on a virtual display
isolated launch /Applications/Calculator.app
# Run an AI test
isolated test /Applications/Calculator.app \
--objective "Calculate 5 + 3 and verify the result is 8" \
--provider anthropic \
--api-key $ANTHROPIC_API_KEY
# Take a screenshot
isolated screenshot --display 1
HTTP Server
# Start the server (default port 7100)
IST_TOKEN=my-secret-token isolated-http
# Create a session
curl -X POST http://localhost:7100/sessions \
-H "Authorization: Bearer my-secret-token" \
-H "Content-Type: application/json" \
-d '{"appPath": "/Applications/Calculator.app"}'
# Take a screenshot
curl -X POST http://localhost:7100/sessions/{id}/screenshot \
-H "Authorization: Bearer my-secret-token"
From the project's README.