# creating-openlineage-extractors

> Claude/Codex skill by [@astronomer](https://omgskills.com/library/astronomer/index.md) · 454 stars · Updated 2026-10-14

Create custom OpenLineage extractors for Airflow operators. Use when the user needs lineage from unsupported or third-party operators, wants column-level lineage, or needs complex extraction logic beyond what inlets/outlets provide.

Tags: agentic-workflow, agents, ai, ai-agents, airflow, apache-airflow, claude, cursor, dag, data-engineering, data-pipelines, dbt, llm, mcp, orchestrator, skills, workflow-automation, workflow-management, workflow-orchestration, workflows

## Install

```sh
git clone https://github.com/astronomer/agents /tmp/agents && ln -s /tmp/agents/skills/creating-openlineage-extractors ~/.claude/skills/creating-openlineage-extractors
```

## From README

Creating OpenLineage Extractors This skill guides you through creating custom OpenLineage extractors to capture lineage from Airflow operators that don't have built-in support. Reference: See the OpenLineage provider developer guide for the latest patterns and list of supported operators/hooks. When to Use Each Approach | Scenario | Approach | |----------|----------| | Operator you own/maintain | OpenLineage Methods (recommended, simplest) | | Third-party operator you can't modify | Custom Extractor | | Need column-level lineage | OpenLineage Methods or Custom Extractor | | Complex extraction logic | OpenLineage Methods or Custom Extractor | | Simple table-level lineage | Inlets/Outlets (simplest, but lowest priority) | Important: Always prefer OpenLineage methods over custom extractors when possible. Extractors are harder to write, easier to diverge from operator behavior after changes, and harder to debug.

## Links

- HTML page: https://omgskills.com/skills/astronomer/agents/creating-openlineage-extractors/
- GitHub: https://github.com/astronomer/agents
- Author: [@astronomer](https://omgskills.com/library/astronomer/index.md)

## More from this repo

- [airflow-state-store](https://omgskills.com/skills/astronomer/agents/skills/airflow-state-store/index.md) — Persists task and asset state across retries and DAG runs using Airflow 3.3's AIP-103 key/value stores...
   - [@astronomer](https://omgskills.com/library/astronomer/index.md) · 456 stars
- [authoring-go-sdk-tasks](https://omgskills.com/skills/astronomer/agents/skills/authoring-go-sdk-tasks/index.md) — Writes Airflow task logic in Go using the Airflow Go SDK.
   - [@astronomer](https://omgskills.com/library/astronomer/index.md) · 456 stars
- [authoring-java-sdk-tasks](https://omgskills.com/skills/astronomer/agents/skills/authoring-java-sdk-tasks/index.md) — Writes Airflow task logic in Java, Kotlin, or any JVM language using the Airflow Java SDK.
   - [@astronomer](https://omgskills.com/library/astronomer/index.md) · 456 stars
