Skip to main content

Prerequisites

Before installing, make sure you have the following:
  • Rust 1.70+ — the installer will attempt to install Rust automatically if it’s missing
  • build-essential (gcc, make) — required to compile from source
  • git — used to clone the repository during installation
On Termux, the installer uses pkg to install all dependencies automatically. No manual setup is needed.

Supported platforms

PlatformArchitectureStatus
Linuxx86_64Supported
Linuxaarch64Supported
Linuxarmv7Supported
Linuxi686Supported
Termux (Android)aarch64 / armSupported
macOSNot supported
WindowsNot supported

One-line installer

Run the following command in your terminal:
curl -sSL https://raw.githubusercontent.com/Rehanasharmin/Progflow/master/install.sh | bash
The script installs the binary to /usr/local/bin when run as root, or to ~/.local/bin for a regular user. It also adds the install directory to your PATH if it isn’t already present.

What the installer does

1

Detect the environment

The script identifies your OS, architecture, and whether you’re running in Termux. It prints the detected platform before proceeding.
2

Check for Rust

If rustc is not found, the installer attempts to install Rust using your system package manager (apt, yum, dnf, or pacman). If none are available, it falls back to rustup.
3

Install build dependencies

The installer checks for gcc and make. Any missing packages are installed automatically using your system package manager.
4

Clone the repository

The source code is cloned from GitHub into a temporary directory using git clone --depth 1.
5

Build the binary

The installer runs cargo build --release to produce a size-optimized, statically-linked binary.
6

Install the binary

The compiled binary is copied to the install directory (/usr/local/bin for root, ~/.local/bin for non-root users) and marked as executable.
7

Update PATH

If the install directory is not already in your PATH, the installer appends an export line to your shell config (.bashrc, .zshrc, or .profile).
8

Initialize config directory

The config directory ~/.config/flow/ is created if it doesn’t already exist. This is where all flow JSON files are stored.

Verify the installation

After installation, run either of the following to confirm the binary is working:
progflow --version
progflow --help
If your shell does not find progflow after installation, the install directory may not yet be in your active PATH. Either open a new terminal session or run:
source ~/.bashrc   # or ~/.zshrc if you use Zsh

Install directory

ContextInstall path
Root user/usr/local/bin/progflow
Non-root user~/.local/bin/progflow

Manual build (for developers)

If you want to build and install progflow yourself without the installer script:
1

Clone the repository

git clone https://github.com/Rehanasharmin/Progflow.git
cd Progflow
2

Build a release binary

cargo build --release
The compiled binary is placed at ./target/release/progflow.
3

Copy the binary to your PATH

cp target/release/progflow ~/.local/bin/
Use /usr/local/bin/ instead if you want a system-wide install and have root access.
4

Verify

progflow --help
The release profile is configured for minimal binary size: opt-level = "z", LTO enabled, single codegen unit, and debug symbols stripped. Expect a small, fast binary.

Uninstall

To remove Progflow, run the uninstall script:
curl -sSL https://raw.githubusercontent.com/Rehanasharmin/Progflow/master/uninstall.sh | bash
The script removes the binary from all known install paths. It will also prompt you before deleting the ~/.config/flow/ directory so you can choose to preserve your flow configurations.

Build docs developers (and LLMs) love