LiberRPA is an RPA toolkit built for hands-on, down-to-earth engineers.
-
Open Source
- LiberRPA is released under the AGPLv3 license—this means that developers are obligated to share the source code of any project built on LiberRPA with its users, even if the service is provided via the web.
-
Free
- LiberRPA is completely free for both personal and commercial use.
-
Comprehensive Functionality
- Comparable to popular commercial RPA software, LiberRPA will consist of three core components:
-
Editor (fully developed and available)
- A desktop client for writing and running RPA projects.
- Already includes most local features found in popular commercial RPA software.
-
Executor (planned)
- A desktop client for scheduled execution of RPA projects.
-
Console (planned)
- A web server for managing Executors, data assets, and more.
- Supports internal network deployment without relying on public internet services.
-
- Comparable to popular commercial RPA software, LiberRPA will consist of three core components:
-
Core Features Built on Python (3.12) and VS Code (1.95+)
- Leverage the ecosystems of Python and VS Code to extend functionality beyond LiberRPA's built-in features.
- With a simple
Ctrl+MouseLeft
click, you can jump directly to the corresponding LiberRPA source code. If you encounter difficulties, besides contacting the developer, you can also send the source code to an AI for help.
Note: There are currently no plans to integrate popular AI-assisted programming features into LiberRPA.
-
Code-Driven Approach Over Graphical Interfaces
-
LiberRPA is not marketed as a low-code or no-code solution—it prioritizes a seamless coding experience for engineers.
-
LiberRPA will not for the sake of the limited convenience that a graphical interface might offer, to accept the consequence below:
- Waste your time,
- Reduce program efficiency,
- Increase maintenance complexity.
-
LiberRPA acknowledges the benefits of graphical interfaces in some scenarios, so it offers features like a snippets tree, UI analyzer, and flowchart to help engineers develop projects with less effort.
-
-
Security
-
LiberRPA can run offline and does not actively collect any of your information.
- Please note that because LiberRPA uses many open-source projects from conda-forge, PyPI, and npm, it cannot guarantee the security of these dependencies. For more details, please see Dependencies and Acknowledgments.
- If, in the future, LiberRPA needs to collect your information (for example, if a free public Console service is launched), a detailed explanation of the scope and purpose will be provided, and your data will be handled with care.
-
In addition to the open-source code on GitHub, browser extensions and VS Code extensions will also be published on the official marketplaces for review.
-
Due to the requirements of the AGPLv3 license, you have the right to request the source code of any project implemented with LiberRPA—even if you access the service via the web.
-
- Only supports Windows 10+ (Windows Server 2016+) platforms.
- Many mouse and keyboard operations may only work properly if your computer's screen scale is set to 100%.
- Still in development and not yet extensively tested—stability and bugs will be optimized based on user feedback.
A conda library named "liberrpa" with the following purposes:
- Execute Specific operations for RPA projects.
- Initialize LiberRPA on computers that do not have it installed.
- Communicate with the Chrome extension to pass WebSocket initialization information.
- Create a local Flask server to accomplish tasks that are difficult to achieve in a standalone Python project.
A Flask-based client that will start automatically on boot.
If you do not want it to start automatically, you can delete the file at this path: C:/Users/<username>/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/LiberRPALocalServer.exe - shortcut
Since LiberRPA is still in development, you might encounter some instability. If that happens, you can locate its icon in the system tray, right-click to exit, and then reopen LiberRPA/exeFiles/LiberRPALocalServer/LiberRPALocalServer.exe
to restart it.
A Chrome extension that must be installed and enabled to perform operations on browsers and HTML elements.
An Electron-based client designed to quickly select elements and build the selectors (a specific dictionary format) required for RPA operations.
LiberRPA Editor is essentially a modified version of the official portable VS Code—with altered default settings, added plugins, and custom resources. This means you can deploy LiberRPA on your familiar VS Code or modify the LiberRPA Editor according to your own preferences.
You can see VS Code User Guide to learn how to use LiberRPA Editor.
A VS Code extension used to manage the overall flow of RPA project, including project arguments and settings.
A VS Code extension for creating new RPA projects.
It offers multiple templates to choose from, and you can customize the templates to suit your needs.
A VS Code extension that displays built-in and user-defined code snippets. You can add code snippets to your Python files in the editor using these methods:
- Click on an item in the LiberRPA Snippets Tree with your mouse.
- Drag an item from the LiberRPA Snippets Tree with your mouse.
- Type the corresponding code snippet prefix in the editor.
If you're unfamiliar with creating conda environments and setting up VS Code, it's recommended that download the latest version of the main program's compressed package from this page. After downloading, extract it to your target folder. The final name of the LiberRPA root directory should be "LiberRPA_vX.X.X".
Extract the files to your target folder, then execute the InitLiberRPA.exe in the root directory to complete the initialization setup.
The LiberRPA Editor only creates data in the following locations (the file paths created by dependencies are not guaranteed):
- LiberRPA root folder
- You can move it to different directories or computers as needed. Simply follow the Initialization steps again, and your current VS Code settings will be preserved.
C:/Users/<username>/Documents/LiberRPA
- Stores logs, screenshots, custom code snippets, and more.
C:/Users/<username>/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup/
- Contains a shortcut for automatically starting LiberRPA Local Server:
LiberRPALocalServer.exe - shortcut
.
- Contains a shortcut for automatically starting LiberRPA Local Server:
- Regedit :
HKEY_CURRENT_USER\SOFTWARE\Google\Chrome\NativeMessagingHosts\com.liberrpa.chrome.msghost
- Used for Chrome extension initialization.
Currently, there is no uninstaller for LiberRPA. If you wish to uninstall it, you can simply clean the data from the 4 locations mentioned above.
The LiberRPA Chrome Extension has uploaded to the Chrome Web Store, and you can install it on your existing Chrome.
TODO: add link
You can open LiberRPA/Editor/vscode/Code.exe
, press the shortcut Ctrl+Shift+P
to open the Command Palette, and run LiberRPA:Create a New Project
to create a new RPA project.
For more details, check LiberRPA Project Manager.
You can modify some config of LiberRPA in LiberRPA/configFiles/basic.jsonc
.
// FineName: basic.jsonc
{
/*
Predefined variables:
${LiberRPA}: The value of "LiberRPA" in your computer's User Environment Variables. Since LiberRPA has a portability mechanism, so you should run the "InitLiberRPA.exe" in the LiberRPA root folder. It will add a "LiberRPA" variable in your computer's User Environment Variables.
${UserName}: The name of the user currently logged into the system.
${HostName}: The computer's hostname.
${ToolName}: Don't delete it, it is a flag to control subfolder name in "OutputLog".
*/
"LiberRPAPath": "${LiberRPA}",
"outputLogPath": "C:\\Users\\${UserName}\\Documents\\LiberRPA\\OutputLog\\${ToolName}\\",
"localServerPort": "52000",
"uiAnalyzerTheme": "light", // "light" or "dark"
"uiAnalyzerMinimizeWindow": "false" // "true" or "false"
}
LiberRPA relies on these projects to deliver its functionality. There might be some omissions—please excuse any oversights.
Name | Section | Source | License |
---|---|---|---|
bzip2 | Python | conda-forge | bzip2-1.0.6 |
ca-certificates | Python | conda-forge | ISC |
libexpat | Python | conda-forge | MIT |
libffi | Python | conda-forge | MIT |
liblzma | Python | conda-forge | 0BSD |
libsqlite | Python | conda-forge | Unlicense |
libzlib | Python | conda-forge | Zlib |
openssl | Python | conda-forge | Apache-2.0 |
pip | Python | conda-forge | MIT |
python | Python | conda-forge | Python-2.0 |
setuptools | Python | conda-forge | MIT |
tk | Python | conda-forge | TCL |
tzdata | Python | conda-forge | LicenseRef-Public-Domain |
ucrt | Python | conda-forge | LicenseRef-MicrosoftWindowsSDK10 |
vc | Python | conda-forge | BSD-3-Clause |
vc14_runtime | Python | conda-forge | LicenseRef-MicrosoftVisualCpp2015-2022Runtime |
vs2015_runtime | Python | conda-forge | BSD-3-Clause |
wheel | Python | conda-forge | MIT |
ipykernel | Python | conda-forge | BSD-3-Clause |
pywin32 | Python | conda-forge | PSF-2.0 |
screeninfo | Python | conda-forge | MIT AND BSD-3-Clause |
pywinhook | Python | conda-forge | MIT |
pyautogui | Python | conda-forge | BSD-3-Clause |
pyqt | Python | conda-forge | GPL-3.0-only |
pyqt-stubs | Python | conda-forge | GPL-3.0-or-later |
pynput | Python | conda-forge | LGPL-3.0-only |
keyboard | Python | conda-forge | MIT |
json5 | Python | conda-forge | Apache-2.0 |
psutil | Python | conda-forge | BSD-3-Clause |
pypdf | Python | conda-forge | BSD-3-Clause |
pathvalidate | Python | conda-forge | MIT |
pillow | Python | conda-forge | HPND |
python-mss | Python | conda-forge | MIT |
flask | Python | conda-forge | BSD-3-Clause |
flask-socketio | Python | conda-forge | MIT |
requests | Python | conda-forge | Apache-2.0 |
python-socketio | Python | conda-forge | MIT |
websocket-client | Python | conda-forge | Apache-2.0 |
pyperclip | Python | conda-forge | BSD-3-Clause |
sqlalchemy | Python | conda-forge | MIT |
psycopg2 | Python | conda-forge | LGPL-3.0-or-later |
pymysql | Python | conda-forge | MIT |
pymssql | Python | conda-forge | LGPL-2.1-only |
oracledb | Python | conda-forge | Apache-2.0 |
pandas | Python | conda-forge | BSD-3-Clause |
xlwings | Python | conda-forge | BSD-3-Clause |
ftputil | Python | conda-forge | BSD-3-Clause |
imapclient | Python | conda-forge | BSD-3-Clause |
yagmail | Python | conda-forge | MIT |
ffmpeg | Python | conda-forge | GPL-2.0-or-later |
uiautomation | Python | PyPI | Apache-2.0 |
easyocr | Python | PyPI | Apache-2.0 |
pystray | Python | PyPI | GPL-3.0, LGPL-3.0 licenses found |
pyzipper | Python | PyPI | MIT |
PyMuPDF | Python | PyPI | AGPL-3.0 |
mail-parser | Python | PyPI | Apache-2.0 |
chrome-inject-eval | liberrpa-chrome-extension | npm | MIT |
socket.io-client | liberrpa-chrome-extension ui-analyzer | npm | MIT |
vue | liberrpa-chrome-extension liberrpa-flowchart ui-analyzer | npm | MIT |
@logicflow/core | liberrpa-flowchart | npm | Apache-2.0 |
@logicflow/extension | liberrpa-flowchart | npm | Apache-2.0 |
lodash | liberrpa-flowchart ui-analyzer | npm | View license |
pinia | liberrpa-flowchart ui-analyzer | npm | MIT |
uuid | liberrpa-flowchart | npm | MIT |
vuetify | liberrpa-flowchart ui-analyzer | npm | MIT |
jsonc-parser | liberrpa-snippets-tree ui-analyzer | npm | MIT |
@mdi/font | ui-analyzer | npm | Apache-2.0 |
moment | ui-analyzer | npm | MIT |
Email:[email protected]
Since LiberRPA has components across different platforms, all changes will be recorded in the unified document.
This project is licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). Copyright (C) 2025 Jiyan Hu. For more details, see the LICENSE file.