thunder-eye
v1.1.0
Published
AI gets eyes into desktop apps — MCP server for visual perception of Electron, Tauri, Flutter, Qt, and native applications
Downloads
195
Maintainers
Readme
Install
npm install -g thunder-eyeOr clone and build locally:
git clone https://github.com/Orellius/thunder-eye.git
cd thunder-eye
npm install
npm run buildSupported Frameworks
| Framework | Screenshot | UI Inspection | Element Finding | |-----------|:---------:|:-------------:|:---------------:| | Electron (VS Code, Discord, Figma) | CDP | Accessibility Tree | Yes | | Tauri (Thunder, CrabNebula) | CDP / Native | Accessibility Tree | Yes | | Flutter | Native | DevTools (planned) | Planned | | Qt (OBS, VLC) | Native | AT-SPI (planned) | Planned | | GTK (GIMP, Inkscape) | Native | AT-SPI (planned) | Planned | | SwiftUI / AppKit | Native | macOS Accessibility | Yes | | Any other app | Native | — | — |
Quick Start
With Claude Code
claude mcp add thunder-eye node ~/path/to/thunder-eye/dist/index.jsWith Cursor / VS Code
Add to your MCP config:
{
"mcpServers": {
"thunder-eye": {
"command": "node",
"args": ["/path/to/thunder-eye/dist/index.js"]
}
}
}Tools
screenshot
Capture a screenshot of any running desktop app. The AI can analyze it visually.
"Take a look at the app" → AI captures screenshot → "I can see the button is misaligned..."
detect_app
Auto-detect what desktop apps are running and their frameworks.
inspect_ui
Get the accessibility tree / component hierarchy without a screenshot.
find_element
Search for UI elements by text or role.
get_window_info
Get window dimensions, position, and framework info.
list_windows
List all visible app windows.
How It Works
Thunder Eye uses a layered detection strategy:
- Chromium DevTools Protocol (CDP) — For Electron, Tauri, CEF, and other Chromium-based apps. Highest fidelity screenshots and full DOM/accessibility tree access.
- OS Accessibility APIs — For native apps (SwiftUI, AppKit, Qt). Uses macOS Accessibility framework or Linux AT-SPI.
- Native screencapture — Universal fallback. Works with any app on any framework.
Requirements
- macOS: Accessibility permissions must be granted in System Settings > Privacy & Security > Accessibility
- Linux:
wmctrlorxdotoolfor window management,import(ImageMagick) for screenshots - Windows: PowerShell 5.1+ (built-in), .NET Framework for UI Automation
- Node.js: 18+
License
MIT — use it however you want.
