yangpeng366

OpenEyes(开源点睛)

Community yangpeng366
Updated

OpenEyes - AI-friendly computer-use primitives (capture/detect/click) CLI + MCP server. Cross-platform via the platform accessibility tree. UIA-first (free, no ML), pluggable vision backend, Vimium-style grid fallback. MIT licensed.

OpenEyes(开源点睛)

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

License: MITPython 3.10+Windows / macOS / Linux

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

中文

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 (中文,含架构图 / 模块清单 / 路线图)

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

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

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.

Roadmap

  • 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.

MCP Server · Populars

MCP Server · New

    jonashertner

    OpenCaseLaw

    Open Swiss legal corpus + MCP server: 1M+ court decisions (1875–today), 21k laws, 10M-edge citation graph, 42 MCP tools. CC0 data, MIT code. Live at mcp.opencaselaw.ch

    Community jonashertner
    SystemCraftsman

    Strimzi Kafka CLI

    Command Line Interface for the Strimzi Kafka Operator

    Community SystemCraftsman
    DROOdotFOO

    Raxol

    Write one app, render it to a terminal, a browser, or as agent tools. The terminal for your Gundam.

    Community DROOdotFOO
    morluto

    REA: Reverse Engineer Anything

    Reverse engineer anything with agents, from app behavior down to native binaries.

    Community morluto
    nedlir

    MCPwner

    Model Context Protocol server for autonomous vulnerability discovery

    Community nedlir