ExoControl
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ExoControlOpen Chrome and search for 'best MCP servers'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Exo Control is a Windows Python library that gives any AI eyes and hands on the desktop. Same ops over MCP, CLI, or Python. Not an app and not a Setup.exe — install with pip.
How the AI talks | Entry |
MCP |
|
CLI |
|
Python |
|
Works with Exo Launcher when it is installed. Not required.
Install
pip install exo-control
exo-control doctorOptional extras:
pip install "exo-control[browser]" # Playwright CDP
playwright install chromium
pip install "exo-control[web]" # Browser Use web expert (optional)Pin: pip install "exo-control==2.4.0" or pip install "git+https://github.com/ImAvgErix/ExoControl.git@v2.4.0".
State lives under ~/.exo/. Legacy ~/.aether/ is migrated automatically.
Related MCP server: ComputerMate
MCP
{
"mcpServers": {
"exo-control": {
"command": "python",
"args": ["-m", "exo_control.slim_mcp_server"]
}
}
}aether_* tools register only when EXO_MCP_ALIASES=1. Prefer exo_*.
Do not set PYTHONPATH at a second tree. exo-control doctor reports shadowing.
Quick script
exo-control script examples/notepad.jsonfrom exo_control import ExoExecEngine
ExoExecEngine().execute({
"steps": [
{"op": "lease_acquire", "agent_id": "demo", "task": "notepad", "ttl_sec": 90},
{"op": "launch", "app": "notepad"},
{"op": "type", "text": "hello from Exo Control"},
{"op": "verify", "text": "hello from Exo Control"},
],
"finally": [
{"op": "window_close", "title": "Notepad", "discard_unsaved": True},
{"op": "lease_release"},
],
})Failed steps do not attach screenshots unless screenshot_on_fail: true. Use {"op":"last_error"}. Harness install is in docs/HARNESS.md.
What it can do
Surface | Ops |
Desktop | UIA click/type/fill, aimed wheel + |
Browser | CDP snapshot refs, DOM click/type, page |
OS | Allowrooted files, HKCU registry, processes/services, fuzzy launch |
Search | Lease-free |
Cloud browser | Browser Use |
Web extract |
|
Docs / find |
|
Memory / history |
|
Mail / calendar |
|
Desk extras |
|
Wave 2 |
|
Waves 3–5 | Graph writes, CDP extras, |
Pilot | Original layer: |
Ready | Honest |
Windows natives | Stock volume/lock/wifi/power/recycle/TTS/dialog/dark_mode/idle/ports/Defender (no extra pip) |
Live seat |
|
Key-gated rows fail closed; {"op":"ready"} is the map; stt is a stub.
| Desktop | UIA click/type/fill, right/double click, menu, copy/paste, aimed wheel + scroll_into_view + hover, live eyes, find, lease, multi-monitor, window move/resize/snap |
| Browser | CDP snapshot refs, DOM click/type, page scroll, tabs/back/extract; web_task for multi-step jobs |
| OS | Allowrooted files (+ hash/zip/watch/reveal), HKCU registry, processes/services, drives, os_info, audio/power/idle, wifi, recycle, winget, ms-settings: |
| Session | Persistent prefs, plan, checkpoint, recover |
{"op":"help"} lists the core ops. detail=true is the full catalog. find searches the last read. pc is the owner snapshot (volume, power, idle, wifi). exo-control pc from a shell.
Safety
One desktop lease;
lease_status/session_statusnever return the tokenDestructive OS ops need
confirm=true(agent assertion, not a human prompt) unless Full-Trust is onFiles stay in
EXO_FILE_ROOTSunless the operator setsEXO_ALLOW_OUTSIDE_ROOTS=1(Full-Trust widens user-profile roots only)Hard denies in default/trusted: anti-cheat, unnamed PID kill, critical services, HKLM write, Windows/System32 writes, non-loopback CDP
Full-Trust owner mode lifts those denials and auto-elevates privileged ops through a broker (MCP stays medium IL). First admin op may UAC once.
Human kill-switch: create
~/.exo/KILLorexo-control trust kill— agents cannot disarm it
Full-Trust (“this is my PC”)
Default install stays safe. Full-Trust is explicit and reversible:
exo-control trust enable --ack "I own this PC"(one-time human ack + audit log)Set
EXO_TRUST=full(orEXO_FULL_TRUST=1) on the MCP/CLI process and restart itexo-control trust statusshould show"level": "full"
While Full-Trust is on, confirms are optional, the disk is in play, and privileged OS ops (HKLM, Program Files, services, anti-cheat) go through an elevated broker. The desktop MCP stays unelevated so clicks still work. One UAC to install the broker; after that it starts with the logon task.
exo-control elevate status
exo-control elevate installCreate ~/.exo/KILL to freeze hands immediately. That file is the only remaining agent-proof stop.
Docs
Doc | Role |
Host install matrix | |
Lease / eyes / hands | |
Capability bar | |
Version history |
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Eyes and hands on real Windows PCs — observe, click, type via Glasswarp API.
Give your AI hands. Identity, credential vault, and API gateway for autonomous agents.
Securely control computers you explicitly pair through files, terminals, processes, screenshots, desktop UI/input, clipboard, browser automation, diagnostics, and document tools.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to safely perform actions on your computer including file system management, command execution, clipboard access, application launching, and local search with license-based monetization built in.-
- AlicenseNot gradedqualityDmaintenanceEnables AI to control a computer through mouse, keyboard, and screen capture tools, with support for local native and Docker sandboxed environments.5 npm5MIT
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with the Windows desktop environment, including browser control, clipboard, file management, GitHub, Roblox Studio, OCR, and more, with a privileged approval system for risky actions.-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to see and control your desktop with tools for screenshots, clicks, typing, and more, all locally on macOS and Windows.144 npmMIT