# dagster

> Dagster is an orchestration platform for the development, production, and observation of data assets.

- **URL**: https://www.freshcrate.ai/projects/dagster
- **Author**: pypi
- **Category**: Frameworks
- **Latest version**: `1.13.8` (2026-06-04)
- **License**: Unknown
- **Source**: https://github.com/dagster-io/dagster/releases
- **Homepage**: https://pypi.org/project/dagster/
- **Language**: Python
- **GitHub**: 15,352 stars, 2,098 forks
- **Registry**: pypi (`dagster`)
- **Tags**: `pypi`

## Description

<div align="center">
  <!-- Note: Do not try adding the dark mode version here with the `picture` element, it will break formatting in PyPI -->
  <a target="_blank" href="https://dagster.io" style="background:none">
    <img alt="dagster logo" src="https://raw.githubusercontent.com/dagster-io/dagster/master/.github/dagster-readme-header.svg" width="auto" height="100%">
  </a>
  <a target="_blank" href="https://github.com/dagster-io/dagster" style="background:none">
    <img src="https://img.shields.io/github/stars/dagster-io/dagster?labelColor=4F43DD&color=163B36&logo=github">
  </a>
  <a target="_blank" href="https://github.com/dagster-io/dagster/blob/master/LICENSE" style="background:none">
    <img src="https://img.shields.io/badge/License-Apache_2.0-blue.svg?label=license&labelColor=4F43DD&color=163B36">
  </a>
  <a target="_blank" href="https://pypi.org/project/dagster/" style="background:none">
    <img src="https://img.shields.io/pypi/v/dagster?labelColor=4F43DD&color=163B36">
  </a>
  <a target="_blank" href="https://pypi.org/project/dagster/" style="background:none">
    <img src="https://img.shields.io/pypi/pyversions/dagster?labelColor=4F43DD&color=163B36">
  </a>
  <a target="_blank" href="https://twitter.com/dagster" style="background:none">
    <img src="https://img.shields.io/badge/twitter-dagster-blue.svg?labelColor=4F43DD&color=163B36&logo=twitter" />
  </a>
  <a target="_blank" href="https://dagster.io/slack" style="background:none">
    <img src="https://img.shields.io/badge/slack-dagster-blue.svg?labelColor=4F43DD&color=163B36&logo=slack" />
  </a>
  <a target="_blank" href="https://linkedin.com/showcase/dagster" style="background:none">
    <img src="https://img.shields.io/badge/linkedin-dagster-blue.svg?labelColor=4F43DD&color=163B36&logo=linkedin" />
  </a>
</div>

**Dagster is a cloud-native data pipeline orchestrator for the whole development lifecycle, with integrated lineage and observability, a declarative programming model, and best-in-class testability.**

It is designed for **developing and maintaining data assets**, such as tables, data sets, machine learning models, and reports.

With Dagster, you declare—as Python functions—the data assets that you want to build. Dagster then helps you run your functions at the right time and keep your assets up-to-date.

Here is an example of a graph of three assets defined in Python:

```python
import dagster as dg
import pandas as pd

from sklearn.linear_model import LinearRegression

@dg.asset
def country_populations() -> pd.DataFrame:
    df = pd.read_html("https://tinyurl.com/mry64ebh")[0]
    df.columns = ["country", "pop2022", "pop2023", "change", "continent", "region"]
    df["change"] = df["change"].str.rstrip("%").astype("float")
    return df

@dg.asset
def continent_change_model(country_populations: pd.DataFrame) -> LinearRegression:
    data = country_populations.dropna(subset=["change"])
    return LinearRegression().fit(pd.get_dummies(data[["continent"]]), data["change"])

@dg.asset
def continent_stats(country_populations: pd.DataFrame, continent_change_model: LinearRegression) -> pd.DataFrame:
    result = country_populations.groupby("continent").sum()
    result["pop_change_factor"] = continent_change_model.coef_
    return result
```

The graph loaded into Dagster's web UI:

<p align="center">
  <img width="100%" alt="An example asset graph as rendered in the Dagster UI" src="https://raw.githubusercontent.com/dagster-io/dagster/master/.github/example-lineage.png">
</p>

Dagster is built to be used at every stage of the data development lifecycle - local development, unit tests, integration tests, staging environments, all the way up to production.

## Quick Start:

If you're new to Dagster, we recommend checking out the [docs](https://docs.dagster.io) or following the hands-on [tutorial](https://docs.dagster.io/etl-pipeline-tutorial/).

Dagster is available on PyPI and officially supports Python 3.9 through Python 3.14.

```bash
uv add dagster dagster-webserver dagster-dg-cli
```

## Documentation

