> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vessl.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Pipeline variables

**Pipeline variables** are working similarly to the environment variables in the pipeline execution. You can define the pipeline variables in the `Variables` tab and use them in the pipeline steps.

Navigate how to create pipeline variables with the demos below:

<div style={{ marginBottom: '200px', position: 'relative', paddingTop: '400px' }}>
  <iframe src="https://demo.arcade.software/XHbJ0jBJaD6GvoUHdv1j?embed&embed_mobile=tab&embed_desktop=inline&show_copy_link=true" frameBorder="0" loading="lazy" webkitAllowFullScreen="" mozAllowFullScreen="" title="Dashboards" style={{ position: 'absolute', top: '0px', left: '0px', width: '100%', height: '550px', colorScheme: 'light' }} />
</div>

There are two types of pipeline variables:

* **Input Variables**: The variables that are injected into the pipeline steps.
* **Output Variables**: The variables that are generated from the pipeline steps.

## Input variables

Input variables are used within the pipeline and directly impact its output.

<div style={{ marginBottom: '170px', position: 'relative', paddingTop: '400px' }}>
  <iframe src="https://demo.arcade.software/vZz0DluUu0bOyyCI8LLZ?embed&embed_mobile=tab&embed_desktop=inline&show_copy_link=true" frameBorder="0" loading="lazy" webkitAllowFullScreen="" mozAllowFullScreen="" title="Dashboards" style={{ position: 'absolute', top: '0px', left: '0px', width: '100%', height: '550px', colorScheme: 'light' }} />
</div>

For **input variables**, you can define the following options:

* **Name**: Name of the variable.
* **Description**: Description of the variable.
* **Type**: Either `String` or `Choice`; For the `Choice` type, you can define the choice options. Both options are treated as a string, but the `Choice` type provides a dropdown menu in the pipeline execution.
* **Value**: Default value of the variable.

## Output variables

Output variables are a way to **pass the result of a pipeline** to another pipeline. For example, if you have a step that trains a model and you want to pass the model path to another step, you can define an output variable in the training step and use it in the next step.

<div style={{ marginBottom: '170px', position: 'relative', paddingTop: '400px' }}>
  <iframe src="https://demo.arcade.software/oBlwEN2X3ZlZSFg7O9XC?embed&embed_mobile=tab&embed_desktop=inline&show_copy_link=true" frameBorder="0" loading="lazy" webkitAllowFullScreen="" mozAllowFullScreen="" title="Dashboards" style={{ position: 'absolute', top: '0px', left: '0px', width: '100%', height: '550px', colorScheme: 'light' }} />
</div>

For **output variables**, you can define the following options:

* **Name**: Name of the variable.
* **Description**: Description of the variable.
* **Source**: The source where the variable is generated. You can choose the either constant, pipeline step or input variable.
* **Value**: The value of the variable. If the source is a pipeline step, you can define the step reference and claim name.
