skillfed

luigi

Workflow mgmgt + task scheduling + dependency resolution.

luigi v3.8.1 1.3M downloads/30d#4,128 on PyPI18,763
Permissive license Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for… (full text in the JSON record) Active released

What it is and what it does

Luigi is a Python workflow framework that lets you define complex pipelines as directed acyclic graphs (DAGs) of interdependent tasks. Instead of writing shell scripts or cron jobs to manage batch processes, you define tasks in Python code and specify their dependencies; Luigi automatically resolves the execution order, handles retries on failure, and ensures atomic file operations so partial results don't corrupt your data.

The framework comes with built-in support for common patterns like Hadoop jobs, Hive queries, Spark jobs, and database operations, plus a web-based dashboard for monitoring and visualizing running pipelines. It's designed for long-running batch work—the kind that takes hours or days to complete—and has been used in production at scale by organizations like Spotify, Stripe, and Foursquare to manage thousands of daily tasks.

Use it for:

  • Orchestrate multi-stage data pipelines combining Hadoop jobs, database dumps, and Python scripts with automatic retry and failure handling
  • Build ETL workflows that extract data from multiple sources, transform it through dependent stages, and load results into data warehouses
  • Manage machine learning training pipelines where feature engineering, model training, and evaluation stages must run in strict dependency order
  • Schedule and monitor recurring batch jobs (reports, analytics, data aggregations) with visibility into which tasks succeeded, failed, or are pending
  • Chain together heterogeneous tasks—some local Python code, some remote Spark jobs, some database operations—into a single unified workflow

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Luigi is a Python workflow orchestration framework that builds and manages complex pipelines of batch jobs, handling dependency resolution, task scheduling, failure recovery, and visualization.

Yes. Luigi is a mature, actively maintained framework with no known vulnerabilities, permissive licensing, and low installation friction. It's well-suited if you're building multi-stage batch pipelines or orchestrating interdependent long-running jobs. The web UI and dependency visualization are valuable for monitoring complex workflows. Install it if you need workflow orchestration; skip it if your tasks are simple, one-off scripts.

Install

luigi on PyPI

pip

pip install luigi

uv

uv add luigi

poetry

poetry add luigi

Installing luigi

Before you install

Installation is straightforward with low friction. The package is actively maintained with a recent release and has been in production use since 2012, with an active repository showing ongoing development.

License in practice

Licensed under Apache License 2.0 (permissive), which allows commercial and private use with minimal restrictions—you may use, modify, and distribute the software freely provided you include license notices.

Quickstart

pip install luigi

import luigi

class MyTask(luigi.Task):
    def output(self):
        return luigi.LocalTarget('output.txt')
    def run(self):
        with self.output().open('w') as f:
            f.write('done')

if __name__ == '__main__':
    luigi.build([MyTask()], local_scheduler=True)

Verify before relying

  • Whether the web-based visualizer requires additional dependencies or configuration beyond the base install
  • Performance characteristics and scalability limits for very large dependency graphs (thousands of tasks)

Package facts

License Apache License Version 2.0, January 2004 http://www.apache.org/licenses/ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION 1. Definitions. "License" shall mean the terms and conditions for… (full text in the JSON record) (permissive)
Python support supports the current Python release (<3.14,>=3.10)
Install friction low — pure-Python wheel
Runtime dependencies 5 — python-daemon, python-dateutil, tenacity, tornado, typing-extensions
Maintenance actively maintained — 99 days since the last release
Last repo commit
First released
Downloads 1,273,178/month — #4,128 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: luigi-3.8.1-py3-none-any.whl

Development Status :: 5 - Production/StableEnvironment :: ConsoleEnvironment :: Web EnvironmentIntended Audience :: DevelopersIntended Audience :: System AdministratorsLicense :: OSI Approved :: Apache Software LicenseProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Topic :: System :: Monitoring

Tags

workflow orchestration pythonbatch job schedulingtask dependency managementdata pipeline frameworkdag workflow enginejob scheduling automationpipeline monitoring visualization
workflow-orchestrationbatch-processingdag-scheduler

More Monitoring packages

tqdm

Wraps any iterable to display a real-time…

copyleft · top 100 on PyPI

opentelemetry-semantic-conventions

Provides generated Python code for…

permissive · top 100 on PyPI

opentelemetry-sdk

Provides the reference implementation of the…

permissive · top 100 on PyPI

opentelemetry-api

Provides the abstract API and interfaces for…

permissive · top 100 on PyPI

opentelemetry-exporter-otlp-proto-http

Exports OpenTelemetry observability data to an…

permissive · top 1,000 on PyPI

opentelemetry-instrumentation

Provides automatic instrumentation commands and…

permissive · top 1,000 on PyPI

b2luigi

b2luigi wraps luigi to simplify scheduling and…

copyleft · top 15,000 on PyPI

luigi-monitor

Sends summary Slack notifications when Luigi…

permissive · top 15,000 on PyPI

adagio

Adagio provides a directed acyclic graph (DAG)…

permissive · top 5,000 on PyPI

argo-workflows

Provides Python API bindings for Argo…

unclear · top 15,000 on PyPI

snakemake-interface-scheduler-plugins

Provides a stable interface specification for…

unclear · top 15,000 on PyPI

apache-airflow-core

Apache Airflow's core runtime that schedules,…

permissive · top 5,000 on PyPI

prefect-dbt

Prefect integration that orchestrates dbt…

permissive · top 15,000 on PyPI

apache-airflow-providers-apache-pig

Integrates Apache Pig with Apache Airflow,…

permissive · top 15,000 on PyPI

prefect-gitlab

Integrates Prefect workflow orchestration with…

permissive · top 15,000 on PyPI

awsglue-dev

Provides Python interfaces to AWS Glue's ETL…

unclear · top 5,000 on PyPI