Skip to main content
Glama

OpenSky

Universal Computer Use Engine & MCP Server

English | 简体中文

OpenSky is a cross-platform Computer Use engine and Model Context Protocol (MCP) server designed to enable AI agents (such as OpenCode, Reasonix, Claude Desktop, Cursor, Antigravity, and OpenAI Codex) to automate desktop operating systems and applications.

The project currently focuses on providing a native Windows driver, while maintaining a platform-agnostic interface layer to allow future drivers for macOS and Linux.


Key Design Principles

1. Dual-Track Interaction

  • UI Automation (Accessibility Tree): Parses the application control tree and assigns sequential numeric indices (e.g., [15] Button "Submit"). Agents can interact directly by index (win_click(elementIndex: 15) or win_set_value(elementIndex: 15, value: "...")). This approach is independent of display scaling (DPI) and eliminates the need to estimate pixel coordinates from images.

  • Visual Perception (Screenshots & Coordinates): Provides full-screen or window-specific screenshot capabilities. Agents can fall back to coordinate-based clicks and drags when interacting with non-standard controls, canvases, or web views.

2. Visual Feedback Overlay

Includes an overlay window built using Win32 layered transparent windows (WS_EX_TRANSPARENT | WS_EX_LAYERED):

  • Click Ripples: Displays a temporary expanding ring animation at the click position to indicate interaction points.

  • Window Highlight: Outlines the active target window.

  • Input Pass-Through: The overlay does not capture focus and does not interfere with user mouse and keyboard input.

3. Decoupled Architecture

  • Core Engine (src/core): Defines the platform-independent IComputerUseEngine interface and data models.

  • Transports (src/driver/transport): Inter-process communication abstraction (STDIO, Named Pipe).

  • Platform Drivers (src/driver):

    • Windows: Split into modular micro-services for window enumeration, screen capture, accessibility tree parsing, input synthesis, and overlay rendering. Compiled using the system built-in csc.exe.

    • macOS / Linux: Interface ready for future platform driver implementations.

  • Adapters (src/adapters): Includes the standard MCP server, Anthropic Computer Use bridge, and Codex plugin exporter.


Related MCP server: Windows MCP Server

Architecture

+-------------------------------------------------------------+
|                     AI Agent / Client                       |
|   (OpenCode, Reasonix, Claude Desktop, Cursor, Codex, etc.) |
+------------------------------+------------------------------+
                               |
+------------------------------v------------------------------+
|                       Adapters Layer                        |
|   - MCP Server (JSON-RPC)                                   |
|   - Anthropic Bridge (computer_20241022)                    |
|   - Codex Plugin Exporter                                   |
+------------------------------+------------------------------+
                               |
+------------------------------v------------------------------+
|                     Core Engine Interface                   |
|                     (IComputerUseEngine)                    |
+------------------------------+------------------------------+
                               |
               +---------------+---------------+
               |                               |
+--------------v---------------+ +--------------v---------------+
|        Windows Driver        | |    macOS / Linux (Planned)   |
|   (WinComputerUseHelper)     | |    (Accessibility / AT-SPI)  |
| - Window Management          | +------------------------------+
| - Screen Capture             |
| - UI Automation Tree         |
| - Input Simulation           |
| - Feedback Overlay           |
+------------------------------+

Requirements & Building

Requirements

  • Windows 10 / 11 (64-bit)

  • Node.js >= 20.0.0

  • pnpm

  • Built-in .NET Framework 4.8 (csc.exe located in C:\Windows\Microsoft.NET\Framework64\v4.0.30319\)

Build Steps

# Install dependencies
pnpm install

# Compile C# native helper and bundle TypeScript code
pnpm run build

# Run automated tests
pnpm test

Client Configuration

OpenCode

Add OpenSky to opencode.jsonc:

{
  "mcp": {
    "opensky": {
      "type": "local",
      "command": ["node", "/path/to/opensky/dist/bin/opensky.js"]
    }
  }
}

Reasonix / Google Antigravity / Cursor

The repository includes a .mcp.json file in the root directory, which is automatically recognized by supported clients:

{
  "mcpServers": {
    "opensky": {
      "command": "node",
      "args": ["./dist/bin/opensky.js"]
    }
  }
}

Claude Desktop

Add to %APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "opensky": {
      "command": "node",
      "args": ["/path/to/opensky/dist/bin/opensky.js"]
    }
  }
}

OpenAI Codex

Export OpenSky as a Codex plugin directory:

node dist/bin/opensky.js --export-codex ./opensky-codex-plugin

This generates .codex-plugin/plugin.json, .mcp.json, and skills/opensky/SKILL.md in the target directory.


Tool Reference

Tool Name

Parameters

Description

win_list_windows

None

Lists visible application windows with HWND, title, process name, and rectangle.

win_activate_window

hwnd: number

Brings target window to foreground and outlines it.

win_screenshot

hwnd?: number

Captures full desktop or target window, returning Base64 JPEG.

win_get_ui_tree

hwnd?: number, maxDepth?: number

Dumps accessibility tree with sequential element indices and discovered supported patterns.

win_invoke_element

elementIndex: number, action?: string, value?: string

Zero-Cursor: Directly triggers UI Automation Pattern (Invoke, Toggle, Select, SetValue) in memory without moving physical mouse or stealing focus.

win_click

elementIndex?: number, x?: number, y?: number

Clicks an indexed element or screen coordinate, triggering a visual ripple.

win_double_click

elementIndex?: number, x?: number, y?: number

Performs a double click.

win_right_click

elementIndex?: number, x?: number, y?: number

Performs a right click.

win_drag

startX, startY, endX, endY, durationMs?

Performs smooth mouse drag from start to end coordinates without screenshots.

win_type_text

text: string

Types Unicode text into the currently focused control.

win_press_key

key: string

Sends key or hotkey combination (e.g. Ctrl+S, Enter, Alt+F4, Win+R).

win_scroll

deltaY: number, x?: number, y?: number

Scrolls the mouse wheel at the specified position without screenshot overhead.

win_set_value

elementIndex: number, value: string

Sets control text directly using UI Automation ValuePattern.


License

This project is licensed under the MIT License.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to interact with Windows operating systems through native UI automation, file navigation, application control, and system commands. Provides seamless integration between LLMs and Windows environments for tasks like clicking, typing, launching apps, and capturing desktop state.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables comprehensive Windows desktop automation including screen capture, OCR text extraction, mouse/keyboard control, window management, process control, and clipboard operations through 25+ tools for AI agents.
    46 PyPI
    5
    MIT