# Launcher VIs

{% hint style="info" %}
You can create Launcher VIs with the [Create Launcher VI](/workers-tools/workers-tools-menu/create-launcher-vi.md) tool.
{% endhint %}

A Launcher VI is a VI that you run to launch the [Head Worker](/fundamental-concepts/important-terms.md#head-worker) of a Workers application.

By default, a Worker cannot launch/run itself, and this is the reason we need a Launcher VI.

![Launcher VI launches head Worker of application.](/files/uq5OvpYXsrMRDz9dfsWx)

The following image shows a Launcher VI for a Worker in a LabVIEW project, and below that the block diagram of the Launcher VI.

![](/files/AoQePwsy1tw9zlecE5Kv)

![Launcher - Worker A.vi](/files/rCeNt8yzrF3Ot627lghi)

A Launcher VI contains (from left to right):

* the class object constant of the application's head Worker
* the Worker's palette VI: *Debug Client Loader.vi*
* the Worker's palette VI: *Setup Head Worker.vi*
* the Main VI (Main.vi) of the application's head Worker.

Running the Launcher VI will launch the application's head Worker along with all of head Worker's statically-linked subWorkers. If the Launcher VI is aborted, then **all** Workers in the application's Worker call-chain hierarchy (both statically-linked and dynamically loaded) will also be immediately aborted.

## Asynchronous Launcher VIs

Asynchronous Launcher VIs will asynchronously launch a Worker's Launcher VI (above) and can be used to load multiple instances of a Workers application. Asynchronous Launcher VIs return the loaded Worker's class object containing only its Public Properties. This object can then be used with a Worker's Public API Request VIs from applications external to the Workers application (eg. TestStand).

{% hint style="success" %}
The Workers 5.0 [DMM HAL Demo Project](/whats-new-in-v5.0/new-features/example-projects.md) and [TCP Server and Client](/getting-started/example-projects.md) example project both launch their respective Worker applications using Asynchronous Launcher VIs.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.workersforlabview.io/fundamental-concepts/launcher-vis.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
