npx skills add github/gh-awMIT5.2k stars32,632 wordsUpdated 24 September 2026
Typeset in this issue’s own colours, resolved from a curated brand profile.
Hello fellow agent! Welcome to GitHub Agentic Workflows = Actions + Agent + Safety. Here are some pointers to get you started in using this tool.
GitHub Agentic Workflows (gh-aw) lets developers define AI-powered repository automation in Markdown with YAML frontmatter and run AI agents securely through GitHub Actions. The gh-aw GitHub CLI extension compiles each agentic workflow into a standard GitHub Actions workflow.
Use conventional GitHub Actions for deterministic builds, tests, linting, deployments, and reproducible scripts. Add an agentic workflow when a task needs reasoning or interpretation, such as issue triage, pull-request review, CI failure investigation, documentation maintenance, dependency analysis, or repository reporting. GitHub Agentic Workflows complements existing CI/CD; it does not replace it.
Built-in AI engines include GitHub Copilot, Claude Code, OpenAI Codex, Google Gemini, and Pi. Agent jobs are read-only and sandboxed by default, and configured GitHub writes are normally applied through validated safe-outputs jobs with scoped permissions.
[!NOTE] A security vulnerability (opens in a new tab) was discovered in versions
>= 0.83.3, < 0.85.4and, as a result, those releases were retired as a pre-emptive measure.
Install the GitHub CLI extension:
gh extension install github/gh-awThen follow the GitHub Agentic Workflows quickstart (opens in a new tab) to select an AI engine, add a sample workflow, and run it through GitHub Actions.
An agentic workflow has two parts: YAML frontmatter configures triggers, permissions, tools, and the AI engine; the Markdown body tells the AI agent what to accomplish. The gh aw compile command validates this source and generates the .lock.yml workflow that GitHub Actions executes. Learn how GitHub Agentic Workflows works (opens in a new tab).
Security, permissions, and controlled writes are core design concerns. The supported agent-job path defaults to read-only GitHub access and sandboxed execution. Safe outputs buffer configured writes, validate them, and apply them in separate jobs with scoped permissions. These controls are configurable, so workflow authors must review permissions, tools, network access, and generated files before deployment. Learn how GitHub Agentic Workflows handles security and permissions (opens in a new tab).
Using agentic workflows in your repository requires careful attention to security considerations and careful human supervision, and even then things can still go wrong. Use it with caution, and at your own risk.
Use the GitHub Agentic Workflows documentation (opens in a new tab) for these paths:
For AI agents and retrieval tools, use the published agent prompt index (opens in a new tab), full prompt corpus (opens in a new tab), and AI-readable project summary (opens in a new tab).
For development setup and contribution guidelines, see CONTRIBUTING.md (opens in a new tab).
To build and test repository custom linters:
go test ./pkg/linters/<linter-name>/...go build ./cmd/lintersmake golint-custommake golint-custom builds cmd/linters and runs the custom analyzers against ./cmd/... and ./pkg/....
Community members whose issues were resolved — updated automatically.
@a-sjogren-accenture (2) (opens in a new tab) @aaronspindler (1) (opens in a new tab) @abbottdev (1) (opens in a new tab) @abillingsley (2) (opens in a new tab) @adam-cobb (1) (opens in a new tab) @adamhenson (2) (opens in a new tab) @adamtasteslikegood (1) (opens in a new tab) @adhikjoshi (1) (opens in a new tab) @ahmadabdalla (1) (opens in a new tab) @ajfeldman6 (1) (opens in a new tab) @akkikumar72 (1) (opens in a new tab) @AkshatRaj00 (1) (opens in a new tab) @alanpeabody (1) (opens in a new tab) @alcastaneda (1) (opens in a new tab) @AlexanderWert (1) (opens in a new tab) @AlexDeMichieli (1) (opens in a new tab) @alexsiilvaa (2) (opens in a new tab) @alondahari (17) (opens in a new tab) @alvistar (2) (opens in a new tab) @AmoebaChant (1) (opens in a new tab) @anthonymastreanvae (11) (opens in a new tab) @aoxiangtianyu-go (1) (opens in a new tab) @apenab (1) (opens in a new tab) @arabkin (1) (opens in a new tab) @arezero (6) (opens in a new tab) @arthurfvives (8) (opens in a new tab) @Artur- (1) (opens in a new tab) @asatara (1) (opens in a new tab) @askpaisa (1) (opens in a new tab) @askpt (1) (opens in a new tab) @astefan (1) (opens in a new tab) @awoisoak (1) (opens in a new tab) @b-dantas (1) (opens in a new tab) @b2pacific (1) (opens in a new tab) @babaakihiro (2) (opens in a new tab) @bartul (1) (opens in a new tab) @bbonafed (23) (opens in a new tab) @beardofedu (1) (opens in a new tab) @benissimo (10) (opens in a new tab) @benvillalobos (12) (opens in a new tab) @blavity-machine-user (1) (opens in a new tab) @blozano-tt (9) (opens in a new tab) @bmerkle (3) (opens in a new tab) @boydj (2) (opens in a new tab) @Bra1nFartz (1) (opens in a new tab) @BrandonLewis (1) (opens in a new tab) @brendanlapuma (1) (opens in a new tab) @bryanchen-d (24) (opens in a new tab) @bryanknox (1) (opens in a new tab) @bshore-bf (1) (opens in a new tab) @Calidus (8) (opens in a new tab) @camposbrunocampos (2) (opens in a new tab) @carlincherry (1) (opens in a new tab) @carlosflorencio (1) (opens in a new tab) @CatsMiaow (1) (opens in a new tab) @chepa92 (1) (opens in a new tab) @chrisfregly (2) (opens in a new tab) @chrizbo (7) (opens in a new tab) @CiscoRob (2) (opens in a new tab) @ckittel (2) (opens in a new tab) @cknight (2) (opens in a new tab) @clementbolin (1) (opens in a new tab) @cogni-ai-ee (2) (opens in a new tab) @consulthys (3) (opens in a new tab) @Corb3nik (3) (opens in a new tab) @corygehr (20) (opens in a new tab) @corymhall (1) (opens in a new tab) @crmitchelmore (3) (opens in a new tab) @DaanLucas (1) (opens in a new tab) @dagecko (1) (opens in a new tab) @Daidanny008 (1) (opens in a new tab) @Dan-Albrecht (1) (opens in a new tab) @Dan-Co (2) (opens in a new tab) @danielmeppiel (8) (opens in a new tab) @danquirk (2) (opens in a new tab) @darwin-gonzales (1) (opens in a new tab) @davidahmann (3) (opens in a new tab) @davidslater (4) (opens in a new tab) @dbudym-cs (1) (opens in a new tab) @DeagleGross (4) (opens in a new tab) @devantler (2) (opens in a new tab) @deyaaeldeen (10) (opens in a new tab) @dfrysinger (2) (opens in a new tab) @dgolombek (1) (opens in a new tab) @dholmes (3) (opens in a new tab) @dhrapson (2) (opens in a new tab) @DimaBir (1) (opens in a new tab) @dkurepa (1) (opens in a new tab) @dneimke (1) (opens in a new tab) @DogeAmazed (1) (opens in a new tab) @Dongbumlee (2) (opens in a new tab) @doughgle (1) (opens in a new tab) @drehelis (4) (opens in a new tab) @DrPye (1) (opens in a new tab) @dsfaccini (4) (opens in a new tab) @dsibilio (4) (opens in a new tab) @dsolteszopyn (2) (opens in a new tab) @dsyme (39) (opens in a new tab) @duncankmckinnon (1) (opens in a new tab) @eaftan (3) (opens in a new tab) @edburns (1) (opens in a new tab) @edgeq (2) (opens in a new tab) @ekbritecore (3) (opens in a new tab) @elefthei (1) (opens in a new tab) @elika56 (1) (opens in a new tab) @emexelem (1) (opens in a new tab) @enbw-mmattes (1) (opens in a new tab) @eran-medan (1) (opens in a new tab) @ericchansen (1) (opens in a new tab) @ericstj (2) (opens in a new tab) @Esomoire-consultancy-Company (1) (opens in a new tab) @Etienne-M (5) (opens in a new tab) @Evangelink (5) (opens in a new tab) @fbecar22 (3) (opens in a new tab) @fchareyr (1) (opens in a new tab) @FDevTakima (1) (opens in a new tab) @ferryhinardi (1) (opens in a new tab) @flatiron32 (2) (opens in a new tab) @florianbader (1) (opens in a new tab) @fr4nc1sc0-r4m0n (3) (opens in a new tab) @funkymonkeyjam (2) (opens in a new tab) @G1Vh (1) (opens in a new tab) @GandrotulaRajesh (1) (opens in a new tab) @github-actions (11) (opens in a new tab) @github-antoine-brechon (4) (opens in a new tab) @GKersten (1) (opens in a new tab) @glitch-ux (1) (opens in a new tab) @golivax (1) (opens in a new tab) @grahame-white (9) (opens in a new tab) @graphaelli (1) (opens in a new tab) @GregoireW (1) (opens in a new tab) @gregsmi (2) (opens in a new tab) @h-no (1) (opens in a new tab) @h3y6e (2) (opens in a new tab) @haavamoa (1) (opens in a new tab) @haolpku (1) (opens in a new tab) @HardMax71 (1) (opens in a new tab) @harrisoncramer (2) (opens in a new tab) @heaversm (1) (opens in a new tab) @heiskr (9) (opens in a new tab) @hermanho (1) (opens in a new tab) @holwerda (3) (opens in a new tab) @hpsin (1) (opens in a new tab) @hrishikeshathalye (1) (opens in a new tab) @ianreay (1) (opens in a new tab) @IEvangelist (14) (opens in a new tab) @ilja (5) (opens in a new tab) @Infinnerty (1) (opens in a new tab) @insop (1) (opens in a new tab) @ivancea (9) (opens in a new tab) @j-srodka (6) (opens in a new tab) @JaganGopalkrish (1) (opens in a new tab) @jamesadevine (4) (opens in a new tab) @JamesNK (4) (opens in a new tab) @JanKrivanek (4) (opens in a new tab) @jaroslawgajewski (29) (opens in a new tab) @JasonYeMSFT (1) (opens in a new tab) @Jasper13006 (1) (opens in a new tab) @jbaruch (1) (opens in a new tab) @jcooklin (1) (opens in a new tab) @jeffhandley (12) (opens in a new tab) @jeremiah-snee-openx (1) (opens in a new tab) @jfomhover (1) (opens in a new tab) @jhamon (2) (opens in a new tab) @jiec-msft (1) (opens in a new tab) @jitran (5) (opens in a new tab) @JKamsker (1) (opens in a new tab) @joesturge (1) (opens in a new tab) @johndowns (1) (opens in a new tab) @johnpreed (5) (opens in a new tab) @johnwilliams-12 (11) (opens in a new tab) @jonas-harmoney (1) (opens in a new tab) @jonathanpeppers (5) (opens in a new tab) @joperezr (1) (opens in a new tab) @JoshGreenslade (2) (opens in a new tab) @joshjohanning (1) (opens in a new tab) @joshuadavidson (1) (opens in a new tab) @jsalmassy (1) (opens in a new tab) @jsoref (2) (opens in a new tab) @jsquire (1) (opens in a new tab) @jtracey93 (1) (opens in a new tab) @kaovilai (4) (opens in a new tab) @karl-petter-sj (1) (opens in a new tab) @katriendg (1) (opens in a new tab) @kbreit-insight (5) (opens in a new tab) @KGoovaer (1) (opens in a new tab) @kkruel8100 (4) (opens in a new tab) @Knufle (1) (opens in a new tab) @Krzysztof-Cieslak (1) (opens in a new tab) @kthompson (1) (opens in a new tab) @kubaflo (1) (opens in a new tab) @labudis (2) (opens in a new tab) @ladamski (1) (opens in a new tab) @lecoursen (1) (opens in a new tab) @lilseyi (2) (opens in a new tab) @lindeberg (1) (opens in a new tab) @lkraav (1) (opens in a new tab) @loganrosen (7) (opens in a new tab) @look (1) (opens in a new tab) @lpcox (8) (opens in a new tab) @ludoviclafole (1) (opens in a new tab) @lukeed (1) (opens in a new tab) @lupinthe14th (3) (opens in a new tab) @lw396 (1) (opens in a new tab) @m-titov (1) (opens in a new tab) @maikelvdh (2) (opens in a new tab) @mark-hingston (1) (opens in a new tab) @mason-tim (8) (opens in a new tab) @massirr (1) (opens in a new tab) @matiloti (4) (opens in a new tab) @mattcosta7 (1) (opens in a new tab) @MatthewBunker (2) (opens in a new tab) @MatthewLabasan-NBCU (2) (opens in a new tab) @MattSkala (7) (opens in a new tab) @MauroDruwel (4) (opens in a new tab) @maxbeizer (1) (opens in a new tab) @maxknv (1) (opens in a new tab) @mcantrell (1) (opens in a new tab) @mdashrraf (1) (opens in a new tab) @MH0386 (1) (opens in a new tab) @mhavelock (1) (opens in a new tab) @michen00 (2) (opens in a new tab) @microsasa (10) (opens in a new tab) @misrarim (1) (opens in a new tab) @mlinksva (1) (opens in a new tab) @mnkiefer (13) (opens in a new tab) @molson504x (2) (opens in a new tab) @Mossaka (3) (opens in a new tab) @mrfelton (5) (opens in a new tab) @mrjf (7) (opens in a new tab) @MrSanchez (1) (opens in a new tab) @mstrathman (1) (opens in a new tab) @mthalman (1) (opens in a new tab) @mur6 (1) (opens in a new tab) @Muradbarakat1986 (1) (opens in a new tab) @mvdbos (2) (opens in a new tab) @mwpastore (1) (opens in a new tab) @NadyaDrozdova (1) (opens in a new tab) @nestele (2) (opens in a new tab) @neta-vega (3) (opens in a new tab) @NicoAvanzDev (3) (opens in a new tab) @NicolasRannou (1) (opens in a new tab) @nihal467 (1) (opens in a new tab) @Nikhil-Anand-DSG (1) (opens in a new tab) @NikolajBjorner (2) (opens in a new tab) @norrietaylor (11) (opens in a new tab) @not-mksv (3) (opens in a new tab) @octatone (1) (opens in a new tab) @oscarvalenzuelab (1) (opens in a new tab) @PaulAylward2 (1) (opens in a new tab) @peter-hendy (1) (opens in a new tab) @petercort (1) (opens in a new tab) @pethers (1) (opens in a new tab) @pgaskin (1) (opens in a new tab) @pholleran (4) (opens in a new tab) @Phonesis (1) (opens in a new tab) @Pierrci (1) (opens in a new tab) @plengauer (1) (opens in a new tab) @pmalarme (1) (opens in a new tab) @polmichel (2) (opens in a new tab) @ppusateri (1) (opens in a new tab) @praveenkuttappan (1) (opens in a new tab) @prpercival (1) (opens in a new tab) @PureWeen (10) (opens in a new tab) @qwert666 (1) (opens in a new tab) @r-garcia-de-oliveira (2) (opens in a new tab) @rabo-unumed (4) (opens in a new tab) @racedale (1) (opens in a new tab) @radiantspace (3) (opens in a new tab) @rafael-unloan (1) (opens in a new tab) @rbstp (5) (opens in a new tab) @reggie-k (4) (opens in a new tab) @remypanicker (1) (opens in a new tab) @rhardouin (4) (opens in a new tab) @ricohomewood (2) (opens in a new tab) @rmarinho (1) (opens in a new tab) @robertdewilde-dev (1) (opens in a new tab) @robinmam (1) (opens in a new tab) @romainh-betclic (3) (opens in a new tab) @rspurgeon (4) (opens in a new tab) @Rubyj (3) (opens in a new tab) @ruokun-niu (1) (opens in a new tab) @ryckmansm (2) (opens in a new tab) @salekseev (3) (opens in a new tab) @salmanmkc (1) (opens in a new tab) @samuelkahessay (30) (opens in a new tab) @samus-aran (1) (opens in a new tab) @SanthoshNandha (1) (opens in a new tab) @sbodapati-gfm (1) (opens in a new tab) @seangibeault (2) (opens in a new tab) @sebastianbiallas (1) (opens in a new tab) @seesharprun (6) (opens in a new tab) @sg650 (16) (opens in a new tab) @shaeck (1) (opens in a new tab) @shawnHartsell (1) (opens in a new tab) @Shazwazza (2) (opens in a new tab) @shiran-gutsy (1) (opens in a new tab) @shubhamtanwar23 (3) (opens in a new tab) @sigh71 (3) (opens in a new tab) @siyo-rms (1) (opens in a new tab) @srgibbs99 (6) (opens in a new tab) @ssulei7 (1) (opens in a new tab) @stacktick (1) (opens in a new tab) @stefankrzyz (1) (opens in a new tab) @steliosfran (3) (opens in a new tab) @stephen2002119 (1) (opens in a new tab) @stephlocke (1) (opens in a new tab) @straub (6) (opens in a new tab) @strawgate (48) (opens in a new tab) @susmahad (3) (opens in a new tab) @swimmesberger (1) (opens in a new tab) @syarihu (1) (opens in a new tab) @szabta89 (3) (opens in a new tab) @tadelesh (1) (opens in a new tab) @talk2MeGooseman (1) (opens in a new tab) @Tarekchehahde (2) (opens in a new tab) @theletterf (26) (opens in a new tab) @thi-feonir (1) (opens in a new tab) @timdittler (3) (opens in a new tab) @tinytelly (1) (opens in a new tab) @tobio (1) (opens in a new tab) @tomasmed (1) (opens in a new tab) @tomforsell525 (1) (opens in a new tab) @tore-unumed (16) (opens in a new tab) @trask (4) (opens in a new tab) @tsm-harmoney (5) (opens in a new tab) @tspascoal (2) (opens in a new tab) @tvu4-wowcorp (1) (opens in a new tab) @tylersmalley (1) (opens in a new tab) @UncleBats (2) (opens in a new tab) @v1v (7) (opens in a new tab) @verkyyi (2) (opens in a new tab) @veverkap (3) (opens in a new tab) @ViktorHofer (3) (opens in a new tab) @virenpepper (1) (opens in a new tab) @vishalagrawal-jisr (2) (opens in a new tab) @whoschek (1) (opens in a new tab) @wizardofosmium (1) (opens in a new tab) @wtgodbe (4) (opens in a new tab) @xirzec (1) (opens in a new tab) @xpepper (1) (opens in a new tab) @yaananth (1) (opens in a new tab) @Yoyokrazy (2) (opens in a new tab) @yskopets (53) (opens in a new tab) @zarenner (5) (opens in a new tab) @zkoppert (2) (opens in a new tab)
[!TIP] Ready to learn GitHub Agentic Workflows hands-on? The Factory Tour Workshop (opens in a new tab) is a self-contained, step-by-step workshop repository designed to teach you how to build, run, and customize agentic workflows from scratch.
main, last pushed 24 September 2026.SKILL.md, not by matching a directory convention. 4 distinct layouts observed: .claude/skills/*/SKILL.md, .github/skills/*/SKILL.md, .squad/*/skill.md, SKILL.md (repo root).h1 and no skipped levels:/github/gh-aw.md, and each skill at its own .md URL.