Lightweight job runner and supervisor for long-running tasks
Project description
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.
- 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.
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.
Job spec syntax
- Lines starting with
#are ignored. - Optional working directory per job:
CWD=some/path command args...
- If no
CWDis 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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file roejobs-2026.1.21.post1-py3-none-any.whl.
File metadata
- Download URL: roejobs-2026.1.21.post1-py3-none-any.whl
- Upload date:
- Size: 17.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1d34fb910d78484dd6c387bb00f89f70e2ca4568dbfefead2491f04809e8750
|
|
| MD5 |
9b94a28e05513b9ded5a64d833456023
|
|
| BLAKE2b-256 |
d7465f1a7a81d03204dc2052835990b7a31a2ce5ef9344b2dd7ed6f72f224706
|