You can find the full Dagster documentation [here](https://docs.dagster.io), including the [Quickstart guide](https://docs.dagster.io/getting-started/quickstart).

<hr/>

## Key Features:

  <p align="center">
    <img width="100%" alt="image" src="https://raw.githubusercontent.com/dagster-io/dagster/master/.github/key-features-cards.svg">
  </p>

### Dagster as a productivity platform

Identify the key assets you need to create using a declarative approach, or you can focus on running basic tasks. Embrace CI/CD best practices from the get-go: build reusable components, spot data quality issues, and flag bugs early.

### Dagster as a robust orchestration engine

Put your pipelines into production with a robust multi-tenant, multi-tool engine that scales technically and organizationally.

### Dagster as a unified control plane

Maintain control over your data as the complexity scales. Centralize your metadata in one tool with bu

## Recent releases

| Version | Date | Urgency | Changes |
| --- | --- | --- | --- |
| `1.13.8` | 2026-06-04 | High | ### New  - Special characters are now allowed in team `owners` for jobs, schedules, and sensors. (Thanks, [@dragos-pop](https://github.com/dragos-pop)!) - Added `kinds` tags and icons for Microsoft Fabric and OneLake. (Thanks, [@MartyP233](https://github.com/MartyP233)!) - The BigQuery, Snowflake, and DuckDB I/O managers now skip the table write when an asset returns an empty DataFrame, logging a warning instead. This prevents incorrect type inference and degenerate tables for empty partitions. |
| `1.13.7` | 2026-05-28 | High | ### New  - Added an `owners` parameter to `build_schedule_from_partitioned_job` to set owners on the resulting schedule. (Thanks, [@dragos-pop](https://github.com/dragos-pop)!) - [dagster-airlift] Added support for Python 3.12, 3.13, and 3.14. - [dagster-fivetran] The Fivetran component now supports a `fetch_column_metadata` option to fetch column-level metadata for synced tables. - [dagster-k8s] When `includeConfigInLaunchedRuns.enabled` is set in the Helm chart, run pods now inherit `nodeSelec |
| `1.13.6` | 2026-05-22 | High | ### New  - Schedule, sensor, and asset daemon ticks now dispatch instigators round-robin across code locations, preventing a single code location with many instigators from delaying launches in other code locations. - Added `dg api run launch` command for launching runs from the CLI against the Dagster+ API. - Improved declarative automation performance for assets sharing the same cron schedule. - [ui] The asset catalog now shows a toggle to hide duplicate connections-defined assets when an SDA |
| `1.13.5` | 2026-05-15 | High | ### New  - Added kinds tags for Alteryx, Boomi, and SAP. - Raised the SQLite `busy_timeout` default from 5s to 30s on `SqliteEventLogStorage` and `ConsolidatedSqliteEventLogStorage` to better tolerate slow or network-backed `$DAGSTER_HOME` filesystems. - [ui] Removed the "Scheduled" tab from the runs feed. - [ui] The sensor tick timeline now shows more ticks on the newest page, matching the list of ticks shown in the table below. - [dagster-k8s] Added a `delete_pod_on_completion` flag to `PipesK |
| `1.13.4` | 2026-05-14 | High | ### New  - `typing.Mapping` and `typing.Sequence` annotations are now supported on op and asset inputs. - Added a `path_prefix` parameter to `DagsterGraphQLClient` to support connecting to webserver deployments behind a non-root path prefix. - Added a `storage_kind` field to `TableMetadataSet` to denote the storage system that backs a table (e.g., `snowflake`, `databricks`, `bigquery`). - `define_asset_job` now validates owner strings at definition time, producing clearer error messages for inva |
| `1.13.3` | 2026-04-30 | High | ### New  - Added an `owners` parameter to `define_asset_job`, mirroring the field on regular jobs. - Improved error messages when required config is missing in Dagster jobs, with clearer guidance on which fields are missing and example config to provide. - `LOGS_CAPTURED` event messages no longer say "Started capturing logs", since compute log managers typically upload logs on completion rather than streaming in real time. - [ui] Added client-side validation for the deployment settings YAML edit |
| `1.13.2` | 2026-04-23 | High | ### New  - [ui] Users can now hold Cmd or Ctrl while clicking launch, materialize, re-execute, or retry buttons to open the resulting run in a new   browser tab instead of navigating away from the current page. - [ui] Added an Azure DevOps kind tag icon for assets tagged with the `azuredevops` kind. - [dg] The `dg utils integrations` sub-command has been removed. - [dagster-databricks] `DatabricksClientResource` now accepts a `credentials_strategy` argument, enabling federated and custom authent |
| `1.13.1` | 2026-04-21 | Low | Imported from PyPI (1.13.1) |
| `1.13.0` | 2026-04-09 | Medium | ### Major Changes Since 1.12.0  - **AI-assisted development**: Released [dagster-io/skills](https://github.com/dagster-io/skills), a collection of Dagster-focused AI skills for coding agents like Claude Code, OpenAI Codex, and others. Expanded `dg api` commands for programmatic inspection of assets, runs, jobs, schedules, and more. - **Partitioned asset checks**: Asset checks can now target specific partitions of an upstream asset, aligning data quality logic with how partitioned data is produce |
| `1.12.22` | 2026-04-02 | Medium | ### New  - [dg] `dg` projects can now configure `agent_queue` and `image` in `pyproject.toml` under `[tool.dg.project]`, which are included in the generated `dagster_cloud.yaml` when running `dg plus deploy`. - [dg] Added `dg api job list` and `dg api job get` commands for querying job metadata including schedules, sensors, and tags. - [dg] Added `dg api asset-check list`, `dg api asset-check get-executions`, and `dg api asset get-partition-status` commands. - [ui] The asset overview page now sh |

## Citation

- HTML: https://www.freshcrate.ai/projects/dagster
- Markdown: https://www.freshcrate.ai/projects/dagster.md
- Dependencies JSON: https://www.freshcrate.ai/api/projects/dagster/deps

_Generated by freshcrate.ai. Indexes pypi releases for AI-agent ecosystem packages._
