Skip to main content

Roejobs

Roejobs is a local job scheduling and management tool designed for running, monitoring, and controlling long-running tasks on a single machine. It provides:

  • A background job server managing multiple tasks simultaneously.
  • A CLI for submitting jobs from files or the command line.
  • A web dashboard to monitor job status, view logs, cancel or restart jobs.
  • Automatic management of working directories, output logs, and job queuing.

Features

  • Queue jobs from files or directly from the CLI.
  • Optionally wait for all queued jobs to finish and report their outcome (--wait).
  • Support for CWD=... prefixes per job or global override.
  • View running, queued, succeeded, failed, or cancelled jobs in a web browser.
  • Stream job stdout/stderr to log files and view them via the dashboard.
  • Cancel or restart jobs directly from the web UI.
  • Shutdown the server gracefully from the web UI.
  • CLI automatically launches the server in the background if it is not running.

Installation

pip install roejobs

This will install the CLI commands and the package itself. Or, if you cloned this package locally:

pip install -e .

Starting the server

Start the job server on the default port (5678):

roejobs-server

Optional arguments:

roejobs-server --port 1234           # Specify a custom port
roejobs-server --n-processes 20      # Set maximum concurrent jobs
  • The server runs locally (127.0.0.1) and serves the web dashboard.
  • Default maximum concurrent jobs: 10.

Access the dashboard

Open your browser at: (http://127.0.0.1:5678/)

From here you can:

  • Monitor all jobs
  • View logs
  • Cancel or restart jobs
  • Shut down the server

Submitting jobs via CLI

1. From a task file

Each line of a task file is a job:

# Comment lines start with #
CWD=./exp python train.py --lr 0.001 --batch-size 64
python eval.py --checkpoint ckpt.pt

Submit jobs:

roejobs-cli tasks.txt

Optional flags:

  • --override-cwd — ignore CWD=... in job specs and use the CLI's current working directory.
  • --server — point to a server on a custom port.
  • --wait — after queuing, block until all submitted jobs conclude, then print their final states and exit.

2. Inline submission

You can also submit jobs directly from the CLI:

roejobs-cli --jobs "python quick_test.py" "CWD=./exp ./run.sh --config cfg.yaml"
  • Syntax matches task files.
  • Works with or without --override-cwd.

3. Lazy server start

If the server is not running, the CLI automatically launches it in the background on the correct port.

4. Waiting for jobs to finish

By default the CLI returns as soon as the jobs are queued. Pass --wait to block until every job it submitted reaches a terminal state (Succeeded, Failed, or Cancelled):

roejobs-cli --wait --jobs "python train.py --lr 0.01" "python eval.py"

When all jobs conclude, the CLI prints each job's final state and exits. The exit code is 0 only if every submitted job succeeded; if any job failed or was cancelled it exits 1, which makes --wait convenient in scripts and pipelines.

There is no timeout — job durations are hard to predict — but you can stop waiting at any time with Ctrl+C. Interrupting only stops the CLI from waiting; the jobs keep running on the server and can still be monitored from the dashboard.

Job spec syntax

  • Lines starting with # are ignored.
  • Optional working directory per job:
CWD=some/path command args...
  • If no CWD is specified, the CLI/server uses the current directory.
  • Commands can be very long; they are truncated in the dashboard for readability, with full output available in the log view.

Web dashboard features

  • Job table showing status: Queued, Running, Succeeded, Failed, Cancelled.
  • Full command and logs available per job.
  • Cancel or restart individual jobs.
  • Shut down server with a single button (gracefully kills running jobs).
  • Commands truncated visually for long parameters, with full command in a tooltip.

Example workflow

# Start server (background auto-start optional)
roejobs-server --port 5678

# Submit jobs from a file
roejobs-cli tasks.txt

# Submit inline jobs
roejobs-cli --jobs "python train.py --lr 0.01" "CWD=./exp ./run.sh"

# Open browser to monitor jobs
firefox http://127.0.0.1:5678/

Notes

  • Roejobs is local-only and designed for single-machine usage.
  • The web interface is unprotected, so only bind to 127.0.0.1.
  • Logs for each job are stored in temporary directories and accessible from the web UI.

Download files

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

Source Distribution

roejobs-2026.7.11.tar.gz (14.8 kB view details)

Uploaded Source

Built Distribution

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

roejobs-2026.7.11-py3-none-any.whl (16.5 kB view details)

Uploaded Python 3

File details

Details for the file roejobs-2026.7.11.tar.gz.

File metadata

  • Download URL: roejobs-2026.7.11.tar.gz
  • Upload date:
  • Size: 14.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.16

File hashes

Hashes for roejobs-2026.7.11.tar.gz
Algorithm Hash digest
SHA256 978194efbd48ae2f194f209ba8087aca642b0e1cade784fa4ca4a2f2e83c9f97
MD5 42bbed1dc5119313dd7c3ffe58a0df6e
BLAKE2b-256 052c36109d7407b9521e4d85b55880a470bff584ff72bf41358503f85d89bb9c

See more details on using hashes here.

File details

Details for the file roejobs-2026.7.11-py3-none-any.whl.

File metadata

  • Download URL: roejobs-2026.7.11-py3-none-any.whl
  • Upload date:
  • Size: 16.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.16

File hashes

Hashes for roejobs-2026.7.11-py3-none-any.whl
Algorithm Hash digest
SHA256 ed1441f4f6f9d984667fae72534f6b1c709201d3da8e724b52008c655046bb84
MD5 b42708ef44cc61c9d25270eeb6293dde
BLAKE2b-256 4c7120d29f6226deb3f255ea9c83c5d39b5fbae86cc07325b96c73957a917e71

See more details on using hashes here.

Release history Release notifications | RSS feed

2026.9.1

2 files

This release

2026.7.11 This release

2 files

2026.1.21.post1

1 file

2026.1.21

2 files

2026.1.20

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page