No description
  • Rust 92.8%
  • TypeScript 5%
  • Python 1.4%
  • CSS 0.4%
  • Shell 0.2%
Find a file
renovate[bot] 4145de3cd3
Some checks are pending
Continuous Integration / Web UI (push) Waiting to run
Continuous Integration / Test Suite (push) Waiting to run
Continuous Integration / Rustfmt (push) Waiting to run
Continuous Integration / Clippy (push) Waiting to run
Continuous Integration / Docs (push) Waiting to run
Continuous Integration / Code Coverage (push) Waiting to run
Continuous Integration / Nightly Smoke (informational) (push) Waiting to run
chore(deps): Update astral-sh/setup-uv action to v8.2.0 (#163)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-06-08 09:41:45 +08:00
.github chore(deps): Update astral-sh/setup-uv action to v8.2.0 (#163) 2026-06-08 09:41:45 +08:00
benches feat: add shared GPU scheduling with per-GPU VRAM limits 2026-03-04 14:25:21 +08:00
docs Add agent-safe MCP workflow tools 2026-04-27 22:26:09 +08:00
examples/mcp docs: clarify mcp server usage 2026-03-20 15:25:30 +08:00
scripts perf: add benchmark regression baseline workflow (#135) 2026-03-10 10:03:38 +08:00
skills/gflow-ops Refine MCP submit jobs semantics 2026-03-19 18:43:20 +08:00
src feat: embed web ui in gflowd 2026-04-27 23:09:30 +08:00
tests Make GPU poll interval configurable 2026-03-24 14:43:51 +08:00
web chore(deps): Update dependency @types/node to v25 (#161) 2026-05-12 01:01:43 +08:00
.gitignore docs: Ignore .codex files 2026-04-17 11:33:23 +08:00
.pre-commit-config.yaml Add reload progress logs and tidy pre-commit YAML 2026-01-15 15:39:59 +08:00
build.rs Implement stop command, refactor CLI structure, and remove shared package 2025-02-10 16:43:56 +08:00
bun.lock chore(deps): Update dependency vitepress-mermaid-preview to ^0.2.0 (#150) 2026-04-08 23:24:20 +08:00
Cargo.lock chore(deps): Update Rust crate tabled to 0.21.0 (#162) 2026-06-02 08:38:51 +08:00
Cargo.toml chore(deps): Update Rust crate tabled to 0.21.0 (#162) 2026-06-02 08:38:51 +08:00
CHANGELOG.md feat: add shorthand support for job dependencies in gbatch command 2025-10-31 21:38:52 +08:00
CODE_OF_CONDUCT.md Enhance gflowd and gqueue functionality, improve error handling, and add tests 2025-08-04 18:56:05 +08:00
codecov.yml feat: add code coverage reporting to CI 2026-02-01 02:50:17 +08:00
CONTRIBUTING.md Add GitHub issue and PR templates 2026-04-10 11:54:31 +08:00
justfile feat: embed web ui in gflowd 2026-04-27 23:09:30 +08:00
LICENSE Add MIT License to the repository 2024-12-09 13:24:01 +08:00
package.json feat: embed web ui in gflowd 2026-04-27 23:09:30 +08:00
pyproject.toml feat: embed web ui in gflowd 2026-04-27 23:09:30 +08:00
README.md Update README.md 2026-04-13 13:15:52 +08:00
README_CN.md Add Star History section to README_CN.md 2026-04-10 11:30:27 +08:00
SECURITY.md Add security policy 2026-04-10 11:48:53 +08:00
vercel.json fix: correct Vercel ignoreCommand logic for docs-only deploys 2026-02-01 03:19:20 +08:00

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

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

Contact Us

For coordinating contributions and development, please use Slack

Contributing

Please open an Issue or Pull Request.

License

MIT. See LICENSE.