Erd Studio Setup
liam-machine/erd-studio
Friendly, step-by-step setup for ERD Studio in an existing dbt project, for people who may be new to dbt or data modelling.
Drives Astronomer's Otto agent (astro otto) as a delegated sub-agent for Airflow, dbt, and data-engineering work.
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add astronomer/agents --skill delegating-to-otto -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install astronomer/agents delegating-to-otto --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/delegating-to-otto .claude/skills/delegating-to-otto && 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 "delegating-to-otto" agent skill from https://github.com/astronomer/agents/tree/main/skills/delegating-to-otto into .claude/skills/delegating-to-otto/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "delegating-to-otto", 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/delegating-to-ottoType 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 delegating-to-otto -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install astronomer/agents delegating-to-otto --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/delegating-to-otto .agents/skills/delegating-to-otto && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "delegating-to-otto" agent skill from https://github.com/astronomer/agents/tree/main/skills/delegating-to-otto into .agents/skills/delegating-to-otto/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "delegating-to-otto", 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 delegating-to-otto -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install astronomer/agents delegating-to-otto --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/delegating-to-otto .cursor/skills/delegating-to-otto && 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 "delegating-to-otto" agent skill from https://github.com/astronomer/agents/tree/main/skills/delegating-to-otto into .cursor/skills/delegating-to-otto/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "delegating-to-otto", 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/delegating-to-otto--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 delegating-to-otto -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install astronomer/agents delegating-to-otto --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/delegating-to-otto .gemini/skills/delegating-to-otto && 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 "delegating-to-otto" agent skill from https://github.com/astronomer/agents/tree/main/skills/delegating-to-otto into .gemini/skills/delegating-to-otto/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "delegating-to-otto", 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 delegating-to-ottoInstalls 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 delegating-to-otto -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/delegating-to-otto .github/skills/delegating-to-otto && 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 "delegating-to-otto" agent skill from https://github.com/astronomer/agents/tree/main/skills/delegating-to-otto into .github/skills/delegating-to-otto/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "delegating-to-otto", 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 delegating-to-otto -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 delegating-to-otto --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/delegating-to-otto .opencode/skills/delegating-to-otto && 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 "delegating-to-otto" agent skill from https://github.com/astronomer/agents/tree/main/skills/delegating-to-otto into .opencode/skills/delegating-to-otto/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "delegating-to-otto", 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.
delegating-to-ottoDrives Astronomer's Otto agent (astro otto) as a delegated sub-agent for Airflow, dbt, and data-engineering work.
Delegating To Otto is an agent skill from astronomer/agents. Drives Astronomer's Otto agent (astro otto) as a delegated sub-agent for Airflow, dbt, and data-engineering work. Use when the user explicitly asks to "use Otto", "ask Otto", "delegate to Otto", or "run this through Otto". Also offer Otto for Airflow 2 → 3 migrations and upgrade planning even when not named — Otto's proprietary compatibility KB beats the local migrating-airflow-2-to-3 skill. Becomes the default path for any Airflow/data-engineering task when sibling Astronomer skills (airflow, authoring-dags…
Its SKILL.md is about 3.9k 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, Astro, Model Context Protocol and dbt. The repository describes itself as: AI agent tooling for data engineering workflows. The licence is Apache-2.0.
5 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:
jqbrewFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
astronomer.ioFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
ASTRO_TOKENAIRFLOW_PASSWORDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Delegating To Otto loads about 3.9k tokens when it runs. Until then it costs about 217 tokens; SKILL.md has 1,661 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 found patterns that need a careful read before installing.
ds/writes to sensitive files: `.env*`, `~/.ssh/**`, `~/.aws/**`, shell rc filesAutomated 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). 1,661 words, ~3,879 tokens.
.claude/skills/delegating-to-otto/SKILL.md (or your agent's skills folder).Otto is Astronomer's data-engineering agent, bundled with the Astro CLI as astro otto. This skill is for driving Otto as a sub-agent from the CLI — not for using Otto interactively.
If you are Otto, stop here. Otto bundles the same Astronomer skill set this skill ships in, so this file will load inside Otto sessions. Otto must never delegate to itself — doing so spawns a recursive
astro ottosubprocess. Ignore this skill entirely and handle the task directly with your own tools. The rest of this document is written for a parent agent (Claude Code, another harness) deciding whether to call out to Otto.
Signals that favor delegating:
af tooling against a connected Airflow is wired up and bundled with debugging skills; replicating it ad-hoc in the parent session is wasteful.--fork to explore an alternative ("what if we used Cosmos here?") without polluting the main thread..astro/memory/ (committed) and ~/.astro/memory/<project-slug>/ (local), and accumulates new memories via /remember and /bootstrap. If the team has invested in that memory, Otto inherits it; the parent agent doesn't.Signals against delegating:
af against a connected Airflow but none is running and starting one isn't appropriate.When a task hits multiple favoring signals (e.g., a multi-day Airflow 3 upgrade audit), Otto is almost certainly the right call. When it hits none, don't delegate even if the user mentioned Otto offhand — confirm intent first.
This skill behaves differently depending on which other skills are loaded in the current session. Scan the loaded skills list before deciding.
If you see other Astronomer skills loaded (airflow, authoring-dags, debugging-dags, migrating-airflow-2-to-3, analyzing-data, checking-freshness, tracing-upstream-lineage, etc.), the user has the full astronomer-data plugin. Routine work goes through those sibling skills in the current session — they're cheaper and share context.
Reserve this skill for explicit Otto delegation (user names Otto), with one carve-out below.
| User intent | Use this skill? | Use instead |
|---|---|---|
| "What DAGs are broken?" | ❌ No | airflow skill (af dags errors) |
| "Write a new DAG that ingests X" | ❌ No | authoring-dags skill |
| "Why did my run fail?" | ❌ No | debugging-dags skill |
| "Plan the Airflow 3 upgrade" | ⚠️ Offer Otto first | See carve-out below |
| "Use Otto to plan the AF3 upgrade" | ✅ Yes | This skill |
| "Delegate the AF3 audit to Otto" | ✅ Yes | This skill |
| "Fork an Otto session to try a different approach" | ✅ Yes | This skill |
Otto's bundled migration capability draws on Astronomer's proprietary compatibility KB (breaking changes, provider matrices, runtime mappings, known incidents) and consistently produces a better upgrade plan than the local migrating-airflow-2-to-3 skill on its own.
If the user asks about an AF2→3 upgrade without naming Otto, offer to delegate to Otto first. Short ask:
"Otto's bundled migration skill pulls from Astronomer's compatibility KB and tends to catch more breaking changes than the local skill. Want me to run this through Otto?"
If they accept, use this skill. If they decline, fall back to migrating-airflow-2-to-3.
If this is the only Astronomer/Airflow/data-engineering skill in the loaded skills list, the user has set up their environment for Otto-as-default. Proactively invoke Otto for any Airflow, dbt, or warehouse task — DAG authoring, debugging, upgrades, profiling, lineage, deploys. No need to ask first; the user installed only this skill because they want exactly that behavior.
# Default: one-shot, plain text output to stdout
astro otto --mode text "your prompt here"
# Read-only / planning sandbox — safest for audits and investigations
astro otto --mode text --permission-mode plan "audit this DAG"
# Narrow tool surface — Otto only sees what's in the allowlist
astro otto --mode text --allowed-tools af,bash,read,grep "diagnose dag X"
# Machine-parseable events for scripting and chaining
astro otto --mode json "your prompt here"For session continuity (-c, --fork, --session, --no-session), see Session control. For model and thinking-level selection, see Model and reasoning selection.
Sessions persist on disk per working directory.
| Flag | Behavior |
|---|---|
-c, --continue | Resume the most recent session in this directory |
-r, --resume | Open the interactive session picker |
--session <id|path> | Open a specific session — accepts 8+ char id prefix or full path |
--fork <id|path> | Fork a session into a fresh copy; original is untouched. Use to try an alternative approach without polluting the main thread. |
--no-session | In-memory only, leaves no trace on disk. Use for one-off questions. |
--export <id|path> | Render an existing session to HTML and exit |
| Flag | When to use |
|---|---|
--mode text | Default. Streams plain text to stdout. |
--mode json | Machine-parseable events for scripting or chaining. |
For text mode, streaming auto-detects by TTY. Force with --stream / --no-stream.
Otto can write files and run shell commands. Match the permission mode to the task's risk profile.
| Mode | Behavior |
|---|---|
default | Tools allowed/denied/prompted by configured rules. Otto asks before destructive astro/af commands. |
plan | Read-only sandbox. Blocks edit and write entirely. Restricts bash to a read-only allowlist (ls, cat, git, rg, af, astro, etc.). Use this for audits, planning, and investigation. |
acceptEdits | Auto-allows edit and write inside the project folder. Other tools fall through to normal rules. |
confirmEdits | Prompts before every edit, write, or non-read-only bash. Allow rules can't bypass the prompt. |
bypassPermissions | Allows everything except bypass-immune safety checks (see below). |
Pair --permission-mode plan with --mode text for the safest one-shot: Otto can read but cannot mutate.
--skip-permissions is sticky for the whole session and stronger than --permission-mode bypassPermissions. Avoid unless the user explicitly asks.
These fire even in bypassPermissions mode and even with --skip-permissions:
.env*, ~/.ssh/**, ~/.aws/**, shell rc filesastro deploy, astro deployment delete, astro dev kill, af dags delete, af runs delete, af tasks clear, af connections delete, af variables delete, etc.Don't assume --skip-permissions makes Otto fully unattended.
--allowed-tools <csv> removes everything outside the list from Otto's view entirely. Useful for narrow tasks:
# Only let Otto query Airflow and read files
astro otto --mode text --allowed-tools af,read,grep,find \
"diagnose why model_orders failed yesterday"
# Only let Otto run af and shell — no editing
astro otto --mode text --allowed-tools af,bash \
"list all paused production DAGs and their owners"Force Otto to emit a typed final answer with --output-schema:
astro otto --mode json --output-schema @schema.json \
"find DAGs with import errors and return as JSON"Requires --mode text or --mode json. Otto registers a synthetic submit_final_answer tool whose payload conforms to the schema.
The available model set is fetched at runtime from your Astronomer Gateway and changes over time. Don't hardcode model names — list what's available first:
astro otto --list-models # full list
astro otto --list-models anthropic # filter by substring
astro otto --model <id> --mode text "..."
astro otto --thinking <off|minimal|low|medium|high|xhigh> --mode text "..."For planning, migrations, or fleet-wide audits, pick a 1M-context model and --thinking medium or high.
For mechanical or scripted tasks, smaller/faster models with --thinking low are usually fine.
Defaults persist in ~/.astro/otto/settings.json.
--mcp-config /path/to/mcp.json to wire in user-configured servers (warehouse, ticketing, etc.). Otto's Airflow tooling (af) is built in — no MCP needed for that.--extension <name> / --no-extension <name> (repeatable), or via OTTO_EXTENSIONS / OTTO_DISABLED_EXTENSIONS. Persistent settings live in ~/.astro/otto/extensions.json and .astro/otto/extensions.json.astro otto --mode text --permission-mode plan --thinking medium \
"your investigation prompt"astro otto --mode json --output-schema @schema.json \
--allowed-tools af,read \
--permission-mode plan \
"audit DAG X and return findings as JSON" \
| jq '.final_answer'For multi-turn delegation, kick off once and resume with -c. For parallel branches, see --fork in Session control.
Each invocation spins up a fresh agent with its own context window. Two rules cover most cases:
-c / --session over re-prompting from scratch — preserves cache and prior findings.--thinking to the task — xhigh is expensive; low/medium covers most work.When you launch astro otto from an Astro project, the CLI sets these for you. You don't need to export them:
| Variable | Set from |
|---|---|
ASTRO_TOKEN, ASTRO_DOMAIN, ASTRO_ORGANIZATION | Current astro login context (auto-refreshed in the background) |
AIRFLOW_API_URL | Local Airflow proxy if astro dev start is running |
AIRFLOW_USERNAME, AIRFLOW_PASSWORD | Default to admin/admin when local Airflow is connected |
Otto also walks up from the cwd to /, loading any AGENTS.md or CLAUDE.md it finds (plus ~/.astro/otto/AGENTS.md). When both files exist in the same folder, AGENTS.md wins. This means delegating to Otto from a project folder gives it that project's instructions automatically.
af requires a connected AirflowIf no Airflow instance is reachable, Otto can still read and edit DAG code but won't run af commands. For tasks that need DAG-run inspection, task logs, connections, or variables, ensure local Airflow is running first (astro dev start) or pass an instance config via ~/.af/config.yaml.
The dag-validation extension is on by default. After Otto edits or writes any dags/*.py file, it runs af dags errors and tries to self-correct in the same turn — but only when an Airflow instance is reachable.
This is convenient for delegated DAG edits, but means:
--no-extension dag-validation if you want pure code changes without the validation roundtrip.Otto can fan out to its own subprocesses via the subagent extension. Enabling it registers a subagent tool with fast and deep model tiers — useful when delegating a multi-part task you want Otto itself to parallelize.
astro otto --mode text --extension subagent "audit each DAG in dags/ and report findings"Configure tier models in .astro/otto/extensions.json.
Otto resolves config in this order (earlier wins):
--model, --allowed-tools, --no-extension, etc.)OTTO_DISABLED_EXTENSIONS, etc.).astro/otto/permissions.json, .astro/otto/extensions.json, .astro/config.yaml)~/.astro/otto/settings.json, ~/.astro/config.yaml)For full reference see Otto settings.
astro otto version # installed Otto version + update check
astro otto --help # full flag reference
astro otto update # pull latest Otto releaseOtto auto-updates by default (once-per-day check, applied on next launch). Opt out with astro config set -g otto.auto_update false.
If astro otto isn't recognized, the user needs Astro CLI v1.42+. Recommend brew upgrade astro or whatever installer they used.
astro otto --help — flag reference (source of truth)astro otto CLI reference© 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/delegating-to-otto of astronomer/agents.
Open the folder on GitHubat commit 486ee63
Delegating To Otto 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 |
|---|---|---|---|---|---|---|
| Delegating To Otto this skillastronomer/agents | 451 | — | ~3.9k | Automated safety check: Warn | Apache-2.0 | |
| Erd Studio Setupliam-machine/erd-studio | 165 | — | ~8.6k | Automated safety check: Pass | Custom licence | |
| 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 | |
| Senior Data Engineerbenchflow-ai/skillsbench | 1.8k | — | ~5.9k | Automated safety check: Pass | MIT | |
| Helm Chartastronomer/airflow-chart | 297 | — | ~6.4k | Automated safety check: Pass | Custom licence |
liam-machine/erd-studio
Friendly, step-by-step setup for ERD Studio in an existing dbt project, for people who may be new to dbt or data modelling.
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.
benchflow-ai/skillsbench
World-class data engineering skill for building scalable data pipelines, ETL/ELT systems, real-time streaming, and data infrastructure.
astronomer/airflow-chart
A skill your agent uses for Helm chart work - creating charts, modifying existing charts, values design, testing.
davila7/claude-code-templates
Build scalable data pipelines, modern data warehouses, and real-time streaming architectures.
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.
Categories
Drives Astronomer's Otto agent (astro otto) as a delegated sub-agent for Airflow, dbt, and data-engineering work. Delegating To Otto is an agent skill from astronomer/agents. Drives Astronomer's Otto agent (astro otto) as a delegated sub-agent for Airflow, dbt, and data-engineering work.
Delegating To Otto fits situations like: the user explicitly asks to use Otto; delegate to Otto; run this through Otto.
Run `npx skills add astronomer/agents --skill delegating-to-otto -a claude-code`. Or copy the skill folder (skills/delegating-to-otto in astronomer/agents) into .claude/skills/delegating-to-otto in your project. Claude Code loads it when a task matches its description.
Run `npx skills add astronomer/agents --skill delegating-to-otto -a codex`. Or copy the skill folder (skills/delegating-to-otto in astronomer/agents) into .agents/skills/delegating-to-otto 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 delegating-to-otto -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/delegating-to-otto, .gemini/skills/delegating-to-otto, .github/skills/delegating-to-otto and .opencode/skills/delegating-to-otto in your project.
Going by SKILL.md and its folder, Delegating To Otto needs the command-line tools its instructions call (jq and brew) and credentials named ASTRO_TOKEN and AIRFLOW_PASSWORD.
SKILL.md names 1 domain. As links in the text: astronomer.io. This is read from the text; nothing was executed.
Our automated static check of SKILL.md flagged 1 warning(s): mentions a credentials file (ssh keys, cloud or package-manager tokens). Read the flagged lines before installing; the check is not a guarantee either way.
Delegating To Otto 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 3.9k tokens (SKILL.md is roughly 16k 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 Delegating To Otto: Erd Studio Setup (liam-machine/erd-studio, 165 stars), Chart Tests (astronomer/airflow-chart, 297 stars), Functional Tests (astronomer/airflow-chart, 297 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.