> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/harness-platform/3.0/harness-platform-resources/overview/pipeline-studio.md).

# Pipeline Studio

Overview of Pipeline Studio, the Visual and YAML editors, the Configure pipeline panel, and the pipeline navigation tabs.

Pipeline Studio is the interface for building and editing pipelines. It opens automatically when you create or open a pipeline. You can author your pipeline visually on the canvas, or write it directly in YAML. Both editors stay in sync and you can switch between them at any point without losing changes.

The pipeline header has four tabs: **Studio**, **Executions**, **Triggers**, and **Input Sets**.

## What you will learn

* How to use the Visual editor to build and navigate pipeline stages on the canvas
* How to use the YAML editor and the inline Edit overlays for individual steps and stages
* How to use the Configure pipeline panel to set per-pipeline inputs, delegate, notifications, and other settings
* Where to find execution history, triggers, and input sets for a pipeline

***

## Studio

The Studio tab contains the pipeline canvas. The canvas includes:

* **Visual / YAML toggle**: centered at the top of the canvas. Switches between the two editor modes.
* **Gear icon (⚙)**: top-right corner of the canvas. Opens the [Configure pipeline](#configure-pipeline) panel for inputs, delegate, notifications, clone, timeout, and execution controls.
* **Resolve errors**: appears when the pipeline has validation errors. Select it to see what needs to be fixed before running.
* **Run**: triggers a manual pipeline execution from the current definition.

### Visual editor

The Visual editor displays a graphical canvas of your pipeline stages. Use it to build and navigate the pipeline structure without writing YAML.

#### Add a stage

1. Select the **+** button on the canvas.
2. The **Add stage** panel opens on the right. Choose the type of stage you want to create:

| Type                 | Description                                       |
| -------------------- | ------------------------------------------------- |
| **Blank canvas**     | Start with an empty stage and add steps manually. |
| **Template**         | Apply a stage template from the template library. |
| **Build**            | Compile, test, and validate your code.            |
| **Deploy**           | Deploy one or more services and environments.     |
| **Chained pipeline** | Chain multiple pipelines together.                |
| **Serial group**     | Add a group of stages that run sequentially.      |
| **Parallel group**   | Add stages that run simultaneously.               |

3. Select a type to open the stage configuration.

Selecting **Build** or **Deploy** pre-populates relevant steps and infrastructure settings, but you can add, remove, or modify any of that configuration. The type is a starting point, not a restriction.

#### Canvas controls

The bottom-left corner of the canvas has zoom controls: **–**, **+**, a percentage readout, **Reset**, and a fullscreen button. Use these to navigate larger pipelines.

### YAML editor

The YAML editor gives you direct access to the pipeline's YAML definition. All changes you make here are reflected immediately in the Visual editor when you switch back.

The pipeline YAML uses `pipeline:` as the root key. Each pipeline, stage, and step has an `id` (used in expressions) and a `name` (the display label). Stages define their `runtime` and `platform`; steps define their work under `run`.

```yaml
pipeline:
  id: hello_world_pipeline
  name: Hello World Pipeline
  description: A simple pipeline that prints Hello World
  tags:
    ai_generated: ""
  stages:
    - id: build
      name: Build
      runtime: cloud
      platform:
        os: linux
        arch: amd64
      steps:
        - id: print_hello
          name: Print Hello World
          run:
            script: echo "Hello World"
```

{% hint style="info" %}
The YAML editor validates your pipeline as you type and highlights schema errors inline. Errors are also reflected in the error count indicator at the bottom of the canvas. You can save a pipeline with warnings, but execution-blocking errors must be resolved before running.
{% endhint %}

#### Edit steps and stages from the YAML view

While in the YAML editor, Harness overlays inline **Edit** and **Edit stage** links directly on the YAML. These appear when you hover over a step or stage block. Clicking one opens the UI form panel on the right side of the screen, the same panel you would see in the Visual editor, without leaving the YAML view.

* **Edit** (on a step): opens the step form with Name, Id, script or configuration fields, and an **Advanced** section for timeout, on failure, strategy, and conditional execution. Select **Update step** to apply.
* **Edit stage** (on a stage): opens the stage form with Name, Id, and collapsible sections for **Deploy**, **Code & build**, **Inputs & outputs**, **Execution controls**, and **Runtime Environment**. Select **Update stage** to apply.

You can also use the inline **Add step** link that appears under a stage or step group to insert a new step directly from the YAML view.

This lets you stay in YAML while still using the form UI for individual components, which is useful when you want to hand-edit most of the YAML but prefer the form for a specific step's configuration.

### Switch between editors

Select **Visual** or **YAML** in the toggle at the top of the canvas to switch modes. Harness converts your current state to the other format automatically.

{% hint style="warning" %}
**Fix errors before switching to Visual**

If the YAML contains errors, the **Visual** toggle shows a red error indicator and switching is blocked. Fix all errors in the **Problems** panel at the bottom of the editor before switching back to the Visual editor.
{% endhint %}

### Configure pipeline

Select the **⚙** (gear) icon in the top-right of the canvas to open the **Configure pipeline** panel. This panel contains per-pipeline settings:

| Setting                                      | Description                                                                                |
| -------------------------------------------- | ------------------------------------------------------------------------------------------ |
| **Inputs**                                   | Define typed runtime parameters for the pipeline.                                          |
| **Delegate**                                 | Select delegate tags to route execution to a specific delegate.                            |
| **Notifications**                            | Set up alerts for pipeline events (start, success, failure, paused).                       |
| **Clone**                                    | Control how the pipeline clones the source repository.                                     |
| **Timeout duration**                         | Maximum time the pipeline is allowed to run before being terminated.                       |
| **Allow Selective stage execution**          | When enabled, you can choose which stages to run instead of the full pipeline.             |
| **Is input data uneditable when rerunning?** | When enabled, pipeline inputs stay fixed and cannot be edited when you rerun an execution. |

Click **Submit** to apply your changes. Go to [Pipeline settings](/harness-platform/3.0/harness-platform-resources/overview/pipeline-settings.md) to review each setting in detail.

***

## Executions

The Executions tab lists all runs for this pipeline, scoped to this pipeline only. Select any execution to open the execution detail view, where you can inspect logs, stage results, inputs used, and artifacts produced.

Go to [Execution logs](/harness-platform/3.0/harness-platform-resources/overview/overview-2.md) to learn about the execution detail view.

***

## Triggers

The Triggers tab manages what starts this pipeline automatically: webhooks, schedules, new artifacts, or custom events.

Go to [Triggers](/harness-platform/3.0/harness-platform-resources/triggers.md) to set up and manage triggers for this pipeline.

***

## Input sets

The Input Sets tab lets you save a collection of runtime input values to reuse across runs. If the pipeline has no runtime inputs defined, this tab shows an empty state.

Go to [Input sets](/harness-platform/3.0/harness-platform-resources/overview/input-sets.md) to create and manage input sets.

***

## Next steps

* Go to [Pipeline settings](/harness-platform/3.0/harness-platform-resources/overview/pipeline-settings.md) to review the full reference for the Configure pipeline panel.
* Go to [Pipelines](/harness-platform/3.0/harness-platform-resources/overview.md) to understand the pipeline model and how to create a pipeline.
* Go to [Execution logs](/harness-platform/3.0/harness-platform-resources/overview/overview-2.md) to inspect logs, stage results, and artifacts from a pipeline run.
