Open-Source RPA Studio — Визуальная автоматизация для разработчиков
Скачать · Быстрый старт · Документация · Библиотеки · Дорожная карта · Участие в проекте
RPAForge — современная open-source студия роботизированной автоматизации процессов (RPA). Проектируйте сценарии автоматизации визуально, отлаживайте их пошагово и запускайте с производительным Python-движком — без привязки к вендору и лицензионных сборов.
from rpaforge import StudioEngine
from rpaforge_libraries.DesktopUI import DesktopUI
engine = StudioEngine()
engine.executor.register_library("DesktopUI", DesktopUI())
builder = engine.create_process("Notepad Automation")
builder.add_task("Open and Type", [
("DesktopUI.Open Application", {"executable": "notepad.exe"}),
("DesktopUI.Wait For Window", {"title": "Notepad", "timeout": "10s"}),
("DesktopUI.Input Text", {"text": "Hello from RPAForge!"}),
("DesktopUI.Close Window", {}),
])
result = engine.run(builder.build())
print(f"Status: {result.status}")Просто хотите пользоваться RPAForge? Скачайте свежий установщик для Windows со страницы релизов. Установщик содержит вшитый Python-движок, поэтому отдельная установка Python не нужна — установите, запустите и начинайте создавать автоматизации.
Если хотите собрать из исходников — см. Быстрый старт ниже.
| Визуальный дизайнер | Конструктор процессов с drag-and-drop на базе React Flow — узлы, связи, подсхемы, масштабирование, мини-карта |
| Генерация диаграмм через ИИ | Опишите процесс простым языком и получите черновик диаграммы — модели OpenAI-совместимые или Anthropic, с валидацией и предпросмотром «Применить/Отклонить» перед вставкой на канвас |
| Встроенный отладчик | Точки останова, пошаговое выполнение (с обходом/входом/выходом), инспектор переменных, стек вызовов, условные остановки |
| 14 RPA-библиотек | 120+ готовых действий для Desktop, Web, Excel, DataFrames, базы данных, OCR, HTTP, учётных данных и многого другого |
| Python Bridge | Asyncio JSON-RPC сервер — Electron взаимодействует с Python по IPC с полной типобезопасностью |
| Генерация кода | Диаграмма → Python, с валидацией топологии перед каждым запуском |
| Безопасность | Защита от SQL-инъекций, path traversal, небезопасного getattr и валидация IPC-пакетов (v0.3.1) |
| Постоянное хранилище | Автосохранение процессов, переменных и истории выполнения в IndexedDB |
| Многоязычность | Интерфейс и логирование библиотек на английском, русском, немецком, испанском и китайском — помогите перевести на новый язык |
| Кроссплатформенность | Windows, macOS, Linux — единая кодовая база |
┌──────────────────────────────────────────────────────────────────┐
│ RPAForge Studio (Electron 42 + React 19 + TailwindCSS 4) │
│ │
│ Designer │ Debugger │ Console │ Recorder │
│ React Flow · Monaco Editor · Zustand · Vite 8 │
└────────────────────────────┬─────────────────────────────────────┘
│ JSON-RPC over IPC / Stdio
┌────────────────────────────┴─────────────────────────────────────┐
│ Python Bridge Server (asyncio JSON-RPC) │
│ │
│ StudioEngine · ProcessRunner · Debugger · Recorder │
│ CodeGenerator · Topology Validator │
└────────────────────────────┬─────────────────────────────────────┘
│
┌────────────────────────────┴─────────────────────────────────────┐
│ RPA Libraries (14 modules · 120+ activities) │
│ │
│ DesktopUI WebUI Excel Database OCR Credentials │
│ File HTTP DateTime String Flow Variables Spy … │
└──────────────────────────────────────────────────────────────────┘rpaforge/
├── packages/
│ ├── core/ # Python-движок — runner, debugger, bridge, codegen
│ ├── libraries/ # Модули RPA-библиотек
│ ├── studio/ # Десктопное приложение Electron + React
│ └── orchestrator/ # Control Tower (планируется)
├── docs/ # Документация MKDocs
├── .github/ # CI/CD workflows (ci, release, codeql, docs)
└── tools/ # Скрипты релиза| Инструмент | Версия |
|---|---|
| Python | 3.10 – 3.13 |
| Node.js | 20+ |
| pnpm | 9+ (или npm 9+) |
| Git | любая |
| VS Build Tools | только Windows, для нативных модулей |
# 1. Клонирование
git clone https://github.com/chelslava/rpaforge.git
cd rpaforge
# 2. Python-пакеты (режим разработки)
pip install -r requirements-dev.txt
pre-commit install
pip install -e packages/core
pip install -e packages/libraries
# 3. Studio UI
cd packages/studio
pnpm install # или: npm ci --include=optional
# 4. Проверка
cd ../..
pytest packages/core/tests -v
cd packages/studio && pnpm test && cd ../..cd packages/studio
pnpm dev # Vite dev server + Electron hot-reload🪟 Windows 11
Требования:
- Python 3.10+ (скачать с python.org)
- Node.js 20+ и pnpm (скачать с nodejs.org)
- Visual Studio Build Tools (требуется для нативных модулей)
# Скачать с: https://visualstudio.microsoft.com/visual-cpp-build-tools/
Установка:
# Клонирование и настройка
git clone https://github.com/chelslava/rpaforge.git
cd rpaforge
# Создание виртуального окружения
python -m venv .venv
.venv\Scripts\activate
# Установка зависимостей
pip install -r requirements-dev.txt
pre-commit install
pip install -e packages/core
pip install -e packages/libraries
# Установка Studio
cd packages/studio
pnpm install
pnpm devЗапуск из PowerShell:
# Python-тесты
pytest packages/core/tests -v
pytest packages/libraries/tests -v
# Studio
cd packages/studio
pnpm dev
pnpm test🍎 macOS (Intel & Apple Silicon)
Требования:
# Установка Xcode Command Line Tools
xcode-select --install
# Установка Homebrew (если не установлен)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# Установка необходимых инструментов
brew install python@3.12 node pnpmУстановка:
# Клонирование и настройка
git clone https://github.com/chelslava/rpaforge.git
cd rpaforge
# Создание виртуального окружения
python3 -m venv .venv
source .venv/bin/activate
# Установка зависимостей
pip install -r requirements-dev.txt
pre-commit install
pip install -e packages/core
pip install -e packages/libraries
# Установка Studio
cd packages/studio
pnpm install
pnpm devПримечание для Apple Silicon (M1/M2/M3):
# Некоторые зависимости требуют нативной сборки, убедитесь что Xcode установлен полностью
xcode-select --install
# Если возникают проблемы, сбросьте путь Xcode
sudo xcode-select --reset🐧 Linux (Ubuntu/Debian/Fedora)
Требования для Ubuntu/Debian:
# Обновление списка пакетов
sudo apt-get update
# Установка системных зависимостей
sudo apt-get install -y \
python3.12 python3.12-venv python3.12-dev \
nodejs npm \
build-essential \
git
# Установка pnpm
npm install -g pnpmТребования для Fedora/RHEL:
# Установка системных зависимостей
sudo dnf install -y \
python3.12 python3.12-devel \
nodejs npm \
gcc g++ make \
git
# Установка pnpm
npm install -g pnpmТребования для автоматизации рабочего стола (опционально):
# Ubuntu/Debian
sudo apt-get install -y libnss3 libnspr4 libatk-bridge2.0-0 libdrm2 libxkbcommon0 libgbm1
# Fedora/RHEL
sudo dnf install -y nss nspr atk libdrm libxkbcommon libgbmУстановка:
# Клонирование и настройка
git clone https://github.com/chelslava/rpaforge.git
cd rpaforge
# Создание виртуального окружения
python3.12 -m venv .venv
source .venv/bin/activate
# Установка зависимостей
pip install -r requirements-dev.txt
pre-commit install
pip install -e packages/core
pip install -e packages/libraries
# Установка Studio
cd packages/studio
pnpm install
pnpm devПоддержка OCR (все платформы)
pip install -e "packages/libraries[ocr]"
# Windows: https://github.com/UB-Mannheim/tesseract/wiki
# Linux: sudo apt-get install tesseract-ocr
# macOS: brew install tesseractВеб-автоматизация (Playwright)
pip install -e "packages/libraries[web]"
playwright install # Загружает бинарные файлы браузеров| Библиотека | Действия | Описание | Доп. зависимости |
|---|---|---|---|
| DesktopUI | 20+ | Автоматизация Windows UI — Win32, WPF, Java | pywinauto, pillow |
| WebUI | 15+ | Автоматизация браузеров (Chrome, Firefox, Safari) | playwright |
| Excel | 8+ | Чтение/запись XLSX-таблиц | openpyxl |
| DataFrames | 28+ | Операции с табличными данными — фильтр, сортировка, объединение, агрегация | polars |
| Database | 6+ | SQL-запросы через SQLAlchemy ORM | sqlalchemy |
| OCR | 5+ | Распознавание текста — Tesseract + EasyOCR | pytesseract, easyocr |
| Credentials | 4+ | Зашифрованное хранилище учётных данных ОС | cryptography, keyring |
| File | 8+ | Операции с файлами и папками | — |
| HTTP | 5+ | REST API запросы | requests |
| DateTime | 6+ | Утилиты для работы с датой и временем | — |
| String | 7+ | Манипуляции со строками | — |
| Variables | 4+ | Управление переменными и областями видимости | — |
| Flow | 4+ | Управление потоком — if, while, for | — |
| Spy | 3+ | Инспектор UI-элементов в реальном времени | uiautomation, pynput |
Устанавливайте только необходимое:
pip install -e "packages/libraries[desktop]" # DesktopUI
pip install -e "packages/libraries[web]" # WebUI
pip install -e "packages/libraries[dataframes]" # DataFrames (polars)
pip install -e "packages/libraries[all]" # Всёmake test # Запуск всех Python-тестов
make lint # ruff + mypy
make format # ruff format
make docs # Сборка MKDocs
make docs-serve # Локальный сервер документации
make studio-dev # Studio hot-reload
cd packages/studio
pnpm test # Vitest
pnpm build # Продакшен-сборкаBackend (Python)
asyncioJSON-RPC мостruffдля линтинга и форматированияpytest+pytest-asyncioдля тестированияmypyдля проверки типов
Frontend (TypeScript)
- React 19 + Vite 8
- React Flow 11 — визуальный редактор диаграмм
- Zustand 5 — управление состоянием
- Monaco Editor — встроенный редактор кода
- TailwindCSS 4 — утилитарные стили
- Electron 42 — упаковка в десктопное приложение
| Пакет | Описание | Версия | Статус |
|---|---|---|---|
rpaforge-core |
Движок, отладчик, JSON-RPC мост | v0.3.5 | ✅ Стабильный |
rpaforge-libraries |
14 RPA-библиотек | v0.3.5 | ✅ Стабильный |
rpaforge-studio |
Electron + React десктопный UI | v0.3.5 | 🔄 Альфа |
rpaforge-orchestrator |
Центр управления | — | 🔜 Планируется |
- ✅ Защита от SQL-инъекций, path traversal, небезопасного
getattr - ✅ Валидация IPC-пакетов со строгим соблюдением схемы
- ✅ Инфраструктура IndexedDB — автосохранение, переменные, история
- ✅ Встроенная Python-валидация на базе Ruff с подсветкой ошибок
- ✅ Постоянное логирование с ротацией файлов
- ✅ Режим заморозки для оверлея Spy
- ✅ Сериализованная блокировка жизненного цикла для
_handle_run_diagram— устранение состояний гонки при параллельном выполнении - ✅ Безопасное разрешение пути к
ruffчерезshutil.which() - ✅ Аудит безопасности зависимостей — устранено 14 предупреждений Dependabot через npm overrides
- ✅ Библиотека DataFrames — 28 действий для табличных данных на базе Polars (загрузка, фильтрация, сортировка, объединение, агрегация и другое)
- ✅ Тип переменной DataFrame — первоклассный тип
dataframeв визуальном дизайнере - ✅ Визуальный просмотр таблиц в отладчике — просмотр содержимого DataFrame в точке останова
- ✅ Исправления i18n — все строки UI переведены на английский и русский
- ✅ Тур онбординга — приветственный тур с экраном загрузки и индикатором прогресса
- ✅ Иконка приложения и заставка — полированный процесс запуска с инициализацией
- ✅ Error boundary — улучшенная обработка ошибок компонентов
- ✅ i18n: тур онбординга полностью переведён на все поддерживаемые языки (en, ru, de, es, zh)
- ✅ Китайский язык (zh) — добавлен полный перевод интерфейса
- ✅ Локали встроены в приложение для работы офлайн и по протоколу
file://
- ✅ Самодостаточный установщик для Windows — Python-движок заморожен через PyInstaller и встроен, отдельная установка Python пользователю не нужна
- ✅ Вшитые Playwright Chromium и Tesseract OCR — веб-автоматизация и OCR работают из коробки
- ✅ Исправлено «Не удалось загрузить активности» в установленных сборках — мост запускает вшитый движок с увеличенным окном холодного старта
- ✅ Умный рекордер действий — запись и воспроизведение действий пользователя (UI реализован)
- ✅ Извлечение селекторов и самовосстанавливающиеся локаторы (панель SelectorBuilder реализована)
- ✅ Улучшения панели «Обозреватель переменных» (группировка по области видимости и метки типов реализованы)
- ✅ Браузер истории выполнения (панель и Zustand-хранилище реализованы)
- ✅ UI для маппинга параметров подсхем (ParameterMappingDialog реализован)
- ✅ Система плагинов и SDK для разработки библиотек (discovery через entry points, decorator API, пример-пакет + гайд реализованы; CLI-скаффолд и маркетплейс — ещё в планах)
- ✅ Интеграция с системой контроля версий (git-aware projects) (панель Source Control — статус/staging/commit/push/pull/diff/история, настройка remote URL — реализовано)
- Маркетплейс шаблонов проектов
- Оркестратор — Control Tower для выполнения на нескольких машинах
- Планировщик и движок триггеров
- Расширенный мониторинг и оповещения
- Корпоративная аутентификация (LDAP/SSO)
| Ресурс | Описание |
|---|---|
| Начало работы | Установка и настройка системы |
| Быстрый старт | Создайте свою первую автоматизацию |
| Руководство разработчика | Архитектура, паттерны, соглашения по коду |
| Участие в проекте | Как вносить вклад в код или документацию |
| Руководство переводчика | Добавьте переводы на новые языки |
| Журнал изменений | Примечания к выпускам |
| Дорожная карта | Детальная дорожная карта функций |
Приветствуются любые вклады — сообщения об ошибках, запросы новых функций, документация и код.
# Fork → clone → branch
git checkout -b feat/my-feature
# Внесите изменения, затем
make test && make lint
# Коммит (Conventional Commits)
git commit -m "feat(libraries): add PDF extraction keyword"
# Откройте PR в mainСмотрите CONTRIBUTING.md для ознакомления с полным процессом, стандартами кодирования и чек-листом PR.
- Визуальный дизайнер на базе React Flow и Electron
- Автоматизация рабочего стола через pywinauto
- Веб-автоматизация через Playwright
- Вдохновение от UiPath, Blue Prism и Automation Anywhere
GitHub Discussions · Трекер задач
Apache License 2.0 — Создано с заботой сообществом RPAForge