# EchoAuto **Repository Path**: carlchai/echoauto ## Basic Information - **Project Name**: EchoAuto - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-26 - **Last Updated**: 2026-07-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # EchoAuto Windows 桌面自动化编排工具。 目标能力: - 用本地桌面软件承载 Web 编排界面。 - 用 OpenCV/OCR/UI Automation 感知桌面状态。 - 用鼠标、键盘、窗口管理和程序启动执行动作。 - 支持流程编排、录制模式、Python 自定义回调。 - 支持脚本导入导出,方便给其他人运行。 当前阶段:MVP 骨架实现。 ## 已实现 - Electron 桌面壳。 - Python FastAPI 本地后端。 - React/Vite 前端。 - 工作流创建、保存、加载、删除 API。 - 基础节点运行引擎: - 启动程序 - 等待 - 鼠标移动 - 鼠标点击 - 键盘输入 - 快捷键 - 截图 - OpenCV 模板匹配 - 简化版线性流程编辑界面。 - 运行日志和停止请求。 - 图片资产上传、读取和删除。 - 图像匹配快捷链:截图 -> OpenCV 模板匹配 -> 点击匹配中心。 - 录制模式:记录鼠标点击、键盘输入、快捷键,并将点击映射为模板匹配节点。 - `.echoauto` 导入导出。 - Python 回调脚本资产和基础示例。 ## 开发运行 安装前端依赖: ```powershell $env:ELECTRON_MIRROR='https://npmmirror.com/mirrors/electron/' npm install ``` 安装后端依赖: ```powershell python -m pip install -r backend\requirements.txt ``` 启动桌面开发环境: ```powershell npm run dev ``` 只启动后端: ```powershell npm run dev:backend ``` 构建前端: ```powershell npm run build ``` 详细设计见 [ARCHITECTURE.md](ARCHITECTURE.md)。 细化设计: - [工作流 DSL](docs/workflow-dsl.md) - [后端 API](docs/backend-api.md) - [前端交互设计](docs/frontend-design.md) - [MVP 开发路线](docs/mvp-plan.md) ## 图像匹配怎么用 最推荐的流程: 1. 先截取目标按钮、图标或稳定文字区域的一小块图片,上传到右侧“资产 -> 上传图片模板”。 2. 在中间“图像匹配快捷链”里选择这个模板。 3. 点击“插入匹配点击”,系统会自动追加三个节点: - `screenshot`,输出变量类似 `screenShot_1` - `image_match`,使用 `{{ screenShot_1.image }}` 作为源图,使用你选择的模板资产 - `mouse_click`,使用 `{{ imageMatch_1.center.x }}` 和 `{{ imageMatch_1.center.y }}` 点击匹配中心 4. 运行前可以在 `image_match` 节点里调整 `threshold`。常用范围是 `0.80` 到 `0.92`,图标稳定就调高,主题/缩放变化明显就调低一点。 5. 如果页面很大,建议给 `region` 设置搜索区域,既更快,也能减少误匹配。 模板图不要截太大。按钮或图标周围 48 到 120 像素通常更稳定;包含太多背景时,界面轻微变化就会影响置信度。 ## 录制模式怎么生成流程 点击“开始录制”后,后端会监听鼠标和键盘: - 鼠标点击:保存当前屏幕截图,并以点击点为中心裁剪一张模板图到资产目录。 - 键盘字符:连续输入会合并为一个 `keyboard_input` 节点,默认用剪贴板模式,适合中文和长文本。 - 快捷键:例如 `ctrl+l`、`ctrl+c` 会生成 `hotkey` 节点。 - 时间间隔:两个动作间隔超过约 700ms 会生成 `wait` 节点。 停止录制时,会生成一个“录制草稿”工作流。对于鼠标点击,优先生成: ```text 截图 -> 图像匹配点击点模板 -> 点击匹配中心 ``` 这样比固定坐标更稳。停止录制按钮本身可能也会被记录,所以停止接口默认丢弃最后约 800ms 的事件,减少多余节点。