Skip to content
Conduit

mcp server

openreverse

zhexulong/openreversecommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

This project does not publish an install method we can turn into a config. Follow the README instead.

README

synced Oct 21, 2026

OpenReverse

中文

OpenReverse is an agent-facing desktop interaction and evidence-collection harness for software you own or are expressly authorized to assess. It is built for bounded black-box investigation, semantic inference, and verification across desktop UI and network behavior.

Status

OpenReverse is experimental. It already supports real MCP-backed desktop and network sessions, but it should still be treated as an early product rather than a finished general-purpose platform.

Authorized Use

OpenReverse is intended for software, systems, and environments that you own or are explicitly authorized to inspect, test, verify, or modernize.

It is not intended for unauthorized access, indiscriminate collection against third-party targets, or bypassing protections outside an authorized workflow.

How To Think About OpenReverse

OpenReverse has two separate choices:

  • Interaction mode: how the agent interacts with the target application.
  • Network lane: how OpenReverse observes the target application's network behavior.

Interaction Modes

  • UIA uses Windows UI Automation for structured desktop interaction.
  • CUA uses a managed computer-use runtime when you need vision-driven interaction.

You do not need to use both. Pick the one that matches the target application and the evidence you need.

Network Lanes

  • proxy lane is the preferred path when the target can be routed through a proxy.
  • local lane is for cases where the target cannot be proxied and the host supports local capture.

Within the proxy lane, OpenReverse can work with either:

  • an application-owned proxy configuration
  • an external managed ingress setup

Mihomo is one example of an external managed ingress provider profile. It is not a separate lane.

Common Setups

  • Desktop-only verification: UIA or CUA, without a network lane.
  • Desktop plus proxied network observation: UIA or CUA with the proxy lane.
  • Desktop plus non-proxy capture: UIA or CUA with the local lane.

Quick Start

  1. Install dependencies:
npm install
  1. Wire OpenReverse into your agent host:
npm run init:agents -- --target=all /path/to/project
  1. If the CUA lane should read AI credentials from a specific env file, include it when wiring:
npm run init:agents -- --target=all --cua-env-file=/abs/path/to/.env.local /path/to/project
  1. If you plan to use the managed CUA runtime, install it and check readiness:
npm run install:cua-runtime
npm run doctor:cua-runtime
  1. If you plan to use network observation, install mitmproxy if needed and check readiness:
npm run install:mitmproxy
npm run doctor:network

Agent Host Wiring

scripts/cli-init.mjs is the supported wiring entrypoint, and npm run init:agents is its public wrapper.

It writes platform-native host config for:

  • Codex
  • Claude Code
  • Zed / OpenCode

In normal use, the host starts the relevant MCP servers automatically during real sessions. Most users should not manually run npm run mcp:uia, npm run mcp:cua, or npm run mcp:network as part of standard setup.

If host configuration needs to be refreshed, rerun:

npm run init:agents -- --target=all /path/to/project

Choosing Desktop Interaction

UIA

Use UIA when the target works well with Windows UI Automation and you want a more structured desktop control surface.

CUA

Use CUA when the target requires vision-driven interaction or when UIA coverage is not enough.

The supported end-user path is the managed windows-cua-lab runtime installed by:

npm run install:cua-runtime

Check readiness with:

npm run doctor:cua-runtime

If you do not want the default install location, set OPENREVERSE_CUA_RUNTIME_ROOT first.

On WSL, the recommended declaration form is a native Windows path:

export OPENREVERSE_CUA_RUNTIME_ROOT='C:\Users\Public\OpenReverse\runtime-deps'

OpenReverse accepts either a Linux mount path such as /mnt/c/... or a Windows path such as C:\Users\Public\OpenReverse\runtime-deps.

Choosing Network Observation

Proxy Lane

Use the proxy lane when the target application can be pointed at a proxy directly, or when your environment already has an external managed ingress path.

mitmproxy is an external dependency and is not vendored into this repository.

Useful user-facing entrypoints:

  • npm run install:mitmproxy
  • npm run doctor:network

Local Lane

Use the local lane when the target cannot practically be proxied and the host supports local capture.

The same network doctor is the first readiness check:

  • npm run doctor:network

Setup And Readiness

  • npm run init:agents -- --target=all /path/to/project wires supported agent hosts.
  • npm run install:cua-runtime installs the managed CUA runtime.
  • npm run doctor:cua-runtime checks whether the managed CUA runtime is ready.
  • npm run install:mitmproxy installs or guides setup for the network prerequisite.
  • npm run doctor:network checks whether the selected network capture path is ready.

Platform Notes

  • On WSL, the supported live network capture topology is wsl_to_windows.
  • When OPENREVERSE_CUA_RUNTIME_ROOT is declared as a Windows path on WSL, diagnostics preserve the declared Windows path while runtime internals use the corresponding local mount path.
  • Generated host config is user output, not hand-maintained source. If lane registration or CUA env-file location changes, rerun init:agents.

OpenReverse 中文

English

OpenReverse 是一个面向 agent 的桌面交互与证据采集 harness,适用于你自有或已获明确授权去评估的软件。它用于在黑盒条件下进行有边界的调查、语义推断与验证,覆盖桌面 UI 行为和网络行为。

当前状态

