Skip to main content

A lightweight, single-node job scheduler written in Rust.

Project description

gflow

Documentation Status GitHub Actions Workflow Status codecov PyPI - Version TestPyPI - Version Crates.io Version PyPI - Downloads dependency status Crates.io License Crates.io Size Discord

English | 简体中文

gflow is a lightweight scheduler for a single Linux machine. It brings a Slurm-like workflow to shared GPU workstations and lab servers without cluster setup.

asciicast

Why gflow

  • Queue and run jobs on one machine.
  • Submit commands or scripts with GPUs, time limits, dependencies, arrays, and priorities.
  • Inspect, attach, cancel, and recover jobs with a small CLI.

Install

Requirements: Linux, tmux, and NVIDIA drivers only if you need GPU scheduling.

Install with Python tooling:

uv tool install runqd
# or
pipx install runqd
# or
pip install runqd

Install with Cargo:

cargo install gflow

Nightly build:

pip install --index-url https://test.pypi.org/simple/ runqd

Quick Start

gflowd init
gflowd up
gbatch --gpus 1 --name demo bash -lc 'echo "hello from gflow"; sleep 30'
gqueue
gjob show <job_id>
gflowd down

MCP

gflow can also run as a local MCP server for Claude Desktop, Claude Code, Codex, Cursor, and similar tools:

gflow mcp serve

Keep gflowd running on the same machine. MCP clients start gflow mcp serve as a local stdio server.

Claude Desktop example:

Claude Code:

claude mcp add --scope user gflow -- gflow mcp serve

Codex:

codex mcp add gflow -- gflow mcp serve

Or via ~/.codex/config.toml:

[mcp_servers.gflow]
command = "gflow"
args = ["mcp", "serve"]

If gflow is not on your PATH, replace it with the absolute binary path.

Documentation

Most usage details live in the docs:

Star History

Star History Chart

Contributing

Please open an Issue or Pull Request.

License

MIT. See LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

runqd-0.4.15.tar.gz (365.7 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

runqd-0.4.15-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (8.0 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

runqd-0.4.15-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.6 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

File details

Details for the file runqd-0.4.15.tar.gz.

File metadata

  • Download URL: runqd-0.4.15.tar.gz
  • Upload date:
  • Size: 365.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for runqd-0.4.15.tar.gz
Algorithm Hash digest
SHA256 33a35ce6d76643ab4a1db27cd8353c4f7991099d25afdc77e7152211ce2075a0
MD5 9c811df6b1d3bc7d057aee6d1f64948a
BLAKE2b-256 91993462dcb8be0d70d8222bbd795642873aa9e769eeebb9cf4f5afb7d9d05d1

See more details on using hashes here.

File details

Details for the file runqd-0.4.15-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

  • Download URL: runqd-0.4.15-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
  • Upload date:
  • Size: 8.0 MB
  • Tags: Python 3, manylinux: glibc 2.17+ x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for runqd-0.4.15-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b2aea243cccd76f0f84e30169ffb0d64a5a9403af4757b7f153c0ea038515102
MD5 6accdcfaddaf1a0019c66f05bf369cd7
BLAKE2b-256 832c92cca74d1c5179df6fb6419a26cf6777dbf8ba4d560cbf2ccea22c44e152

See more details on using hashes here.

File details

Details for the file runqd-0.4.15-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

  • Download URL: runqd-0.4.15-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
  • Upload date:
  • Size: 7.6 MB
  • Tags: Python 3, manylinux: glibc 2.17+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for runqd-0.4.15-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 7d8b462d5157d915203775009c703b8c0f55a0181143606fc55aced939bc2244
MD5 6b97a9e39cd8024157c73734331d55a6
BLAKE2b-256 cfd1cd79445b6959f2129b9bdefb0b2a2c81c4cd22b691109c585cc24f8b600a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page