<a id="home"></a>

# **Workshop**

**Workshops are secure, fast, and composable development environments
that come agent-ready**.

**Wrap complex, error-prone workspaces
into reliable and reproducible definitions of languages, libraries, and tooling**.
The key pieces of a definition are SDKs:
independent, connectable units of functionality
that publishers package and share on the SDK Store,
and teams can define in their repositories.

**Workshops enable sandboxed experimentation,
turn environment updates into manageable transactions,
and ensure consistent, reproducible environments**.
With **Workshop**, you can launch a setup
that previously took hours to configure in a few commands
and be sure it will work the same way every time,
or tear it down and start from the last step without worrying about leftover state.

**Agentic engineering, AI/ML, robotics, IoT, EdTech, and similar domains**
typically use less-than-trivial project layouts
that rely on many Ubuntu versions or container images,
a plethora of diverse tools and frameworks,
and a wide range of libraries and languages.
That’s where **Workshop** thrives.

**Built for AI workflows**.
**Workshop** publishes [LLM-readable docs](https://ubuntu.com/workshop/docs//reference/ai-agents.md#ref-ai-discovery),
and ships agentic skills for [operating workshops](https://ubuntu.com/workshop/docs//reference/ai-agents.md#ref-ai-use-workshop-skill)
and [scaffolding SDKs](https://ubuntu.com/workshop/docs//reference/ai-agents.md#ref-ai-sdk-designer-skill).

---

## In this documentation

| **Tutorial**        | [Get started](https://ubuntu.com/workshop/docs//tutorial/part-1-get-started.md#tut-get-started) •<br/>[Work with interfaces](https://ubuntu.com/workshop/docs//tutorial/part-2-work-with-interfaces.md#tut-interfaces) •<br/>[Sketch SDKs](https://ubuntu.com/workshop/docs//tutorial/part-3-sketch-sdks.md#tut-sketch-sdks) •<br/>[Craft SDKs](https://ubuntu.com/workshop/docs//tutorial/part-4-craft-sdks.md#tut-craft-sdks)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|---------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **Workshops**       | [Concepts](https://ubuntu.com/workshop/docs//explanation/workshops/concepts.md#exp-workshop-concepts) •<br/>[Launch](https://ubuntu.com/workshop/docs//reference/cli/workshop.md#ref-workshop-launch) •<br/>[Refresh](https://ubuntu.com/workshop/docs//reference/cli/workshop.md#ref-workshop-refresh) •<br/>[Connect](https://ubuntu.com/workshop/docs//reference/cli/workshop.md#ref-workshop-connect) •<br/>[Shell access](https://ubuntu.com/workshop/docs//reference/cli/workshop.md#ref-workshop-shell) •<br/>[Add actions](https://ubuntu.com/workshop/docs//how-to/customize-workshops/add-actions.md#how-add-actions) •<br/>[Multi-workshop patterns](https://ubuntu.com/workshop/docs//explanation/workshops/multi-workshop-patterns.md#exp-multi-workshop-patterns) •<br/>[Use multiple workshops](https://ubuntu.com/workshop/docs//how-to/customize-workshops/use-multiple-workshops.md#how-use-multiple-workshops) •<br/>[Forward ports](https://ubuntu.com/workshop/docs//how-to/customize-workshops/forward-ports.md#how-forward-ports) •<br/>[Status diagrams](https://ubuntu.com/workshop/docs//reference/workshop-status.md#ref-workshop-status) •<br/>[Definition file](https://ubuntu.com/workshop/docs//reference/definition-files/workshop-definition.md#ref-workshop-definition) |
| **SDKs**            | [Concepts](https://ubuntu.com/workshop/docs//explanation/sdks/concepts.md#exp-sdk-concepts) •<br/>[Sketch SDKs in-place](https://ubuntu.com/workshop/docs//tutorial/part-3-sketch-sdks.md#tut-sketch-sdks) •<br/>[Craft full SDKs](https://ubuntu.com/workshop/docs//tutorial/part-4-craft-sdks.md#tut-craft-sdks) •<br/>[Parts](https://ubuntu.com/workshop/docs//explanation/sdks/parts.md#exp-sdk-parts) •<br/>[Design best practices](https://ubuntu.com/workshop/docs//explanation/sdks/best-practices.md#exp-sdk-best-practices) •<br/>[SDKs vs Dockerfiles](https://ubuntu.com/workshop/docs//explanation/sdks/sdk-vs-dockerfile.md#exp-dockerfile-vs-sdk) •<br/>[Definition file](https://ubuntu.com/workshop/docs//reference/definition-files/sdk-definition.md#ref-sdk-definition)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| **Interfaces**      | [Concepts](https://ubuntu.com/workshop/docs//explanation/interfaces/concepts.md#exp-interface-concepts) •<br/>[Camera](https://ubuntu.com/workshop/docs//explanation/interfaces/camera-interface.md#exp-camera-interface) •<br/>[Custom device](https://ubuntu.com/workshop/docs//explanation/interfaces/custom-device-interface.md#exp-custom-device-interface) •<br/>[Desktop](https://ubuntu.com/workshop/docs//explanation/interfaces/desktop-interface.md#exp-desktop-interface) •<br/>[GPU](https://ubuntu.com/workshop/docs//explanation/interfaces/gpu-interface.md#exp-gpu-interface) •<br/>[Mounts](https://ubuntu.com/workshop/docs//explanation/interfaces/mount-interface.md#exp-mount-interface) •<br/>[SSH agent](https://ubuntu.com/workshop/docs//explanation/interfaces/ssh-interface.md#exp-ssh-interface) •<br/>[Networking](https://ubuntu.com/workshop/docs//explanation/interfaces/tunnel-interface.md#exp-tunnel-interface)                                                                                                                                                                                                                                                                                                                                                       |
| **Projects**        | [Concepts](https://ubuntu.com/workshop/docs//explanation/workshops/projects.md#exp-projects) •<br/>[Move projects](https://ubuntu.com/workshop/docs//how-to/customize-workshops/move-projects.md#how-move-projects) •<br/>[Update projects](https://ubuntu.com/workshop/docs//tutorial/part-1-get-started.md#tut-project-updates) •<br/>[Changes and tasks](https://ubuntu.com/workshop/docs//explanation/workshops/changes-tasks.md#exp-changes-tasks)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| **Development**     | [Connect VS Code](https://ubuntu.com/workshop/docs//how-to/develop-with-workshops/connect-vscode.md#how-vscode-connect-remote) •<br/>[JetBrains Gateway](https://ubuntu.com/workshop/docs//how-to/develop-with-workshops/run-jetbrains-gateway.md#how-jetbrains-gateway) •<br/>[JupyterLab in browser](https://ubuntu.com/workshop/docs//how-to/develop-with-workshops/run-jupyterlab-in-browser.md#how-jupyterlab-run-in-browser) •<br/>[Use with Git](https://ubuntu.com/workshop/docs//how-to/develop-with-workshops/use-git.md#how-git-workshops) •<br/>[Run GitHub Actions locally](https://ubuntu.com/workshop/docs//how-to/develop-with-workshops/run-github-actions-locally.md#how-run-github-actions-locally) •<br/>[AI agents](https://ubuntu.com/workshop/docs//how-to/develop-with-workshops/use-workshops-with-ai-agents.md#how-use-workshops-with-ai-agents)                                                                                                                                                                                                                                                                                                                                                                                                                                |
| **Troubleshooting** | [Debug workshops](https://ubuntu.com/workshop/docs//how-to/fix-workshops/debug-issues.md#how-debug-issues-workshops) •<br/>[Fix installation](https://ubuntu.com/workshop/docs//how-to/fix-workshops/fix-installation.md#how-troubleshoot) •<br/>[Resolve plug conflicts](https://ubuntu.com/workshop/docs//how-to/fix-workshops/resolve-plug-conflicts.md#how-resolve-plug-conflicts) •<br/>[Purge workshops](https://ubuntu.com/workshop/docs//how-to/fix-workshops/purge.md#how-purge)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| **Architecture**    | [Components](https://ubuntu.com/workshop/docs//explanation/architecture/components.md#exp-arch-system-components) •<br/>[Runtime behavior](https://ubuntu.com/workshop/docs//explanation/architecture/runtime-behavior.md#exp-arch-runtime-behavior) •<br/>[Workshop internals](https://ubuntu.com/workshop/docs//reference/workshops.md#ref-workshop-internals) •<br/>[SDK internals](https://ubuntu.com/workshop/docs//reference/sdks.md#ref-sdk-internals)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| **CLI**             | [Workshop CLI](https://ubuntu.com/workshop/docs//reference/cli/workshop.md#ref-workshop-cli) •<br/>[SDK CLI](https://ubuntu.com/workshop/docs//reference/cli/sdk.md#ref-sdk-cli) •<br/>[SDKcraft CLI](https://ubuntu.com/workshop/docs//reference/cli/sdkcraft.md#ref-sdkcraft-cli) •<br/>[workshopctl CLI](https://ubuntu.com/workshop/docs//reference/cli/workshopctl.md#ref-workshopctl-cli)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |

## How this documentation is organized

This documentation follows the [Diátaxis documentation framework](https://diataxis.fr/),
organizing content by the type of information users need.
The four sections serve different purposes:

[Tutorial](https://ubuntu.com/workshop/docs//tutorial/index.md): Hands-on learning path for new **Workshop** users,
progressing from basic operations through interface usage to SDK development.

[How-to guides](https://ubuntu.com/workshop/docs//how-to/index.md): Step-by-step instructions for specific tasks
like connecting IDEs, managing projects, and troubleshooting issues.

[Reference](https://ubuntu.com/workshop/docs//reference/index.md): Technical specifications for CLI commands,
definition file formats, and internal behavior.

[Explanation](https://ubuntu.com/workshop/docs//explanation/index.md): In-depth discussion of **Workshop** architecture,
concepts, and design principles.

---

<a id="project-community"></a>

## Project and community

**Workshop** is an emergent project
within the DevEx department here at Canonical;
**SDKcraft** is its sibling project,
aimed at publishers who create and distribute SDKs for **Workshop**.

At its core, **Workshop** builds upon Canonical’s mature tech.
It uses [LXD](https://documentation.ubuntu.com/lxd/latest/) as the underlying container technology;
it also follows the tooling paradigm exemplified by
[Snap](https://snapcraft.io/docs/),
and implemented with
[Craft CLI](https://craft-cli.readthedocs.io/en/latest/).

### Get involved

- [Contribution and participation](https://ubuntu.com/workshop/docs//contributing.md#contributing)

### Releases and roadmap

- [Release notes](https://ubuntu.com/workshop/docs//release-notes/index.md#release-notes)

### Governance and policies

- [Code of conduct](https://ubuntu.com/community/docs/ethos/code-of-conduct)
- [Security policy](https://ubuntu.com/workshop/docs//security.md)
- [License](https://github.com/canonical/workshop/blob/main/LICENSE)

### Feedback and support

- [Product and documentation feedback](https://github.com/canonical/workshop/issues)
