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, 2026OpenReverse
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
UIAuses Windows UI Automation for structured desktop interaction.CUAuses 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 laneis the preferred path when the target can be routed through a proxy.local laneis 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:
UIAorCUA, without a network lane. - Desktop plus proxied network observation:
UIAorCUAwith theproxy lane. - Desktop plus non-proxy capture:
UIAorCUAwith thelocal lane.
Quick Start
- Install dependencies:
npm install
- Wire OpenReverse into your agent host:
npm run init:agents -- --target=all /path/to/project
- 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
- If you plan to use the managed CUA runtime, install it and check readiness:
npm run install:cua-runtime
npm run doctor:cua-runtime
- If you plan to use network observation, install
mitmproxyif 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:mitmproxynpm 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/projectwires supported agent hosts.npm run install:cua-runtimeinstalls the managed CUA runtime.npm run doctor:cua-runtimechecks whether the managed CUA runtime is ready.npm run install:mitmproxyinstalls or guides setup for the network prerequisite.npm run doctor:networkchecks 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_ROOTis 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 中文
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。
快速开始
- 安装依赖:
npm install
- 把 OpenReverse 接到你的 agent 宿主里:
npm run init:agents -- --target=all /path/to/project
- 如果 CUA lane 需要从指定 env 文件读取 AI 凭证,在接线时一并传入:
npm run init:agents -- --target=all --cua-env-file=/abs/path/to/.env.local /path/to/project
- 如果你准备使用受管 CUA runtime,先安装并检查就绪状态:
npm run install:cua-runtime
npm run doctor:cua-runtime
- 如果你准备使用网络观察,按需安装
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:mitmproxynpm 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 社区的讨论和反馈,帮助我们不断完善这个项目。