{"id":43902416,"url":"https://github.com/timoa/workflow-editor","last_synced_at":"2026-03-04T23:04:57.479Z","repository":{"id":336233170,"uuid":"1148692993","full_name":"timoa/workflow-editor","owner":"timoa","description":"Visualize, edit, and diagram GitHub Actions workflows in VS Code, Cursor, Windsurf, etc. – no more YAML headaches.","archived":false,"fork":false,"pushed_at":"2026-02-18T17:14:59.000Z","size":12761,"stargazers_count":6,"open_issues_count":13,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-18T19:15:04.390Z","etag":null,"topics":["diagram","github-actions","github-workflows","visual-editor","vscode-extension"],"latest_commit_sha":null,"homepage":"https://workflow-editor.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/timoa.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-03T08:59:16.000Z","updated_at":"2026-02-18T17:18:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/timoa/workflow-editor","commit_stats":null,"previous_names":["timoa/github-actions-gui","timoa/workflow-editor"],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/timoa/workflow-editor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timoa%2Fworkflow-editor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timoa%2Fworkflow-editor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timoa%2Fworkflow-editor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timoa%2Fworkflow-editor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/timoa","download_url":"https://codeload.github.com/timoa/workflow-editor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timoa%2Fworkflow-editor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29688221,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T15:51:39.154Z","status":"ssl_error","status_checked_at":"2026-02-21T15:49:03.425Z","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":["diagram","github-actions","github-workflows","visual-editor","vscode-extension"],"created_at":"2026-02-06T19:06:20.204Z","updated_at":"2026-03-04T23:04:57.466Z","avatar_url":"https://github.com/timoa.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Workflow Visual Editor\n\n[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/timoa/workflow-editor/badge)](https://securityscorecards.dev/viewer/?uri=github.com/timoa/workflow-editor)\n[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/11998/badge)](https://www.bestpractices.dev/projects/11998)\n[![Coverage Status](https://codecov.io/gh/timoa/workflow-editor/branch/main/graph/badge.svg)](https://codecov.io/gh/timoa/workflow-editor)\n[![CI (Tests, Lint \u0026 Security)](https://github.com/timoa/workflow-editor/actions/workflows/pull-request.yml/badge.svg)](https://github.com/timoa/workflow-editor/actions/workflows/pull-request.yml)\n[![Dependency Review](https://github.com/timoa/workflow-editor/actions/workflows/dependency-review.yml/badge.svg)](https://github.com/timoa/workflow-editor/actions/workflows/dependency-review.yml)\n[![CodeQL](https://github.com/timoa/workflow-editor/actions/workflows/codeql-analysis.yml/badge.svg)](https://github.com/timoa/workflow-editor/actions/workflows/codeql-analysis.yml)\n[![OpenSSF Scorecard](https://github.com/timoa/workflow-editor/actions/workflows/scorecard.yml/badge.svg)](https://github.com/timoa/workflow-editor/actions/workflows/scorecard.yml)\n[![Release](https://github.com/timoa/workflow-editor/actions/workflows/release.yml/badge.svg)](https://github.com/timoa/workflow-editor/actions/workflows/release.yml)\n[![Publish](https://github.com/timoa/workflow-editor/actions/workflows/publish.yml/badge.svg)](https://github.com/timoa/workflow-editor/actions/workflows/publish.yml)\n[![License](https://img.shields.io/github/license/timoa/workflow-editor)](LICENSE)\n\n\u003e **_WARNING:_** This extension is currently in early development and can have a few bugs. Please save your changes on Git before updating your Workflows\n\nA VSCode extension providing a visual editor for GitHub Actions workflow files. Open a workflow (YAML), view jobs and steps as a diagram, edit job properties in a side panel, and save back to YAML.\n\n![Workflow Editor demo](https://workflow-editor.com/images/demo/workflow-editor-demo-v1-2-21.gif)\n\n## Features\n\n- **Diagram**: Jobs as nodes, edges from `needs` dependencies. Built with [React Flow](https://reactflow.dev/).\n- **Trigger visualization**: Visual trigger nodes showing workflow triggers (push, pull_request, schedule, etc.) with connections to jobs.\n- **Trigger editing**: Edit workflow triggers with a dedicated panel supporting all trigger types and configurations (branches, tags, paths, cron schedules, etc.).\n- **Workflow dispatch inputs**: Define `workflow_dispatch` and `workflow_call` inputs directly in the trigger panel — set name, description, type (string, boolean, number, choice, environment), required flag, and default value.\n- **Property panel**: Click a job node to edit name, runs-on, needs, matrix strategy, and steps (N8N-style). Reusable workflow caller jobs (`uses`) display a dedicated panel showing the referenced workflow, inputs (`with`), and secrets instead of runs-on/steps.\n- **Reusable workflow support**: Workflows that call a reusable workflow via `job.uses` are parsed, displayed, and serialized correctly — `runs-on` and `steps` are never added to caller jobs, preventing linter errors.\n- **Matrix strategy**: Configure matrix builds with multiple variable combinations. Visual indicator shows total matrix combinations (e.g., \"6× matrix\").\n- **Source code preview**: View and edit workflow YAML in a large dialog. Changes apply only when saved.\n- **Run script editor**: Edit step run scripts in a full-size popup dialog with a comfortable code-style editor (same font and theme as the app). Click \"Edit script\" next to a step's run field to open the dialog; save with **Save changes** or **Ctrl/Cmd+S**, cancel with **Escape**.\n- **Workflow validation**: Automatic validation using the official [@actions/workflow-parser](https://github.com/actions/languageservices) (same as the GitHub Actions VS Code extension). Reports schema and syntax errors with detailed messages.\n- **VSCode Integration**: Open workflow files via context menu or command palette; save directly to workspace. Theme automatically follows your IDE theme (no in-editor theme toggle).\n- **Multiple workflow tabs**: Opening another workflow (e.g. from the Explorer or \"Open Workflow File\") opens in a new editor tab instead of replacing the current one, so unsaved changes are not lost. Re-opening the same file reveals its existing tab.\n- **Simplified navbar**: Toolbar keeps View source, Clear/Load sample, Add Trigger/Job, and workflow config. Save, Open file, Paste YAML, and theme buttons were removed for a cleaner UX; use the command palette or context menu to open workflows, and Ctrl/Cmd+S to save.\n- **Validation**: Parse errors and lint errors shown in a banner when opening or editing workflows.\n\n## Installation\n\n### From Marketplace\n\n1. Open VSCode (or Cursor, Windsurf, or other VSCode-based IDE)\n2. Go to Extensions (Ctrl+Shift+X / Cmd+Shift+X)\n3. Search for \"Workflow Visual Editor\"\n4. Click Install\n\n### From VSIX\n\n1. Download the `.vsix` file from the [latest release](https://github.com/timoa/workflow-editor/releases/latest)\n2. Open VSCode\n3. Go to Extensions → ... → Install from VSIX...\n4. Select the downloaded `.vsix` file\n\n**Note**: The `.vsix` file is attached to each GitHub release as an asset.\n\n## Usage\n\n### Open Workflow Editor\n\n- **Command Palette**: Press `Ctrl+Shift+P` (or `Cmd+Shift+P` on Mac), type \"Workflow Editor: Open\", and press Enter\n- **Context Menu**: Right-click a `.yml` or `.yaml` file in the Explorer, select \"Open with Workflow Editor\"\n- **Command**: `workflow-visual-editor.open` - Opens an empty editor\n- **Command**: `workflow-visual-editor.openFile` - Opens file picker to load a workflow\n\n### Keyboard Shortcuts\n\n- **Ctrl/Cmd+Z**: Undo last change (when the Workflow Editor tab is focused)\n- **Ctrl/Cmd+S**: Save workflow (when the Workflow Editor tab is focused; uses VSCode command so it works reliably)\n- **Escape**: Close property panel, source dialog, or run script dialog\n\n### File Operations\n\n- **Open**: Use the Command Palette (\"Workflow Editor: Open Workflow File\") or right-click a `.yml`/`.yaml` file in the Explorer and choose \"Open with Workflow Editor\". Each workflow opens in its own tab; opening the same file again focuses that tab.\n- **Save**: Press Ctrl/Cmd+S when the workflow editor tab is focused (Save and Undo apply to the active tab).\n- **View Source**: Click the code icon to view/edit raw YAML\n\n## Security \u0026 quality\n\nThis project is built and maintained with security and quality in mind:\n\n- **OpenSSF Scorecard \u0026 Best Practices**: The repository is scored by [OpenSSF Scorecard](https://securityscorecards.dev/) and follows [OpenSSF Best Practices](https://www.bestpractices.dev/) (see badges above).\n- **Hardened CI**: All GitHub Actions use [step-security/harden-runner](https://github.com/step-security/harden-runner) with **egress blocking** — only explicitly allowed endpoints can be reached. This limits supply chain attacks (e.g. compromised dependencies phoning home or pulling malicious payloads) during build and test.\n- **Dependency checks**: [Dependency Review](https://github.com/timoa/workflow-editor/actions/workflows/dependency-review.yml) runs on every PR; CI runs `pnpm audit --audit-level=high`. Known exceptions are documented in [osv-scanner.toml](osv-scanner.toml).\n- **CodeQL**: [CodeQL analysis](https://github.com/timoa/workflow-editor/actions/workflows/codeql-analysis.yml) runs on push/PR and on a schedule for JavaScript/TypeScript.\n- **Code coverage**: Tests run with coverage and results are uploaded to [Codecov](https://codecov.io/gh/timoa/workflow-editor) (see badge above).\n- **Fuzzing**: Property-based tests with [fast-check](https://fast-check.dev/) for parse/serialize logic (satisfies the OpenSSF Scorecard fuzzing criterion).\n- **React Doctor**: [React Doctor](https://www.react.doctor) scans the React webview code for correctness, performance, and accessibility. It runs on every pull request (diff-only on changed files) and posts a comment with the report; you can also run it locally (see [CONTRIBUTING.md](CONTRIBUTING.md#react-doctor-local)).\n- **AI code review**: Pull requests receive AI-assisted review via [CodeRabbit](https://coderabbit.ai) for consistency and best practices.\n\n## Compatibility\n\n- **VSCode**: Full support (minimum version 1.80.0)\n- **Cursor**: Compatible (VSCode-compatible extension)\n- **Windsurf**: Compatible (VSCode-compatible extension)\n- **Other VSCode-based IDEs**: Should work with any IDE that supports VSCode extensions\n\n## Related Projects\n\n**[Workflow Metrics](https://github.com/timoa/workflow-metrics)** — An open-source dashboard that surfaces GitHub Actions metrics (run history, DORA metrics, build minutes, efficiency insights) and lets you optimize workflows with AI-powered suggestions. If you use Workflow Editor to build your workflows, Workflow Metrics is the natural next step to measure and improve them.\n\n## Contributing\n\nContributions are welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) for setup, coding standards, and how to submit a pull request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimoa%2Fworkflow-editor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimoa%2Fworkflow-editor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimoa%2Fworkflow-editor/lists"}