---
title: "hamilton"
type: "tool"
slug: "apache-hamilton"
canonical_url: "https://www.graphcanon.com/tools/apache-hamilton"
github_url: "https://github.com/apache/hamilton"
homepage_url: "https://hamilton.apache.org/"
stars: 2538
forks: 198
primary_language: "Jupyter Notebook"
license: "Apache-2.0"
categories: ["developer-tools", "data-retrieval"]
tags: ["data-science", "etl-pipeline", "dag", "etl-framework", "data-engineering", "data-analysis", "feature-engineering", "etl"]
updated_at: "2026-07-07T18:44:19.08967+00:00"
---

# hamilton

> Apache Hamilton helps define modular, self-documenting dataflows for portable and expressive data transformation DAGs.

A lightweight Python library for creating DAGs of data transformations that are highly portable (running where Python is) and offer expressive features like validation and experiment tracking.

## Facts

- Repository: https://github.com/apache/hamilton
- Homepage: https://hamilton.apache.org/
- Stars: 2,538 · Forks: 198 · Open issues: 153 · Watchers: 16
- Primary language: Jupyter Notebook
- License: Apache-2.0
- Last pushed: 2026-07-03T19:17:05+00:00

## Categories

- [Developer Tools](/categories/developer-tools.md)
- [Data & Retrieval](/categories/data-retrieval.md)

## Tags

data-science, etl-pipeline, dag, etl-framework, data-engineering, data-analysis, feature-engineering, etl

## Related tools

- [ECC](/tools/affaan-m-ecc.md) - The agent harness performance optimization system (★ 226,962)
- [AutoGPT](/tools/significant-gravitas-autogpt.md) - AutoGPT: Build, Deploy, and Run AI Agents (★ 185,417)
- [prompts.chat](/tools/f-prompts-chat.md) - The world's largest open-source prompt library for AI (★ 165,019)
- [transformers](/tools/huggingface-transformers.md) - 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models (★ 162,347)
- [JavaGuide](/tools/snailclimb-javaguide.md) - Snailclimb/JavaGuide: 面试 & 后端通用面试指南，覆盖计算机基础、数据库、分布式、高并发、系统设计与 AI 应用开发 (★ 156,863)
- [langflow](/tools/langflow-ai-langflow.md) - Langflow is a powerful platform for building and deploying AI-powered agents and workflows. (★ 151,298)
- [firecrawl](/tools/firecrawl-firecrawl.md) - The API to search, scrape, and interact with the web at scale. (★ 147,117)
- [browser-use](/tools/browser-use-browser-use.md) - 🌐 Make websites accessible for AI agents. Automate tasks online with ease. (★ 103,315)

## README (excerpt)

```text
<div align="center">
   <h1><img src="https://github.com/apache/hamilton/assets/2328071/feb6abaa-b6d5-4271-a320-0ae4a18d8aa7" width="50"/> Apache Hamilton — portable & expressive <br> data transformation DAGs</h1>
   <a href='https://hamilton.apache.org/?badge=latest'>
      <img src='https://readthedocs.org/projects/hamilton/badge/?version=latest' alt='Documentation Status' />
   </a><a href="https://www.python.org/downloads/" target="_blank">
      <img src="https://img.shields.io/badge/python-3.10%20|%203.11%20|%203.12%20|%203.13%20|%203.14-blue.svg" alt="Python supported"/>
   </a>
   <a href="https://pypi.org/project/apache-hamilton/" target="_blank">
      <img src="https://badge.fury.io/py/apache-hamilton.svg" alt="PyPi Version"/>
   </a>
   <a href="https://pepy.tech/project/apache-hamilton" target="_blank">
      <img src="https://pepy.tech/badge/apache-hamilton" alt="Total Downloads"/>
   </a>
   <a href="https://pepy.tech/project/apache-hamilton" target="_blank">
      <img src="https://static.pepy.tech/badge/apache-hamilton/month" alt="Total Monthly Downloads"/>
   </a>
   <br/>
   <a href="https://join.slack.com/t/hamilton-opensource/shared_invite/zt-2niepkra8-DGKGf_tTYhXuJWBTXtIs4g" target="_blank">
      <img src="https://img.shields.io/badge/Apache Hamilton-Join-purple.svg?logo=slack" alt="Apache Hamilton Slack"/>
   </a>
   <a href="https://twitter.com/hamilton_os" target="_blank">
      <img src="https://img.shields.io/badge/HamiltonOS-Follow-purple.svg?logo=X"/>
   </a>
</div>
<br></br>

> **Disclaimer**
>
> Apache Hamilton is an effort undergoing incubation at the Apache Software Foundation (ASF), sponsored by the Apache Incubator PMC.
>
> Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects.
>
> While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.

Apache Hamilton (incubating) is a lightweight Python library for directed acyclic graphs (DAGs) of data transformations. Your DAG is **portable**; it runs anywhere Python runs, whether it's a script, notebook, Airflow pipeline, FastAPI server, etc. Your DAG is **expressive**; Apache Hamilton has extensive features to define and modify the execution of a DAG (e.g., data validation, experiment tracking, remote execution).

To create a DAG, write regular Python functions that specify their dependencies with their parameters. As shown below, it results in readable code that can always be visualized. Apache Hamilton loads that definition and automatically builds the DAG for you!

<div align="center">
  <img src="./docs/_static/abc_highlight.png" alt="Create a project" width="65%"/>
</div>
<div align="center">
   Functions <code>B()</code> and <code>C()</code> refer to function <code>A</code> via their parameters
</div>
<br>

Apache Hamilton brings modularity and structure to any Python application moving data: ETL pipelines, ML workflows, LLM applications, RAG systems, BI dashboards, and the [Apache Hamilton UI](https://hamilton.apache.org/concepts/ui) allows you to automatically visualize, catalog, and monitor execution.

> Apache Hamilton is great for DAGs, but if you need loops or conditional logic to create an LLM agent or a simulation, take a look at our sister library  [Burr](https://github.com/apache/burr) 🤖 .


# Installation

Apache Hamilton supports Python 3.8+. We include the optional `visualization` dependency to display our Apache Hamilton DAG. For visualizations, [Graphviz](https://graphviz.org/download/) needs to be installed on your system separately.

```bash
pip install "apache-hamilton[visualization]"
```

To use the Apache Hamilton UI, install the `ui` and `sdk` dependencies.

```bash
pip install "apache-hamilton[ui,sdk]"
```

To try Apache Hamilton i
```

---

**Machine-readable endpoints**

- JSON: [`/api/graphcanon/tools/apache-hamilton`](/api/graphcanon/tools/apache-hamilton)
- LLM index: [/llms.txt](/llms.txt)
- Full corpus: [/llms-full.txt](/llms-full.txt)

_GraphCanon - The knowledge graph for AI development. https://www.graphcanon.com/_
