Workshops are secure, fast, and composable development environments that come agent-ready.
List your dependencies and components in YAML to define an environment. The key pieces of a definition are SDKs, independent but connectable units of functionality created by software publishers and available on the SDK Store. Workshop simplifies experiments with your environment layout.
It allows you to focus on adding value to your project. With Workshop, you can launch a setup that previously took hours to configure in a few commands, and be sure that it stays operational. It assists in issue reproduction, enables hands-on code reviews, and turns environment updates into manageable transactions, reducing the need to battle with your tooling every day.
In the directory of the project
that you want to use with Workshop,
run workshop init with a comma-separated list of SDKs,
pinning any of them to a channel:
workshop init dev --sdks opencode,go/1.26/stableThis writes .workshop/dev.yaml
with the opencode SDK on its default channel
and the go SDK pinned to 1.26/stable:
name: dev
base: ubuntu@24.04
sdks:
- name: opencode
- name: go
channel: 1.26/stableLaunch the workshop:
workshop launchWorkshop downloads and installs the SDKs your definition lists; the project is now ready to use them.
The Workshop team maintains a curated collection of
reference SDKs:
ready-to-use components for languages, runtimes, AI agents, GPUs, and more.
In particular, language and runtime SDKs include
go, node, rust, flutter, and uv.
Add any of them to a workshop the same way. For example, to start a Node.js LTS environment:
workshop init web --sdks node/24/stable
workshop launchEach SDK is published on the SDK Store through channels
of the form <TRACK>/<RISK>, defaulting to latest/stable.
Where an SDK follows an upstream release line, its tracks mirror it:
the node SDK exposes a track per Node.js LTS line
(node/20/stable, node/22/stable, node/24/stable),
and the go SDK a track per Go release line
(go/1.24/stable, go/1.25/stable, go/1.26/stable).
Pin a track to stay on that line,
or omit the channel to follow the latest stable release.
Workshop is supported on Ubuntu and other snap-enabled Linux distributions.
Workshop requires LXD 6.8+ for low-level operation.
If the snap install command reports an issue with LXD,
install a recent LXD version with snap:
sudo snap install --channel=6/stable lxd # to install
sudo snap refresh --channel=6/stable lxd # to updateInstall the snap using the --classic option:
sudo snap install --classic workshopThe downside of this method is that you will need to manually check for and install updates.
Refer to the Tutorial in our docs for a detailed introduction to Workshop.
To know more about SDKcraft, the SDK authoring tool for Workshop, jump straight to the SDK crafting guide in our docs.
For reference examples of SDK implementation, see the reference SDKs repository.
Use the following resources for communication, support, and feedback:
To join the development effort, see How to contribute.
Workshop is released under the GPL-3.0 license.
The documentation is licensed under CC-BY-SA 4.0.