GitHub Actions Workflow Editor

Edit and validate GitHub Actions workflow YAML.

Valid YAML. Loading the workflow schema…

About the GitHub Actions Workflow Editor

Paste a workflow file, start from the build-and-test starter, or open the template gallery and load a complete workflow such as Node CI, Docker build and push, Deploy to GitHub Pages or Release on tag; each template says what it does and what it assumes, runs as it is, and explains its non-obvious lines in comments. Edit it as YAML with syntax highlighting and line numbers, or switch to the Visual tab and build it as a form: drag ready-made steps such as checkout or setup-node from the toolbox into a job, drag jobs and steps to rearrange or remove them, and set triggers, permissions and environment variables, with cron schedules glossed in plain English. Both tabs edit the same document, so comments, key order and any key the form does not cover stay exactly as written. The Graph tab draws the same workflow as a flow chart, one container per job with a shape for each step chained inside it and an edge for every needs, so which jobs run in parallel, which wait on which, and what each job does are clear at a glance. YAML parse errors are reported with the line that failed, every key is checked against SchemaStore's GitHub Actions workflow schema, and footgun warnings catch what the schema allows but GitHub punishes, from an action pinned to a patch release to a job with no timeout-minutes, each with its line and its fix. An untouched file exports byte for byte. Drafts stay in this browser; nothing is uploaded.

How to use the GitHub Actions Workflow Editor

  1. Paste your workflow YAML into the editor, press Starter for a build-and-test example, or press Templates and pick a complete workflow such as Node CI or Deploy to GitHub Pages; each card says what it does and what it assumes, and loading over your own edits asks first.
  2. Switch to the Visual tab to drag steps from the toolbox into a job, drag jobs and steps into a new order or onto the delete bar, and set triggers, permissions and env; Undo reverses any move, and Code shows the YAML it wrote.
  3. Open the Graph tab to see the jobs as a flow chart, side by side where they run in parallel and stacked where one needs another, each step a shape chained inside its job; click a job or a step to jump to it in the Visual tab.
  4. Fix any parse error shown in red under the editor; it names the line that failed.
  5. Read the warnings, each with a line number and the key it concerns: schema warnings for what the workflow schema rejects, footgun warnings for mistakes it allows, every one naming the fix.
  6. Press Copy, or Download to save the file as workflow.yml.
  7. Press Clear to empty the editor, or Clear draft to go back to the starter.

Frequently asked questions

Does this editor need access to my GitHub repository?
No. It never talks to GitHub. There is no login, no API call, and no upload. The YAML is parsed and checked in your browser tab, and drafts are stored only in this browser's local storage.
What is the difference between a parse error and a schema warning?
A parse error means the YAML itself does not parse, so GitHub could not read the file either; Copy and Download are disabled until it is fixed. A warning means the YAML parses but something does not match the workflow schema, such as an unknown key or a missing runs-on. Warnings never block export, because the schema occasionally lags behind new GitHub features.
Which schema are workflows checked against?
The community-maintained github-workflow.json from SchemaStore, the same schema YAML language servers use to validate these files in editors. A copy is bundled with the tool and loaded only on this page.
Do the templates run as they are?
Yes. Each of the eight, from Node, Python and .NET CI to Docker build and push, Deploy to GitHub Pages, Release on tag, a scheduled job and a manual dispatch with inputs, is a complete workflow that passes the schema and the footgun checks, tracks every action by its major tag, and explains its non-obvious lines in comments that survive editing. The card names what each assumes, such as a package-lock.json or a Dockerfile at the repository root, and the comments point at the lines to change. Templates are bundled with the tool, never fetched.
What is a footgun warning?
A mistake the workflow schema accepts but GitHub punishes: an action pinned to a patch release or to no version at all, a pull_request_target run that checks out the pull request head, a job that writes with no permissions block, a job with no timeout-minutes, a secret interpolated into a run script where the shell could log it, and a needs that names a job that does not exist. Each warning carries the line, the key and the fix, and like a schema warning it never blocks Copy or Download.
Does the Visual tab rewrite my YAML?
No. It edits the same document the Code tab shows, one key at a time. Comments, key order and anything the form does not model, such as matrix, services or container, stay as written and appear in a read-only Advanced block on the job or step that owns them. A dragged job or step moves as one node, so its comments and any unmodelled keys move with it. While the YAML does not parse, the Visual tab is disabled and the reason is shown next to it.
What does the Graph tab show?
A read-only flow chart of the workflow. One trigger node names every on event, with each schedule glossed in plain English; one container per job shows its runs-on and a badge when it carries if, matrix or container, and chains its steps inside as shapes, a box for a run step, a box with double bars for a uses step and a hexagon for a step with an if; and an edge runs from each needs entry to the job that waits on it. Jobs at the same depth sit side by side, so parallel jobs are obvious, and clicking a job or a step opens it in the Visual tab. A needs cycle, or a needs that names a job that does not exist, is reported as an error instead of a broken graph, and while the YAML does not parse the tab is disabled like the Visual tab.
Will the editor reformat my YAML?
No. It edits the text directly, so comments, blank lines, quoting, and key order all survive, and an untouched document exports exactly as it was pasted. Tab inserts two spaces rather than a tab character, which YAML forbids for indentation.
Where is my draft stored?
In this browser's local storage, so the workflow is still there when you come back to the page. Clear draft removes it and reloads the starter, and Clear empties the editor, which removes it too.

Related tools