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...