Skip to main content

Exo Control

Realtime PC eyes and hands for any AI agent

Any model · MCP · CLI · Python
Compact. Leased. Honest.

MIT license PyPI Any harness

Install · Agent instructions · Safety · Exo Launcher

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 exo_exec · exo_screenshot · exo_help
CLI exo-control exec · exo-control script · exo-control doctor
Python from exo_control import ExoExecEngine

Works with Exo Launcher when it is installed. Not required.

Install

pip install exo-control
exo-control doctor

Optional browser CDP: pip install "exo-control[browser]" then playwright install chromium.

Pin: pip install "exo-control==2.1.0" or pip install "git+https://github.com/ImAvgErix/ExoControl.git@v2.1.0".

State lives under ~/.exo/. Legacy ~/.aether/ is migrated automatically.

MCP

{
  "mcpServers": {
    "exo-control": {
      "command": "python",
      "args": ["-m", "exo_control.slim_mcp_server"]
    }
  }
}

Do not set PYTHONPATH at a second tree. exo-control doctor reports shadowing.

Quick script

exo-control script examples/notepad.json
from 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"}. Drop AGENTS.md into any model's rules.

What it can do

Surface Ops
Desktop UIA click/type/fill, aimed wheel + scroll_into_view + hover, live eyes, lease, multi-monitor
Browser CDP snapshot refs, DOM click/type, page scrollBy / scrollIntoView
OS Allowrooted files, HKCU registry, processes/services, fuzzy launch

{"op":"help"} lists the core ops. detail=true is the full catalog.

Safety

  • One desktop lease; lease_status never returns the token
  • Destructive OS ops need confirm=true (agent assertion, not a human prompt)
  • Files stay in EXO_FILE_ROOTS unless the operator sets EXO_ALLOW_OUTSIDE_ROOTS=1
  • Hard denies: anti-cheat, unnamed PID kill, critical services, non-loopback CDP
  • SECURITY.md

Docs

Doc Role
AGENTS.md Drop-in agent instructions
docs/HARNESS.md Host install matrix
docs/LIVE-MODEL.md Lease / eyes / hands
docs/API-STABILITY.md 2.0 public surface
CHANGELOG.md Version history

License

MIT

Release files for exo-control 2.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for exo-control 2.1.0
File Size Uploaded
exo_control-2.1.0.tar.gz 160.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for exo-control 2.1.0
File Interpreter ABI Platform
exo_control-2.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 319.3 kB

Release files / exo_control-2.1.0.tar.gz

Download URL exo_control-2.1.0.tar.gz
Size 160.9 kB
Tags Source
SHA-256 checksum
How to use checksums
e788a3ed06028f4e7f3211ff3d5be3414081da5cbb8c2099313c4fa7cce47511
BLAKE2b-256 checksum
How to use checksums
1ddf8278c1d52976884b4277feda4be3803eeec94c1f2e404021ef9b3f2276b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 12, 2026.

Transparency log

Release files / exo_control-2.1.0-py3-none-any.whl

Download URL exo_control-2.1.0-py3-none-any.whl
Size 158.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3ac19ba69e4776537771f362cb54ae9470c908d55ce50670ee44cb3a30410241
BLAKE2b-256 checksum
How to use checksums
fe4b1d0b262760fc5e9c7f2984cf1cf86470a580ca004f2d69ec02da6316fe3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 12, 2026.

Transparency log

Release history Release notifications | RSS feed

2.5.0

2 release files

2.2.0

2 release files

This release

2.1.0 This release

2 release files

2.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page