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

Until the PyPI release is live:

pip install "git+https://github.com/ImAvgErix/ExoControl.git@v2.0.0"
exo-control doctor

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

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, lease, multi-monitor, UI memory
Browser CDP snapshot refs, DOM click/type
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.0.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.0.0
File Size Uploaded
exo_control-2.0.0.tar.gz 151.7 kB Details

Built distribution (wheel)

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

Total release size: 302.6 kB

Release files / exo_control-2.0.0.tar.gz

Download URL exo_control-2.0.0.tar.gz
Size 151.7 kB
Tags Source
SHA-256 checksum
How to use checksums
c072e8bb754675d6af61e3c4d4e5505ac36f5dff55e233754f228082645279ed
BLAKE2b-256 checksum
How to use checksums
5cc3a8347830ffaf843589d61f2693414e6879ed8ea9626a26e8aa49f9d58e6e
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.0.0-py3-none-any.whl

Download URL exo_control-2.0.0-py3-none-any.whl
Size 151.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
433d229610bb3f757a2516d217227998095eb166c1d6cee6299cadd571706ba1
BLAKE2b-256 checksum
How to use checksums
f9c9443e8a4cf0ae964e311889c619444139d7b5cc1c798976e5cda5df67c415
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

2.1.0

2 release files

This release

2.0.0 This release

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