<img src="https://github.com/pmh1314520/WebRPA/raw/v2.3.65/png/logo.png" width="100" alt="WebRPA Logo"/>
中文 · EN
A powerful visual web automation tool (with some support for Windows desktop automation and Android automation). Build automation workflows quickly by dragging and dropping modules — no coding required — to accomplish web data scraping, form filling, automated testing and more.
Important notice: This software is provided only as a technical tool. Users must comply with all applicable laws and regulations; the developer assumes no liability for how users use it. See the Disclaimer.
【Please download the latest 7z archive from Releases — the latest source code and runtime are all inside; extract and run.】
Support WebRPA development: Afdian page
WebRPA is a fully open-source, offline-capable visual Robotic Process Automation (RPA) tool. Built around a drag-and-drop workflow editor, it lets you compose web, desktop and mobile automation flows without writing a single line of code — covering data scraping, form filling, file processing, office automation and system integration.
The project ships with 560+ built-in modules and a self-healing AI assistant: describe what you need in one sentence and the AI builds, debugs and re-runs the workflow for you. Every runtime (Python 3.13, Node.js, the browser engine, and the media/document tools) is bundled — extract, double-click the launcher, and go. No internet and no extra installation required, which makes it a natural fit for intranet and LAN deployments.
Backed by 560+ built-in modules (organized by scenario, drag onto the canvas to use), WebRPA covers the following key capabilities:








Download the latest 7z archive from Releases, extract it, and launch the project with WebRPA启动器.exe (WebRPA Launcher):
WebRPA启动器.exeDefault URLs: - Backend: http://localhost:5241 (default port, configurable in the launcher) - Frontend: http://localhost:5921 (default port, configurable in the launcher)
The WebRPAConfig.json file in the project root lets you customize service ports and host addresses:
{
"backend": {
"host": "0.0.0.0",
"port": 5241,
"reload": false
},
"frontend": {
"host": "0.0.0.0",
"port": 5921
},
"frameworkHub": {
"host": "0.0.0.0",
"port": 3000
}
}
Configuration notes:
- host: service listening address (0.0.0.0 allows LAN access, 127.0.0.1 is local-only)
- port: service port (customizable to avoid conflicts)
- reload: backend hot reload (true for development, false recommended for production)
Restart the services after changing the configuration for it to take effect.
Notes:
- If a configured port is already in use, the service will fail to start and report a port conflict
- Make sure the configured ports are free, or change them to other available ports
- On Windows, use netstat -ano | findstr :PORT to check port usage
- The launcher automatically reads and saves the port settings in the configuration file
- You can also edit WebRPAConfig.json directly to configure ports
To modify the code for development:
# Backend
cd backend
../Python313/python.exe -m pip install -r requirements.txt
../Python313/python.exe run.py
# Frontend
cd frontend
../nodejs/npm install
../nodejs/npm run dev
WebRPA/
├── backend/ # Backend service (Python FastAPI)
│ ├── app/
│ │ ├── api/ # API routes (browser, system, triggers, etc.)
│ │ ├── executors/ # Module executors (core logic of 542 modules)
│ │ ├── models/ # Data models (workflows, variables, config, etc.)
│ │ └── services/ # Core services (browser management, task scheduling, etc.)
│ ├── data/ # Data files (AI models, config, etc.)
│ ├── uploads/ # Temporary storage for uploaded files
│ ├── ffmpeg.exe # Media processing tool
│ ├── ffprobe.exe # Media info tool
│ ├── pandoc.exe # Document conversion tool
│ ├── m3u8.exe # M3U8 video downloader
│ ├── requirements.txt # Python dependency list
│ └── run.py # Backend entry point
├── frontend/ # Frontend UI (React + TypeScript)
│ ├── src/
│ │ ├── components/ # UI components (workflow editor, config panel, etc.)
│ │ ├── store/ # State management (Zustand)
│ │ ├── services/ # API services, WebSocket communication
│ │ ├── types/ # TypeScript type definitions
│ │ └── lib/ # Utilities (Pinyin search, helpers, etc.)
│ ├── public/ # Static assets
│ ├── package.json # Frontend dependencies
│ └── vite.config.ts # Vite build config
├── frameworkHub/ # Workflow hub service (Node.js + Express)
│ ├── src/
│ │ ├── routes/ # API routes (workflow upload, download, search)
│ │ ├── middleware/ # Middleware (auth, logging, etc.)
│ │ └── utils/ # Utilities
│ ├── data/ # Workflow data storage (SQLite)
│ ├── package.json # Node.js dependencies
│ └── ecosystem.config.cjs # PM2 process config
├── Python313/ # Bundled Python 3.13 runtime
│ ├── Lib/ # Python standard library
│ ├── Scripts/ # Python executables
│ └── python.exe # Python interpreter
├── nodejs/ # Bundled Node.js 20 runtime
│ ├── node_modules/ # Global npm packages
│ └── node.exe # Node.js runtime
├── NapCat/ # QQ bot service (NapCat framework)
├── workflows/ # Local workflow storage directory
├── png/ # README screenshots
├── LICENSE # Open-source license (AGPL-3.0 + Commercial)
├── README.md # Project documentation
├── WebRPAConfig.json # Configuration file (ports, host, etc.)
└── WebRPA启动器.exe # One-click launcher (GUI)
The project ships with complete tutorials — click the "Tutorials" button in the toolbar to view them.
{variableName}$ claude mcp add WebRPA \
-- python -m otcore.mcp_server <graph>