A Viash configuration is a YAML file which contains metadata to describe the behaviour and build target(s) of a component.
We commonly name this file config.vsh.yaml in our examples, but you can name it however you choose.

Here’s an example of a config file:

  name: hello_world
  description: A minimal example component.
  - type: string
    name: --input
    default: "World"
  - type: bash_script
    path: script.sh
  - type: native

Every Viash config consists of two main sections: functionality and platforms.


The functionality section describes the behaviour of the component. This includes a name, a description and the arguments and resources the component needs to function.
Check out our Arguments section on the left to find out more about the supported arguments. The External Resources guide contains information on how to add resources and use them.


The platforms section specifies what platforms are supported as build targets for a component and their requirements. We support native, Docker and Nextflow. If no platforms are specified, the native platform is used by default.