Installation
Install gflow with the steps below.
Package Name
The Python package name is runqd. It provides gflowd, gbatch, gqueue, gjob, ginfo, gcancel, and gctl.
Prerequisites
- Operating System: Linux
- tmux: Required for the default job executor and for
gflowd up/attach workflows. The tmux-freeprocessexecutor remains available as an opt-in via[executor] type = "process" - NVIDIA GPU / drivers: Only required for GPU scheduling
Installing Prerequisites
# tmux is required for the default tmux job executor and tmux-hosted daemon
sudo apt-get update
sudo apt-get install tmux# tmux is required for the default tmux job executor and tmux-hosted daemon
sudo dnf install tmuxInstallation Methods
Method 1: Install via PyPI (Recommended)
Use uv or pipx for CLI installs:
uv tool install runqdpipx install runqdpip install runqdPre-built binaries are available for Linux x86_64 and ARM64.
Install Nightly Build
For the latest development build, install from TestPyPI:
uv tool install --index https://test.pypi.org/simple/ runqdpipx install --index-url https://test.pypi.org/simple/ runqdpip install --index-url https://test.pypi.org/simple/ runqdMethod 2: Install via Cargo
Build and install from crates.io:
cargo install gflowcargo install --git https://github.com/AndPuQing/gflow.git --lockedThis installs binaries to ~/.cargo/bin/. Make sure it is in your PATH.
Method 3: Build from Source
To build from source:
Clone the repository:
bashgit clone https://github.com/AndPuQing/gflow.git cd gflowBuild the project:
bashcargo build --releaseExecutables will be in
target/release/.Install to the system (optional):
bashcargo install --path .
Verify Installation
After installation, check the commands and version:
# Check commands
which gflowd ginfo gbatch gqueue gcancel
# Check version
gflowd --versionTIP
If the commands work and gflowd --version prints a version, the install is complete.
Run Checks
1. Check the daemon (no tmux required)
Job execution no longer requires tmux: the daemon spawns each job as a detached child process group and redirects its output to logs/<job_id>.log. gflowd start hosts the daemon via the systemd user service when installed, otherwise in tmux when available, otherwise as a direct detached process.
# Optional: create a default config
gflowd init
# Start the daemon
gflowd start
# Check status
gflowd statusOptional: systemd user service (auto-start + crash recovery)
On Linux with a systemd user manager, install gflowd as a user service so it auto-starts on login and restarts automatically if it crashes:
gflowd service install
gflowd status # shows "Hosting: systemd user service"Remove it later with:
gflowd service uninstall2. Check tmux (only if you use tmux features)
tmux new-session -d -s test
tmux has-session -t test && echo "tmux ok"
tmux kill-session -t test3. Check the daemon and GPU detection (optional)
If you have NVIDIA GPUs, you can verify detection:
# Optional: create a default config
gflowd init
# Start the daemon
gflowd start
# Check status
gflowd statusCheck system info and GPUs:
ginfoIf detection works, the output includes GPU information.
File Locations
gflow uses these directories:
| Location | Purpose |
|---|---|
~/.config/gflow/gflow.toml | Configuration file (optional) |
~/.local/share/gflow/state.msgpack | Persistent job state (state.json is still read for legacy installs) |
~/.local/share/gflow/logs/ | Job output logs |
Troubleshooting
Issue: Command not found
If you get "command not found" after installation:
Check if
~/.cargo/binis in yourPATH:bashecho $PATH | grep -o ~/.cargo/binAdd it to
~/.bashrcor~/.zshrcif missing:bashexport PATH="$HOME/.cargo/bin:$PATH"Reload the shell:
bashsource ~/.bashrc # or ~/.zshrc
Issue: GPU not detected
Check NVIDIA drivers:
bashnvidia-smiCheck the NVML library:
bashldconfig -p | grep libnvidia-mlIf detection fails, gflow still works for CPU jobs.
Updating gflow
If installed via Cargo
cargo install gflow --forceIf built from source
cd gflow
git pull
cargo build --release
cargo install --path . --forceUninstallation
To remove gflow:
WARNING
The optional data cleanup commands below permanently remove local scheduler state and logs.
# Stop the daemon first
gflowd down
# Uninstall binaries
cargo uninstall gflow
# Remove configuration and data (optional)
rm -rf ~/.config/gflow
rm -rf ~/.local/share/gflowNext Steps
After installation, continue with Quick Start.