Skip to content

Repository files navigation

Workshop

Ubuntu-native development environments: secure, fast, composable, and agent-ready.

Workshop wraps complex, error-prone workspaces into reproducible definitions of languages, libraries, and tooling.

Capture your development environment in a single workshop.yaml, then launch it on an Ubuntu or WSL host with one command: workshop launch.

Built by Canonical on LXD system containers, Workshop brings Ubuntu's familiar tools and services into your project's development workflow.

  • Composable: build definitions from SDKs, independent units of functionality available from the SDK Store or defined as sketches in your repository.
  • Transactional: environment updates apply as changes you can inspect, with automatic rollback on failure by default.
  • Sandboxed: experiment inside a container and control its access to host resources through interfaces.
  • System containers: work with Ubuntu users, packages, networking, and systemd services inside your development environment.

Installation

Workshop runs on Ubuntu or WSL and requires LXD 6.8+:

sudo snap install --channel=6/stable lxd  # skip if LXD is already installed
sudo snap install --classic workshop

Quick start

In your project directory, define a workshop from a comma-separated list of SDKs:

workshop init dev --sdks opencode,go/1.26/stable

This writes .workshop/dev.yaml, which you can extend with named actions:

# .workshop/dev.yaml
name: dev
base: ubuntu@24.04
sdks:
  - name: opencode
  - name: go
    channel: 1.26/stable
actions:                # add your own
  analyzer: |
    go vet ./...

Launch the workshop, then work inside it:

workshop launch       # download and install the SDKs
workshop shell        # open an interactive session
workshop run -- analyzer  # run a named action
workshop refresh      # apply edits to the definition, update SDKs

SDKs

The Workshop team maintains a collection of reference SDKs for languages, runtimes, AI agents, GPUs, and more, including go, node, rust, flutter, and uv.

Where an SDK follows an upstream release line, its channel tracks mirror it:

workshop init web --sdks node            # latest/stable, the default
workshop init web --sdks node/24/stable  # pinned to the Node.js 24 LTS line
workshop init api --sdks go/1.25/stable  # pinned to the Go 1.25 release line

Documentation

Community and support

Contributions and license

To join the development effort, see How to contribute.

Workshop is released under the GPL-3.0 license, and the documentation under CC-BY-SA 4.0.

About

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

Topics

Resources

Contributing

Security policy

Stars

106 stars

Watchers

6 watching

Forks

Releases

Packages

Used by

Contributors

Languages