OpenReverse 仍处于实验阶段。它已经支持真实的 MCP 桌面与网络会话,但目前仍应视为早期产品,而不是已经完成的通用平台。

授权使用边界

OpenReverse 适用于你自有的软件、系统和环境,或你已经获得明确授权去观察、测试、验证或现代化改造的软件、系统和环境。

它不适用于未授权访问、针对第三方目标的无差别采集,或脱离授权工作流去绕过保护措施。

如何理解 OpenReverse

OpenReverse 里有两个独立选择:

  • 交互方式:agent 如何与目标应用交互。
  • 网络 lane:OpenReverse 如何观察目标应用的网络行为。

交互方式

  • UIA 使用 Windows UI Automation 提供结构化桌面交互。
  • CUA 在需要视觉驱动交互时使用受管 computer-use runtime。

你不需要同时使用两者。按目标应用特征和你需要的证据类型选择即可。

网络 Lane

  • proxy lane 适用于目标可以走代理的场景,也是优先推荐的路径。
  • local lane 适用于目标无法走代理、且宿主支持本地抓取的场景。

在 proxy lane 内,OpenReverse 可以对接两类方式:

  • 应用自己配置代理
  • 外部受管 ingress

Mihomo 只是外部受管 ingress provider profile 的一个例子,不是单独的一种 lane。

常见组合

  • 只做桌面验证:使用 UIA 或 CUA,不接网络 lane。
  • 桌面加代理网络观察:UIA 或 CUA 配合 proxy lane。
  • 桌面加非代理抓取:UIA 或 CUA 配合 local lane。

快速开始

  1. 安装依赖:
npm install
  1. 把 OpenReverse 接到你的 agent 宿主里:
npm run init:agents -- --target=all /path/to/project
  1. 如果 CUA lane 需要从指定 env 文件读取 AI 凭证,在接线时一并传入:
npm run init:agents -- --target=all --cua-env-file=/abs/path/to/.env.local /path/to/project
  1. 如果你准备使用受管 CUA runtime,先安装并检查就绪状态:
npm run install:cua-runtime
npm run doctor:cua-runtime
  1. 如果你准备使用网络观察,按需安装 mitmproxy 并检查就绪状态:
npm run install:mitmproxy
npm run doctor:network

Agent 宿主接线

scripts/cli-init.mjs 是受支持的接线入口,npm run init:agents 是它的公开包装。

它会为这些宿主写入平台原生配置:

  • Codex
  • Claude Code
  • Zed / OpenCode

正常使用时,宿主会在真实会话中自动启动对应的 MCP server。大多数用户不需要手动运行 npm run mcp:uia、npm run mcp:cua 或 npm run mcp:network。

如果宿主配置需要刷新,重新运行:

npm run init:agents -- --target=all /path/to/project

如何选择桌面交互

UIA

当目标应用适合 Windows UI Automation,且你希望获得更结构化的桌面控制面时,使用 UIA。

CUA

当目标需要视觉驱动交互,或者 UIA 覆盖不够时,使用 CUA。

面向终端用户的受支持路径,是通过下面的命令安装受管 windows-cua-lab runtime:

npm run install:cua-runtime

检查就绪状态:

npm run doctor:cua-runtime

如果你不想使用默认安装目录,先设置 OPENREVERSE_CUA_RUNTIME_ROOT。

在 WSL 上,推荐直接声明原生 Windows 路径:

export OPENREVERSE_CUA_RUNTIME_ROOT='C:\Users\Public\OpenReverse\runtime-deps'

OpenReverse 同时接受 Linux 挂载路径(如 /mnt/c/...)和 Windows 路径(如 C:\Users\Public\OpenReverse\runtime-deps)。

如何选择网络观察

Proxy Lane

当目标应用可以直接配置代理,或者环境里已经有外部受管 ingress 路径时,使用 proxy lane。

mitmproxy 是外部依赖,不随本仓库一起 vendored。

对用户最有用的入口是:

  • npm run install:mitmproxy
  • npm run doctor:network

Local Lane

当目标实际上无法走代理,且宿主支持本地抓取时,使用 local lane。

同样先用下面的 doctor 检查就绪状态:

  • npm run doctor:network

安装与就绪检查

  • npm run init:agents -- --target=all /path/to/project 为受支持的 agent 宿主生成接线配置。
  • npm run install:cua-runtime 安装受管 CUA runtime。
  • npm run doctor:cua-runtime 检查受管 CUA runtime 是否就绪。
  • npm run install:mitmproxy 安装或引导设置网络依赖。
  • npm run doctor:network 检查当前选择的网络抓取路径是否就绪。

平台说明

  • 在 WSL 上,当前受支持的实时网络抓取拓扑是 wsl_to_windows。
  • 当 OPENREVERSE_CUA_RUNTIME_ROOT 在 WSL 中以 Windows 路径声明时,诊断输出会保留该 Windows 路径,而运行时内部会使用对应的本地挂载路径。
  • 生成出来的宿主配置是用户侧输出,不是手工维护源码。如果 lane 注册或 CUA env 文件位置有变化,重新运行 init:agents。

社区

欢迎提交 issue 和 pull request!感谢 linux.do 社区的讨论和反馈,帮助我们不断完善这个项目。

↑↓ navigate openesc close