Skip to content

About

Visual Arazzo canvas for GitHub Copilot: drag OpenAPI operations into workflow steps, wire data between them, validate live with spectral:arazzo, and let Copilot edit the same workflow. Zero runtime dependencies.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

8 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Arazzo canvas for GitHub Copilot

Design Arazzo API workflows visually, right inside GitHub Copilot.

CI Release Coverage Mutation semantic-release License

The Arazzo canvas in the GitHub Copilot app: operations dragged from the Petstore API onto the workflow

Watch the 56 s video on YouTube, with sound and English or French subtitles: drag operations from an API, wire values, then ask Copilot to finish the workflow on the same canvas.

The Arazzo canvas: palette of APIs and operations, the workflow diagram, and the step inspector

Quick start

Requires the GitHub Copilot CLI (or the GitHub Copilot app) with plugin support, and Node.js 22 or later.

copilot plugin marketplace add SebastienDegodez/github-copilot-arazzo
copilot plugin install arazzo@github-copilot-arazzo

The plugin ships with no runtime dependency.

Why

An Arazzo document describes how API calls chain together: which operation runs first, what each step sends, which response values flow into the next step, when to retry or stop. Writing it by hand means juggling operationIds, runtime expressions such as $steps.findPets.outputs.petId, and a specification you rarely keep in your head.

This plugin adds an arazzo canvas to GitHub Copilot. You build the workflow by dragging the operations of your OpenAPI descriptions; the canvas writes valid Arazzo YAML, checks it against the spectral:arazzo rules as you go, and Copilot can read and edit the same workflow from the chat.

Features

🧭 Visual flow chart Inputs → steps → outputs, with data edges for the values each step receives, and retry loops, goto jumps and end exits drawn on each step — after the Arazzo diagram of Microcks.
🖱️ Drag and drop Drop an operation to add a step (onto a step to insert it before), drag a step to reorder, drag an input or a step output onto a parameter to pass it on.
✏️ Step inspector Every parameter of the operation with its value — fixed or a runtime expression — plus extra headers and JSON body properties; click an empty slot to fill it.
🔌 API descriptions Each OpenAPI/Arazzo source with its file, type, state and operation count. A source is only added once it can be read (≤ 5 MB); the form proposes the description files of your workspace.
✅ Live validation The full spectral:arazzo ruleset (errors and warnings) plus what only the canvas knows — unknown operations, values read from a later step. Each problem has its rule, severity, JSON pointer and line, and is shown on its step.
📝 YAML view Diagram, Split or YAML. The YAML is editable, validated as you type, and is exactly what gets saved — comments and key order preserved.
💾 Your save model Autosave on: every edit is written at once. Off: edit a draft, save with Save or Ctrl/⌘+S. Undo/redo everything. External file changes are picked up, with a conflict prompt when you have unsaved edits.
💬 Ask Copilot Ask about the workflow or the selected step: the question reaches the chat with the step, its problems and the document path, and Copilot answers by editing the canvas.

Split view: the diagram next to the YAML it produces

Usage

Ask Copilot:

Open the Arazzo canvas on flows/adopt.arazzo.yaml using the API in apis/petstore.yaml.

or open the canvas directly:

{ "canvasId": "arazzo", "input": { "path": "flows/adopt.arazzo.yaml",
  "sources": [{ "name": "petstore", "url": "apis/petstore.yaml" }] } }
Input Meaning
path Arazzo document, relative to the workspace. Created with one empty workflow when missing; defaults to the first *.arazzo.yaml found.
workflowId Workflow to show, or the id given to the workflow of a new document.
sources OpenAPI descriptions a new document calls, url relative to the document.

Driving the canvas from Copilot

The bundled arazzo-workflow-authoring skill teaches the agent to edit through the canvas actions, so every change appears on the diagram and is refused with a reason when it would break the workflow:

get_workflow · select_workflow · add_workflow · add_source · remove_source · list_source_candidates · add_step · move_step · remove_step · add_input · set_step_value · clear_step_value · set_step_output · link_data · add_workflow_output · add_success_criterion · add_action · save · undo · redo · set_autosave · get_yaml · set_yaml

Your autosave preference is stored in $COPILOT_HOME/extensions/arazzo-canvas/artifacts/settings.json (~/.copilot by default).

Contributing

Contributions are welcome — see CONTRIBUTING.md for the architecture, quality gates, demo video and release process. Please report security issues as described in SECURITY.md.

License

Apache-2.0. The diagram layout is adapted from Microcks (Copyright The Microcks Authors, Apache-2.0).

About

Visual Arazzo canvas for GitHub Copilot: drag OpenAPI operations into workflow steps, wire data between them, validate live with spectral:arazzo, and let Copilot edit the same workflow. Zero runtime dependencies.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Used by

Contributors

Languages