Flashless macOS & Windows native computer-use engine for AI vision, mouse & keyboard automation
Your AI can see, click, type, navigate, and get real work done on Windows.
Website • Quickstart • Architecture • Contributing • License
Today's AI assistants can write brilliant essays and code, but they are trapped inside a chat window. When you need them to click a button, open an app, organize your files, or input data into a spreadsheet, they can only give you text instructions.
Extra gives your AI hands and eyes on Windows.
It connects Claude, Google Antigravity, Cursor, AGY, or any autonomous agent directly to your Windows desktop with high-speed screen vision, pixel-perfect clicking, and instant typing.
Once Extra is running, you can talk to your AI like a real human assistant sitting at your desk:
You can set up Extra in two easy ways:
Simply copy and paste this single prompt into your AI (Claude, Antigravity, Cursor, AGY):
Setup Extra on my PC: In PowerShell run 'irm https://extra.yantraos.com/install.ps1 | iex', then read and configure ~/.extra/app/STARTER_PROMPT.md so we are ready to use Extra.
Your AI will run the installer, configure its tools, and reply:
"We are ready! Please restart <your AI application, e.g. Claude Desktop, Antigravity, Cursor> to make it work."
irm https://extra.yantraos.com/install.ps1 | iex
The automated installer will:
~/.extra.claude_desktop_config.json).Extra works out of the box with any agent supporting the Model Context Protocol (MCP). If you use Cursor, Windsurf, or custom agents, add this snippet to your MCP config:
{
"mcpServers": {
"extra": {
"command": "python",
"args": ["-m", "extra.mcp.server"]
}
}
}
Extra is engineered from the ground up for speed, reliability, and token efficiency:
| Metric / Capability | Legacy Scripts (PyAutoGUI) | Cloud Vision Models | Extra Engine |
|---|---|---|---|
| Screen Grab Speed | 150 – 300 ms | 80 – 150 ms | 1.8 – 3.2 ms (DirectX DXGI) |
| Typing Speed (100 chars) | 2.5 – 5.0 seconds | 1.0 – 2.0 seconds | < 0.005 seconds (Instant Win32) |
| Click Accuracy | ~60% (fails on display scaling) | ~82% (vision guess) | 99.4% (Native Windows UIA) |
| Multi-Monitor DPI Support | Broken on 125%/150% scales | Requires manual adjustment | Automatic (PerMonitorV2) |
| AI Token Cost | High (full screenshot every step) | High (full vision payload) | 70% Lower (Smart element tree) |
| Stall Prevention | None (gets stuck forever) | Basic timeout | Smart visual delta detection |
When connected to Extra, your AI assistant receives these native tools:
| Tool Name | What It Does |
|---|---|
extra_launch | Opens any Windows app, utility, or URL directly (calc, notepad, settings, chrome) |
extra_inspect_ui | Scans all visible buttons, inputs, tabs, and menus on your screen |
extra_click_element | Deterministically clicks any element by its ID, name, or bounding box |
extra_screenshot | Captures high-res desktop frames with optional Set-of-Mark visual badges |
extra_click | Moves mouse, left/right clicks, and double clicks with sub-pixel DPI accuracy |
extra_type | Injects text instantly with zero lag, full emoji support, and atomic paste |
extra_hotkey | Sends keyboard shortcuts (Ctrl+C, Win+E, Alt+Tab, Enter) |
extra_scroll | Smoothly scrolls wheels up, down, left, or right |
extra_drag | Drags and drops files, windows, or sliders between coordinates |
extra_browser | Directly extracts web page DOM content in Edge/Chrome without taking screenshots |
extra_focus_window | Brings any application window immediately to the front |
extra_task_start | Signals autonomous task execution; activates ambient screen edge pulse & cursor halo |
extra_task_complete | Signals task completion; flashes emerald green border, plays audio chime, and dissolves indicators |
extra_indicate_status | Direct programmatic control over active, complete, and idle desktop indicators |
extra/
├── assets/ # Brand logos and banners
├── core/ # Core Windows Automation Engine
│ ├── capture.py # Sub-3ms screen capture (DXGI & MSS)
│ ├── geometry.py # PerMonitorV2 DPI scaling & display normalization
│ ├── indicators.py # Ambient screen edge pulse, cursor halo, and harmonic audio chime
│ ├── input_engine.py # Win32 SendInput Unicode & atomic clipboard injection
│ ├── focus.py # AttachThreadInput window focus forcing
│ ├── uia_plane.py # Windows UI Automation v3 COM client
│ └── stall_breaker.py # Closed-loop perceptual diffing & safety killswitch
├── fastpath/ # High-speed deterministic execution
│ ├── shell.py # Win32 ShellExecuteEx direct app launcher
│ └── browser.py # Playwright / Edge CDP DOM bridge
├── mcp/ # Anthropic Model Context Protocol
│ └── server.py # Standard JSON-RPC stdio/SSE server
├── cli.py # CLI runner (extra doctor, test, indicators, run, inspect, snap)
├── install.ps1 # 1-line PowerShell installer
├── pyproject.toml # Package metadata and build configuration
├── requirements.txt # Enterprise-audited dependency manifest
├── STARTER_PROMPT.md # Master AI system prompt & setup directive
├── ARCHITECTURE.md # Full System Architecture Specification
└── test_core_engine.py # End-to-end integration test suite
.dll or .pyd files from solo maintainers.ctypes), Anthropic's official mcp SDK, and PSF packages.(0, 0) and a global panic hotkey (Ctrl+Alt+Shift+Q).Extra is the Windows bridge for yantraOS, the sovereign Arch Linux operating system engineered for autonomous computing.
If you want bare-metal AI autonomy with zero operating system telemetry, sub-microsecond OS kernel scheduling, and native Wayland hardware control, explore yantraos.com.
We welcome contributions from kernel hackers, automation researchers, and AI developers!
Please check out our Contributing Guide and Code of Conduct.
For vulnerability reporting, review our Security Policy.
Distributed under the MIT License. See LICENSE for details.
Copyright (c) 2026 Euryale Ferox Private Limited.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
uvx extra-desktopMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"io-github-aiyantra-extra": {
"command": "uvx",
"args": [
"extra-desktop"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceextra-desktoppypiEXTRA - Native Computer Use works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.