<a id="exp-workshop-cli"></a>

# workshop (CLI)

<!-- @artefact workshop (CLI) -->
<!-- @artefact workshopd -->

**Workshop** includes an eponymous command-line utility,
**workshop**;
it is the daily go-to instrument for regular users,
with a set of commands that govern the entire lifecycle of a
[workshop](https://ubuntu.com/workshop/docs//explanation/index.md#exp-workshop).

There are several categories of commands that vary by their purpose:

| Actions                | Commands                                                                                  | What they do                                                                                              |
|------------------------|-------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------|
| Create, update, delete | **launch**,<br/>**refresh**,<br/>**remove**,<br/>**restore**,<br/>**start**,<br/>**stop** | Control a workshop’s existence and runtime state,<br/>from first launch to refresh, restore, and removal. |
| Customize              | **sketch-sdk**,<br/>**sketches**                                                          | Augment a workshop with project-specific customizations<br/>through sketch SDKs.                          |
| Enumerate              | **info**,<br/>**list**                                                                    | List the workshops in a project and inspect their current details.                                        |
| Track changes          | **changes**,<br/>**tasks**                                                                | Review recent changes to the workshops in a project<br/>and the tasks that make up each change.           |
| Manage connections     | **connect**,<br/>**connections**,<br/>**disconnect**,<br/>**remount**                     | Wire interface plugs and slots between SDKs,<br/>list existing connections, and remount their sources.    |
| Run shell commands     | **exec**,<br/>**shell**                                                                   | Run an ad-hoc command in a workshop<br/>or open an interactive shell inside it.                           |
| Run named actions      | **actions**,<br/>**run**                                                                  | List and invoke the named actions<br/>defined in a workshop’s `actions:` section.                         |
| Manage warnings        | **okay**,<br/>**warnings**                                                                | List warnings raised by the daemon and acknowledge them.                                                  |

For an end-to-end example of putting these commands to use,
refer to the [tutorial](https://ubuntu.com/workshop/docs//tutorial/index.md#tut-index).

#### NOTE
The utility talks to the **Workshop** daemon,
**workshopd**, via a REST API,
so alternatives are possible and, in fact, encouraged.

## See also

Reference:

- [Command-line interfaces](https://ubuntu.com/workshop/docs//reference/index.md#ref-cli)

Tutorial:

- [Get started with workshops](https://ubuntu.com/workshop/docs//tutorial/part-1-get-started.md#tut-get-started)
