Workshop

Workshop is a tool for creating and managing container-based development environments. Define the languages, libraries, and tools your project needs in a workshop definition, then compose the environment from SDKs: independent units of functionality that connect through interfaces. Use SDKs published on the SDK Store or define them in your repository.

Workshop helps developers and teams reproduce complex setups across machines, experiment in a sandbox, and manage environment updates. It supports projects that span Ubuntu versions, container images, languages, and frameworks, including AI and machine learning, robotics, IoT, and education. Reuse a definition to set up an environment or rebuild it when you need a fresh start.


In this documentation

Getting started

Concepts and architecture

Using workshops

Workshop configuration

SDK development

Shared resources

Tool integrations

Maintenance

Security

Use cases

How this documentation is organized

This documentation follows the Diátaxis documentation framework, organizing content by the type of information users need. The four sections serve different purposes:

Tutorial: Hands-on learning path for new Workshop users, progressing from basic operations through interface usage to SDK development.

How-to guides: Step-by-step instructions for specific tasks like connecting IDEs, managing projects, and troubleshooting issues.

Reference: Technical specifications for CLI commands, definition file formats, and internal behavior.

Explanation: In-depth discussion of Workshop architecture, concepts, and design principles.


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 as the underlying container technology; it also follows the tooling paradigm exemplified by Snap, and implemented with Craft CLI.

Get involved

Releases

Governance and policies

Feedback and support