Skip to content

LiberRPA is an RPA toolkit built for hands-on, down-to-earth engineers.

License

Notifications You must be signed in to change notification settings

HUHARED/LiberRPA

Repository files navigation

LiberRPA icon

LiberRPA

LiberRPA is an RPA toolkit built for hands-on, down-to-earth engineers.

Features

  • 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.
  • 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.

Limitations

  • 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.

Components

LiberRPA architecture

Python Library

A conda library named "liberrpa" with the following purposes:

LiberRPA Local Server

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.

LiberRPA Chrome Extension

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.

VS Code

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.

Getting Started

Download Compressed Package

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".

Initialization

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.
  • 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.

Install Chrome Extension

The LiberRPA Chrome Extension has uploaded to the Chrome Web Store, and you can install it on your existing Chrome.

TODO: add link

Create Project

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.

Configuration

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"
}

Dependencies and Acknowledgments

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

Get in Touch

Issues

Discussions

Telegram

Email:[email protected]

Change Log

Since LiberRPA has components across different platforms, all changes will be recorded in the unified document.

License

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.

About

LiberRPA is an RPA toolkit built for hands-on, down-to-earth engineers.

Resources

License

Stars

Watchers

Forks

Packages

No packages published