Processpiper
An open source python library to generate business process diagram using code or plain text.
Install / Use
/learn @csgoh/ProcesspiperREADME
ProcessPiper (Business Process Diagram as Code)
ProcessPiper is an open source python library to generate business process diagram using python code or PiperFlow syntax.
<h3 align="center"> <b><a href="https://github.com/csgoh/processpiper/wiki/installation">Installation</a></b> • <b><a href="https://github.com/csgoh/processpiper/wiki/Usage-Documentation">Usage Guide</a></b> • <b><a href="https://github.com/csgoh/processpiper/wiki/Change-Logs">Changelogs</a></b> </h3> <br>Method 1: Generate business process diagram using English like PiperFlow syntax
This is a sample code to generate a business process diagram using PiperFlow syntax.
from processpiper.text2diagram import render
input_syntax = """
title: Sample Test Process
colourtheme: BLUEMOUNTAIN
lane: End User
(start) as start
[Enter Keyword] as enter_keyword
(end) as end
pool: System Search
lane: Database System
[Login] as login
[Search Records] as search_records
<Result Found?> as result_found
[Display Result] as display_result
[Logout] as logout
lane: Log System
[Log Error] as log_error
start->login: User \\nAuthenticate
login->enter_keyword: Authenticated
enter_keyword->search_records: Search Criteria
search_records->result_found: Result
result_found->display_result: Yes
display_result->logout->end
result_found->log_error: No
log_error->display_result
footer: Generated by ProcessPiper
"""
render(input_syntax, "my_process_map.png")
Method 2: Generate business process diagram using Python code
This is a sample code to generate a business process diagram using Python code. The code is self-explanatory. The diagram is generated using the default colour theme.
from processpiper import ProcessMap, EventType, ActivityType, GatewayType
with ProcessMap(
"Sample Test Process", colour_theme="BLUEMOUNTAIN") as my_process_map:
with my_process_map.add_lane("End User") as lane1:
start = lane1.add_element("Start", EventType.START)
enter_keyword = lane1.add_element("Enter Keyword", ActivityType.TASK)
with my_process_map.add_pool("System Search") as pool1:
with pool1.add_lane("Database System") as lane2:
login = lane2.add_element("Login", ActivityType.TASK)
search_records = lane2.add_element("Search Records", ActivityType.TASK)
result_found = lane2.add_element("Result Found?", GatewayType.EXCLUSIVE)
display_result = lane2.add_element("Display Result", ActivityType.TASK)
logout = lane2.add_element("Logout", ActivityType.TASK)
end = lane2.add_element("End", EventType.END)
with pool1.add_lane("Log System") as lane3:
log_error = lane3.add_element("Log Error", ActivityType.TASK)
start.connect(login, "User \nAuthenticates").connect(
enter_keyword, "Authenticated"
).connect(search_records, "Search Criteria")
search_records.connect(result_found, "Result").connect(display_result, "Yes")
display_result.connect(logout).connect(end)
result_found.connect(log_error, "No").connect(display_result)
my_process_map.set_footer("Generated by ProcessPiper")
my_process_map.draw()
my_process_map.save("my_process_map.png")
The generated diagram is as follows:

Features
- Generate business process diagrams with Python code
- Alternatively business process diagram can be generated by using PiperFlow
- Business process diagrams contains
- Diagram title
- Pool(s)
- Lane(s)
- Elements:
- Event: Start, End, Timer, Intermediate, Message, Signal, Conditional and Link
- Activity: Task, Subprocess
- Gateway: Inclusive, Exclusive, Parallel, Event
- Support for different colour themes (See gallery) :
- Default
- GREYWOOF
- BLUEMOUNTAIN
- ORANGEPEEL
- GREENTURTLE
- SUNFLOWER
- PURPLERAIN
- RUBYRED
- TEALWATERS
- SEAFOAMS
- Diagrams can be saved to PNG or SVG image formats
- :new::fire: Diagrams can be exported to .bpmn XML file format
Frontend Application
Two frontend applications have been developed to showcase ProcessPiper capability.
Support and Community
ProcessPiper is still in the early days of development, if you have any problem, I will try my best to resolve it.<br>
Any ideas or suggestions, please send it to me via GitHub Discussions.
How to Contribute
If you'd like to contribute, start by reading our Contribution Guide.<br>
Lets build great software together.
Related Skills
node-connect
350.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
350.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
350.8kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
