OpenEyes

OpenEyes

MCP server providing AI-friendly computer-use primitives (capture, detect, click) to let LLM agents drive desktop GUI applications on Windows, macOS, and Linux.

Category
Visit Server

README

OpenEyes(开源点睛)

AI-friendly computer-use primitives for Windows / macOS / Linux. Capture. Detect. Click. Let any LLM agent drive any desktop GUI.

License: MIT Python 3.10+ Windows / macOS / Linux

GitHub: https://github.com/yangpeng366/openeyes · 中文 · English · Quick start · Architecture · Roadmap · License


<a id="中文"></a>

中文

OpenEyes(点睛) 是一个开源的 AI 友好电脑使用平台。基于「see → resolve → act」三段式原语,让任何 LLM agent 都能可靠地操控桌面 GUI 应用;提供 Vimium 风格字母 hint overlay 作为人类可调试的回退通道,并通过 MCP server 暴露给所有 agent。

为什么做这个

现状 痛点
Neverclick 闭源付费,仅 Windows,无 API
OmniParser / OS-Atlas 只做 detection,没有 actuation,模型重
Anthropic Computer Use / OpenAI Operator 仅 Linux VM,看不见本机,不可定制
UiBot / APA 录制型,对动态 UI 适应性差
pywinauto / xdotool 纯库,无 AI 友好的 element schema

OpenEyes 把这些能力合成一个 MIT 开源、跨平台、AI 友好的统一平台。

特性

  • AI 友好 element schema:每个 UI 元素输出结构化 JSON(bbox / center / control_type / name / automation_id / class / state)
  • 易点击:UIA 命中 → 自动点中心;不命中 → vision bbox → 点中心;都不命中 → 字母 hint overlay
  • 安全:默认 dry-run,所有状态改变操作可审计
  • MCP 优先:所有原语通过 MCP server 暴露给任何 agent
  • 可插拔 vision backend:OmniParser / Florence-2 / 自训练
  • 跨平台:Windows(首发)/ macOS / Linux,统一抽象

设计文档

完整设计书:https://my.feishu.cn/docx/Ul6gdMULGo5VfzxDVAYcVoX6n9e (中文,含架构图 / 模块清单 / 路线图)


<a id="english"></a>

English

OpenEyes is an open-source, AI-friendly computer-use platform. Built on a "see → resolve → act" pipeline, it lets any LLM agent reliably drive any desktop GUI. Includes a Vimium-style letter-hint overlay as a human-debuggable fallback, and exposes every primitive via MCP server for any agent.

Why

Today Pain
Neverclick Closed-source, paid, Windows-only, no API
OmniParser / OS-Atlas Detection only, no actuation, heavy models
Anthropic Computer Use / Operator Linux VMs only, opaque, no audit
UiBot / APA Record/playback, weak on dynamic UIs
pywinauto / xdotool Raw libs, no AI-friendly schema

OpenEyes fuses these into one MIT-licensed, cross-platform, AI-friendly platform.

Features

  • AI-friendly element schema — every interactive element exposes structured JSON
  • Easy click — UIA hit → bbox center; fallback vision bbox → center; final fallback letter hint
  • Safe by default — dry-run; full audit trail for state-changing actions
  • MCP-first — every primitive exposed as an MCP tool to any agent
  • Pluggable vision backend — OmniParser / Florence-2 / custom
  • Cross-platform — Windows (first), macOS, Linux, with one unified abstraction

<a id="quick-start"></a>

Quick start

Windows

git clone https://github.com/yangpeng366/openeyes.git
cd openeyes
pip install -e ".[windows,mcp]"

# 1. list visible top-level windows
eyes windows list

# 2. capture a window or the full screen
eyes capture --window 123456 --out shot.png

# 3. enumerate interactive elements
eyes detect --window 123456 --pretty

# 4. click by text (resolves to bbox center)
eyes click --window 123456 --name-contains "Submit" --dry-run
eyes click --window 123456 --name-contains "Submit" --go

# 5. start MCP server (for Codex / Claude / Cursor)
eyes-mcp

First showcase — 飞书 client

See examples/feishu_first_test.py.

python examples\feishu_first_test.py --dry-run

<a id="architecture"></a>

Architecture

┌────────────────────────────────────────────────────────────────┐
│  L5  Orchestration    Codex / Claude / Cursor / 自定义 Agent     │
├────────────────────────────────────────────────────────────────┤
│  L4  AI Layer         Intent → Element (LLM 驱动 + 缓存)        │
├────────────────────────────────────────────────────────────────┤
│  L3  Resolver         selector → coord   (UIA / Vision / Hint)  │
├────────────────────────────────────────────────────────────────┤
│  L2  Perceive         capture + detect    (UIA / AX / AT-SPI)    │
├────────────────────────────────────────────────────────────────┤
│  L1  Actuate          mouse / key / drag  (Win32 / CG / XTest)  │
├────────────────────────────────────────────────────────────────┤
│  L0  Platform         Windows / macOS / Linux                   │
└────────────────────────────────────────────────────────────────┘

See docs/architecture.md for the full design.


<a id="roadmap"></a>

Roadmap

  • [x] v0.1.0 — MVP: UIA capture/detect/click + CLI + MCP + 飞书 first showcase
  • [ ] v0.2.0 — Vision backend (OmniParser v2 / Florence-2)
  • [ ] v0.3.0 — macOS (AXUIElement) + Linux (AT-SPI)
  • [ ] v0.4.0 — Vimium-style letter hint overlay
  • [ ] v0.5.0 — LLM intent resolver
  • [ ] v0.6.0 — Audit log + replay
  • [ ] v1.0.0 — Rust hot path + cross-platform binaries

Repository layout

openeyes/
├── openeyes/              # main package
│   ├── core/              # windows + capture + detect + click primitives
│   │   ├── windows.py     # EnumWindows wrapper
│   │   ├── capture.py     # PIL.ImageGrab wrapper
│   │   ├── schema.py      # Element / WindowInfo dataclasses
│   │   ├── selector.py    # element find / filter
│   │   └── _platform.py   # cross-platform backend selection
│   ├── backends/
│   │   └── uia.py         # Windows UIA backend (pywinauto)
│   ├── actuators/
│   │   └── win32.py       # Windows mouse/keyboard input
│   ├── cli/               # `eyes` command
│   │   └── main.py
│   └── mcp/               # MCP server
│       └── server.py
├── examples/
│   ├── feishu_first_test.py
│   └── anyvpn_keepalive.py
├── tests/
│   └── test_smoke.py
├── .codex-plugin/
│   └── plugin.json
├── skills/openeyes/
│   └── SKILL.md
├── pyproject.toml
├── LICENSE                 # MIT
└── README.md

License

MIT — see LICENSE.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured