Ubuntu Workshop: secure, fast, and composable development environments

polyrand1 pts0 comments

Workshop

Contents

Menu

Expand

Light mode

Dark mode

Auto light/dark, in light mode

Auto light/dark, in dark mode

Skip to content

Home

Tutorial<br>Part 1: Get started

Part 2: Work with interfaces

Part 3: Sketch SDKs

Part 4: Craft SDKs

How-to guides<br>Customize workshops<br>Add actions to workshops

Add mounts

Forward ports

Move projects around

Use multiple workshops

Develop with workshops<br>Connect VS Code to a workshop

Run JetBrains Gateway in a workshop

Run JupyterLab in your browser

Manage Python environments

Run GitHub Actions locally

Run workshops in GitHub Actions

Use workshops with AI agents

Use workshops with Git

Develop SDKs<br>Build an SDK

Publish an SDK

Fix workshops<br>Debug issues in workshops

Resolve plug conflicts

Fix the installation

Purge workshops

Reference<br>CLI<br>sdk (CLI)

sdkcraft (CLI)

workshop (CLI)

workshopctl (CLI)

Definition files<br>SDK definition

Workshop definition

SDK internals

Workshop internals

Workshop status diagrams

Workshop and AI agents

Explanation<br>Architecture<br>System components

Runtime behavior

Workshops<br>Workshop concepts

Projects

Multi-workshop patterns

Changes, tasks

workshop (CLI)

SDKs<br>SDK concepts

Parts

Design best practices

SDKs versus Dockerfiles

sdk (CLI)

sdkcraft (CLI)

workshopctl (CLI)

Interfaces<br>Interface concepts

Camera interface

Desktop interface

GPU interface

Mount interface

SSH interface

Tunnel interface

Release notes<br>Workshop v0.9.0

Security

Contribution

Back to top

Workshop ¶

Workshops are secure, fast, and composable development environments<br>that come agent-ready .

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

Workshops enable sandboxed experimentation,<br>turn environment updates into manageable transactions,<br>and ensure consistent, reproducible environments .<br>With Workshop , you can launch a setup<br>that previously took hours to configure in a few commands<br>and be sure it will work the same way every time,<br>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<br>typically use less-than-trivial project layouts<br>that rely on many Ubuntu versions or container images,<br>a plethora of diverse tools and frameworks,<br>and a wide range of libraries and languages.<br>That’s where Workshop thrives.

Built for AI workflows .<br>Workshop publishes LLM-readable docs,<br>and ships agentic skills for operating workshops<br>and scaffolding SDKs.

In this documentation¶

Tutorial

Get started •<br>Work with interfaces •<br>Sketch SDKs •<br>Craft SDKs

Workshops

Concepts •<br>Launch •<br>Refresh •<br>Connect •<br>Shell access •<br>Add actions •<br>Multi-workshop patterns •<br>Use multiple workshops •<br>Forward ports •<br>Status diagrams •<br>Definition file

SDKs

Concepts •<br>Sketch SDKs in-place •<br>Craft full SDKs •<br>Parts •<br>Design best practices •<br>SDKs vs Dockerfiles •<br>Definition file

Interfaces

Concepts •<br>Camera •<br>Desktop •<br>GPU •<br>Mounts •<br>SSH agent •<br>Networking

Projects

Concepts •<br>Move projects •<br>Update projects •<br>Changes and tasks

Development

Connect VS Code •<br>JetBrains Gateway •<br>JupyterLab in browser •<br>Use with Git •<br>Run GitHub Actions locally •<br>AI agents

Troubleshooting

Debug workshops •<br>Fix installation •<br>Resolve plug conflicts •<br>Purge workshops

Architecture

Components •<br>Runtime behavior •<br>Workshop internals •<br>SDK internals

CLI

Workshop CLI •<br>SDK CLI •<br>SDKcraft CLI •<br>workshopctl CLI

How this documentation is organized¶

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

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

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

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

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

Project and community¶

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

At its core, Workshop builds upon Canonical’s mature tech.<br>It uses LXD as the underlying container technology;<br>it also follows the tooling paradigm exemplified by<br>Snap,<br>and implemented with<br>Craft CLI.

Get involved

Contribution and participation

Releases and roadmap

Release notes

Governance and policies

Code of conduct

Security policy

License

Feedback and support

Product and documentation feedback

Contents

Workshop<br>In this documentation

How this documentation is...

workshop workshops sdks concepts interface definition

Related Articles