{"id":37116235,"url":"https://github.com/pjgaetan/airflow-cli","last_synced_at":"2026-01-14T13:38:07.822Z","repository":{"id":167957991,"uuid":"637551506","full_name":"PJGaetan/airflow-cli","owner":"PJGaetan","description":"CLI to interact with airflow REST API","archived":false,"fork":false,"pushed_at":"2024-03-19T22:38:20.000Z","size":130,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-06-21T20:03:48.462Z","etag":null,"topics":["airflow","cli","terminal"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/PJGaetan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-07T22:25:58.000Z","updated_at":"2024-04-18T07:53:08.000Z","dependencies_parsed_at":"2024-06-21T19:12:27.894Z","dependency_job_id":"f7ed8b12-fbc9-4903-8d06-2851c3900ae9","html_url":"https://github.com/PJGaetan/airflow-cli","commit_stats":null,"previous_names":["pjgaetan/airflow-cli"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/PJGaetan/airflow-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PJGaetan%2Fairflow-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PJGaetan%2Fairflow-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PJGaetan%2Fairflow-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PJGaetan%2Fairflow-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/PJGaetan","download_url":"https://codeload.github.com/PJGaetan/airflow-cli/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/PJGaetan%2Fairflow-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28421417,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T13:30:50.153Z","status":"ssl_error","status_checked_at":"2026-01-14T13:29:08.907Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["airflow","cli","terminal"],"created_at":"2026-01-14T13:38:07.051Z","updated_at":"2026-01-14T13:38:07.810Z","avatar_url":"https://github.com/PJGaetan.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# airflow-cli\n\nCli to interact with you airflow instance using the REST API when you can't ssh into the airflow server.\n\n\nThe code as been greatly inspired by [glab](https://gitlab.com/gitlab-org/cli/-/tree/main) and [jira-cli](https://github.com/ankitpokhrel/jira-cli).\n\n## Install\n\nYou can use homebrew to install it on MacOs or Linux.\n\n```sh\nbrew install pjgaetan/pjgaetan/airflow-cli\n```\n\n## Quickstart\n\n### Create a new profile \n\n#### Using the CLI\n\nCreate a profile using :\n\n```sh\nairflow-cli profile create\n```\n\nyou can choose between two kind of authentication :\n- user/password\n- jwt auth\n\nIn case of a jwt auth you can choose to use a shell command to retrieve the jwt token instead of directly providing it.\n\n#### Editing the config file\n\nThe config file is stored in `~/.config/.airflow/.config`.\nYou can edit it directly.\n\n```\n; classic airflow authentication\n[default]\nuser = airflow\npassword = airflow\nurl = http://0.0.0.0:8080/api/v1/\n\n; auth across a proxy via jwt\n[token]\ntoken = secrettoken\nurl = https://some.server:8080/path/to/proxy\n\n; you can retrieve the token via any shell command\n[shell]\nisShell = true\ntoken = cat file_with_token\nurl = https://some.server:8080/path/to/proxy\n\n\n```\n\n## Commands\n\n### Dag\n\nThe `dag` command allow you to access dags and dag runs resources. They are by default sorted by `-date_start`.\n\n```sh\n# list dags\nairflow-cli dag list\n\n# list dag run (prompt will ask for which dag_id)\nairflow-cli dag list-run\n\n# list dag run for dag_id \nairflow-cli dag list-run -d dag_id\n\n# trigger a dag run for dag_id \nairflow-cli dag trigger -d dag_id\n\n# get status of dag runs, tasks associated and log of a task instance\nairflow-cli dag trigger -d dag_id\n```\n\n\n### Dag graph\n\nTo get a [graphviz](https://graphviz.org/) representation of the graph.\n```sh \nairflow-cli dag graph\n```\n\nYou can use `graph-easy` to plot an asci art in your terminal. Installation instruction [here](https://stackoverflow.com/questions/3211801/graphviz-and-ascii-output/3391213).\n\n```sh\nairflow-cli dag graph -d tutorial_dag | graph-easy --from=graphviz --as=boxart\n\n              tutorial_dag\n\n╭─────────╮     ╭───────────╮     ╭──────╮\n│ extract │ ──▶ │ transform │ ──▶ │ load │\n╰─────────╯     ╰───────────╯     ╰──────╯\n\n```\n\n### Dag run grid\n\nGet a grid view similar to airflow UI.\n\n```sh\ngo run airflow-cli/main.go dag grid -d example_bash_operator\nexample_bash_operator    v v v v v v\n------------------------------------\nalso_run_this            v v v v v v\nrunme_0                  v v v v v v\nrunme_1                  v v v v v v\nrunme_2                  v v v v v v\nrun_after_loop           v v v v v v\nthis_will_skip           - - - - - -\nrun_this_last            - - - - - -\n                                   |\n                               2023-06-24\n                               00:00:00\n```\n\n\n### Task\n\n```sh\n# list tasks of a dag (prompt will ask to choose a dag)\nairflow-cli task list\n\n# list tasks instance of a dag run\nairflow-cli task list\n\n# list tasks instance of a dag run with no prompt\nairflow-cli task list -d dag_id -r dag_run_id\n\n# get logs from a task instance\nairflow-cli task logs -d dag_id -r dag_run_id\n```\n\n\n## Contribute\n\n### Tools\n\nTo run linting, install [golang-lint](https://golangci-lint.run/usage/install/).\n\n```sh\nmake lint\n```\n\n### Test\n\nUse test makefile to spin up any airflow version.\n\n```sh\n make up VERSION=2.5.3\n ```\n\n## Todo \n- Choose a name\n- Reoganise required module\n- Wrap error and sys exit [x]\n- Correct Select descriptions servey [x]\n- Correctly escape with crtl+d [x]\n- Write quickstart README [x]\n- Output DAG with [diagon](https://github.com/ArthurSonzogni/Diagon) and [natural C biding](https://pkg.go.dev/cmd/cgo)\n\t- Graph-Easy : https://stackoverflow.com/a/3391213\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpjgaetan%2Fairflow-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpjgaetan%2Fairflow-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpjgaetan%2Fairflow-cli/lists"}