Chart Tests
astronomer/airflow-chart
A skill your agent uses when writing, editing, reviewing, or running Helm chart tests for the Astronomer airflow-chart repository.
Configures Airflow to run language SDK tasks (Java, Go, and future native SDKs) — register a coordinator, map a queue to it, ensure the runtime/artifact on workers, and tune coordinator options.
$ npx skills add astronomer/agents --skill configuring-airflow-language-sdks -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install astronomer/agents configuring-airflow-language-sdks --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/astronomer/agents.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/configuring-airflow-language-sdks .claude/skills/configuring-airflow-language-sdks && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "configuring-airflow-language-sdks" agent skill from https://github.com/astronomer/agents/tree/main/skills/configuring-airflow-language-sdks into .claude/skills/configuring-airflow-language-sdks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "configuring-airflow-language-sdks", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/astronomer/agents/tree/main/skills/configuring-airflow-language-sdksType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add astronomer/agents --skill configuring-airflow-language-sdks -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install astronomer/agents configuring-airflow-language-sdks --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/astronomer/agents.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/configuring-airflow-language-sdks .agents/skills/configuring-airflow-language-sdks && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "configuring-airflow-language-sdks" agent skill from https://github.com/astronomer/agents/tree/main/skills/configuring-airflow-language-sdks into .agents/skills/configuring-airflow-language-sdks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "configuring-airflow-language-sdks", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add astronomer/agents --skill configuring-airflow-language-sdks -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install astronomer/agents configuring-airflow-language-sdks --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/astronomer/agents.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/configuring-airflow-language-sdks .cursor/skills/configuring-airflow-language-sdks && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "configuring-airflow-language-sdks" agent skill from https://github.com/astronomer/agents/tree/main/skills/configuring-airflow-language-sdks into .cursor/skills/configuring-airflow-language-sdks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "configuring-airflow-language-sdks", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/astronomer/agents.git --path skills/configuring-airflow-language-sdks--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add astronomer/agents --skill configuring-airflow-language-sdks -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install astronomer/agents configuring-airflow-language-sdks --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/astronomer/agents.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/configuring-airflow-language-sdks .gemini/skills/configuring-airflow-language-sdks && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "configuring-airflow-language-sdks" agent skill from https://github.com/astronomer/agents/tree/main/skills/configuring-airflow-language-sdks into .gemini/skills/configuring-airflow-language-sdks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "configuring-airflow-language-sdks", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install astronomer/agents configuring-airflow-language-sdksInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add astronomer/agents --skill configuring-airflow-language-sdks -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/astronomer/agents.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/configuring-airflow-language-sdks .github/skills/configuring-airflow-language-sdks && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "configuring-airflow-language-sdks" agent skill from https://github.com/astronomer/agents/tree/main/skills/configuring-airflow-language-sdks into .github/skills/configuring-airflow-language-sdks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "configuring-airflow-language-sdks", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add astronomer/agents --skill configuring-airflow-language-sdks -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install astronomer/agents configuring-airflow-language-sdks --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/astronomer/agents.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/configuring-airflow-language-sdks .opencode/skills/configuring-airflow-language-sdks && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "configuring-airflow-language-sdks" agent skill from https://github.com/astronomer/agents/tree/main/skills/configuring-airflow-language-sdks into .opencode/skills/configuring-airflow-language-sdks/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "configuring-airflow-language-sdks", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
configuring-airflow-language-sdksConfigures Airflow to run language SDK tasks (Java, Go, and future native SDKs) — register a coordinator, map a queue to it, ensure the runtime/artifact on workers, and tune coordinator options.
Configuring Airflow Language Sdks is an agent skill from astronomer/agents. Configures Airflow to run language SDK tasks (Java, Go, and future native SDKs) — register a coordinator, map a queue to it, ensure the runtime/artifact on workers, and tune coordinator options. Use when the user wants Airflow to route a queue to a native-language coordinator, asks about the [sdk] coordinators/queuetocoordinator settings, AIRFLOWSDKCOORDINATORS, jarsroot, executablesroot or other coordinator kwargs, taskstartuptimeout, or why their native tasks aren't being picked up. Covers the shared routing…
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Data & Analytics, covering Data pipelines and ETL. It works with Apache Airflow and Java. The repository describes itself as: AI agent tooling for data engineering workflows. The licence is Apache-2.0.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 486ee63. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
javadockerFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use docker, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Configuring Airflow Language Sdks loads about 2.3k tokens when it runs. Until then it costs about 165 tokens; SKILL.md has 972 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
This form is convenient for containers, `.env` files, Docker Compose, and Helm.Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from astronomer/agents at commit 486ee63, republished under its Apache-2.0 licence (© astronomer). 972 words, ~2,345 tokens.
.claude/skills/configuring-airflow-language-sdks/SKILL.md (or your agent's skills folder).To run language SDK tasks, Airflow needs to know two things: which coordinator launches the native subprocess, and which queue routes to that coordinator. The mechanism is identical across every language SDK — only each coordinator's classpath and kwargs differ. This skill documents the shared wiring once, then the per-coordinator options. It is platform-neutral: the same settings apply on open-source Airflow and on managed platforms like Astro.
Experimental. The language SDKs are in preview; configuration keys may change.
For the task code, see authoring-language-sdk-tasks (and the per-language authoring skill, e.g. authoring-java-sdk-tasks, authoring-go-sdk-tasks). For building and shipping the artifact, see the per-language deploy skill (e.g. deploying-java-sdk-bundles, deploying-go-sdk-bundles).
apache-airflow-task-sdk, installed with Airflow). No extra Python package is required.Both live in the [sdk] configuration section and apply to every language SDK:
coordinators — a JSON object mapping a coordinator name you choose to its implementation (classpath) and constructor kwargs.queue_to_coordinator — a JSON object mapping a task queue to a coordinator name.A task whose stub sets queue="..." is handed to the named coordinator, which launches the native subprocess. The coordinator name is arbitrary — it just has to be the same string in both settings. The queue name must match the queue= set on the Python @task.stub.
airflow.cfg[sdk]
coordinators = {
"java-jdk17": {
"classpath": "airflow.sdk.coordinators.java.JavaCoordinator",
"kwargs": {"jars_root": ["/opt/airflow/jars"]}
},
"go": {
"classpath": "airflow.sdk.coordinators.executable.ExecutableCoordinator",
"kwargs": {"executables_root": ["/opt/airflow/executable-bundles"]}
}
}
queue_to_coordinator = {"java": "java-jdk17", "golang": "go"}Each value must be valid one-line JSON. This form is convenient for containers, .env files, Docker Compose, and Helm.
export AIRFLOW__SDK__COORDINATORS='{"java-jdk17": {"classpath": "airflow.sdk.coordinators.java.JavaCoordinator", "kwargs": {"jars_root": ["/opt/airflow/jars"]}}, "go": {"classpath": "airflow.sdk.coordinators.executable.ExecutableCoordinator", "kwargs": {"executables_root": ["/opt/airflow/executable-bundles"]}}}'
export AIRFLOW__SDK__QUEUE_TO_COORDINATOR='{"java": "java-jdk17", "golang": "go"}'The examples above register multiple coordinators at once (one per language) and map a different queue to each — register only the ones you use.
The classpath and kwargs are specific to each coordinator. Add a subsection here as new language SDKs land.
classpath: airflow.sdk.coordinators.java.JavaCoordinatorjava on PATH, or set java_executable).| Parameter | Default | Description |
|---|---|---|
jars_root | (required) | One or more directories scanned recursively for .jar files. Accepts a string or a list of strings/paths. The classpath is assembled automatically. |
java_executable | "java" | Path to the java binary. Defaults to java on $PATH. |
jvm_args | [] | Extra JVM arguments, e.g. ["-Xmx1g", "-Dsome.property=value"]. |
main_class | (auto-detect) | Explicit entry-point class. If omitted, the coordinator scans jars_root for a JAR whose manifest declares Main-Class. Set this explicitly if multiple executable JARs are present — otherwise the choice is non-deterministic. |
task_startup_timeout | 10.0 | Seconds to wait for the subprocess to connect after launch. Increase it if JVM startup is slow (constrained hardware, large classpath, first cold start). |
Java logging via java.util.logging. Of the SDK logging integrations, only JPL and SLF4J are zero-config build dependencies; Log4j 2 and JUL need extra setup — see the logging integration section in deploying-java-sdk-bundles. JUL's documented alternative to calling AirflowJulHandler.setup() in main() is a logging.properties file, wired through jvm_args:
[sdk]
coordinators = {
"java-jdk17": {
"classpath": "airflow.sdk.coordinators.java.JavaCoordinator",
"kwargs": {
"jars_root": ["/opt/airflow/jars"],
"jvm_args": ["-Djava.util.logging.config.file=/opt/airflow/logging.properties"]
}
}
}classpath: airflow.sdk.coordinators.executable.ExecutableCoordinatorexec format error).| Parameter | Default | Description |
|---|---|---|
executables_root | (required) | One or more directories scanned recursively for executable bundles (AFBNDL01-trailered native binaries). Accepts a string or a list of strings/paths. Bundles are identified by the trailer magic, not by filename. The coordinator matches an incoming dag_id against each bundle's embedded manifest and verifies its integrity hash before launching. |
task_startup_timeout | 10.0 | Seconds to wait for the subprocess to connect after launch. Increase it if bundle startup is slow (constrained hardware, first cold start). |
(Future coordinators — for other languages — will list their own classpath, runtime, and kwargs here.)
java -version via astro dev bash or docker compose exec ...; for the Go SDK, the packed bundle exists and matches the worker's OS/arch.kwargs (e.g. jars_root, executables_root) actually contains your artifact on the worker filesystem.| Symptom | Likely cause / fix |
|---|---|
| Task fails immediately mentioning coordinator or queue | coordinators / queue_to_coordinator not valid one-line JSON, or the queue name doesn't match the stub's queue=. Fix the JSON and restart. |
Runtime not found (e.g. java: command not found) | The language runtime isn't on the worker, or the executable path kwarg is wrong. Install the runtime and verify its version. |
| "No artifact found" / "no DAGs" / "no bundle contains dag_id" | The artifact-directory kwarg points at the wrong place, the artifact isn't there yet, or its dag_id doesn't match the stub. Confirm the path and the IDs. |
| Wrong/ambiguous entry point (Java) | Multiple executable JARs under jars_root. Set main_class explicitly. |
| Go bundle is skipped silently | Not a valid AFBNDL01 bundle, or its integrity hash failed (re-pack after any strip/sign/rebuild). |
exec format error on the Go bundle | Built for a different OS/arch than the worker. Cross-compile with --goos/--goarch (see deploying-go-sdk-bundles). |
| DAG run hangs at the native task | Raise task_startup_timeout (e.g. 30.0); first-run subprocess startup can be slow. |
© astronomer, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/configuring-airflow-language-sdks of astronomer/agents.
Open the folder on GitHubat commit 486ee63
Configuring Airflow Language Sdks next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Configuring Airflow Language Sdks this skillastronomer/agents | 451 | — | ~2.3k | Automated safety check: Notes | Apache-2.0 | |
| Chart Testsastronomer/airflow-chart | 297 | — | ~2.8k | Automated safety check: Pass | Custom licence | |
| Functional Testsastronomer/airflow-chart | 297 | — | ~2.2k | Automated safety check: Pass | Custom licence | |
| Create Examplegodatadriven/whirl | 205 | — | ~1.1k | Automated safety check: Pass | Apache-2.0 | |
| Senior Data Engineerbenchflow-ai/skillsbench | 1.8k | — | ~5.9k | Automated safety check: Pass | MIT | |
| Airflow DAG Patternswshobson/agents | 40k | 9 repos | ~784 | Automated safety check: Pass | MIT |
astronomer/airflow-chart
A skill your agent uses when writing, editing, reviewing, or running Helm chart tests for the Astronomer airflow-chart repository.
astronomer/airflow-chart
A skill your agent uses when writing, editing, reviewing, or running functional (end-to-end) tests for the Astronomer airflow-chart repository.
godatadriven/whirl
Create a new Whirl example project in the examples/ directory.
benchflow-ai/skillsbench
World-class data engineering skill for building scalable data pipelines, ETL/ELT systems, real-time streaming, and data infrastructure.
wshobson/agents
Patterns for writing production-ready Apache Airflow DAGs: task dependencies, custom operators and sensors, local testing, and rules for what to avoid.
godatadriven/whirl
Bump the Airflow or Python version across all project files.
astronomer/agents
Queries the data warehouse with SQL and answers business questions about data.
astronomer/agents
Queries, manages, and troubleshoots Apache Airflow using the af CLI.
astronomer/agents
Guide for migrating Dagster projects to Apache Airflow 3 on Astro.
astronomer/agents
Workflow and best practices for writing Apache Airflow DAGs.
astronomer/agents
Deploys Airflow DAGs and projects. An agent skill from astronomer/agents.
astronomer/agents
Builds human-in-the-loop (HITL) Airflow workflows - approval gates, form input, and human-driven branching.
Works with
Categories
Configures Airflow to run language SDK tasks (Java, Go, and future native SDKs) — register a coordinator, map a queue to it, ensure the runtime/artifact on workers, and tune coordinator options. Configuring Airflow Language Sdks is an agent skill from astronomer/agents. Configures Airflow to run language SDK tasks (Java, Go, and future native SDKs) — register a coordinator, map a queue to it, ensure the runtime/artifact on workers, and tune coordinator options.
Configuring Airflow Language Sdks fits situations like: the user wants Airflow to route a queue to a native-language coordinator; asks about the [sdk] coordinators/queuetocoordinator settings; AIRFLOWSDKCOORDINATORS; executablesroot.
Run `npx skills add astronomer/agents --skill configuring-airflow-language-sdks -a claude-code`. Or copy the skill folder (skills/configuring-airflow-language-sdks in astronomer/agents) into .claude/skills/configuring-airflow-language-sdks in your project. Claude Code loads it when a task matches its description.
Run `npx skills add astronomer/agents --skill configuring-airflow-language-sdks -a codex`. Or copy the skill folder (skills/configuring-airflow-language-sdks in astronomer/agents) into .agents/skills/configuring-airflow-language-sdks in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add astronomer/agents --skill configuring-airflow-language-sdks -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/configuring-airflow-language-sdks, .gemini/skills/configuring-airflow-language-sdks, .github/skills/configuring-airflow-language-sdks and .opencode/skills/configuring-airflow-language-sdks in your project.
Going by SKILL.md and its folder, Configuring Airflow Language Sdks needs the command-line tools its instructions call (java and docker). Our summary lists: Python 3; Docker.
SKILL.md contains no URLs. Its commands use docker, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Configuring Airflow Language Sdks is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Configuring Airflow Language Sdks: Chart Tests (astronomer/airflow-chart, 297 stars), Functional Tests (astronomer/airflow-chart, 297 stars), Create Example (godatadriven/whirl, 205 stars) and Senior Data Engineer (benchflow-ai/skillsbench, 1.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
astronomer (a GitHub organization) maintains it in astronomer/agents, which has 451 GitHub stars. The repository holds 34 skills in this directory. The repository was last updated on October 7, 2026.
Source: astronomer/agents on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.