This repository contains a minimal Podman Desktop extension scaffold for WSL Containers. It is based on extension-template-minimal, at commit f5e0579, with the build, lint, typecheck, and CI changes required for this repository.
The extension entrypoint currently only defines empty activate and deactivate functions. The WSL Containers provider and bridge integration are not implemented yet.
See the Podman Desktop extension documentation for more information about extension development.
Prerequisites: Node.js 24 from .nvmrc and the pinned pnpm version from package.json.
-
Clone the repository and install dependencies:
git clone https://github.com/podman-desktop/wslc.git cd wslc nvm use corepack enable pnpm install --frozen-lockfile
-
Build the extension. Vite writes the Podman Desktop entrypoint to
dist/extension.cjs:pnpm build
To rebuild automatically after source changes:
pnpm watch
-
Run the typecheck, linter, and formatter:
pnpm typecheck pnpm lint:check pnpm format:check
pnpm format:fixrewrites files in place. -
Load the extension temporarily in Podman Desktop. Clone Podman Desktop, install its dependencies, and run its development build with this repository as the extension folder. For sibling directories:
cd ../podman-desktop pnpm install pnpm watch --extension-folder ../wslcRun
pnpm watchin this repository in a second terminal. Confirm WSL Containers appears in Podman Desktop's Extensions view.
The Containerfile builds the extension from source, so a prebuilt dist/ directory is not required. Build a local OCI image with:
podman build -t localhost/wslc:dev .For publishing instructions, see the Podman Desktop publishing documentation. The manually dispatched release workflow accepts a semantic version and branch, then publishes the image to ghcr.io/podman-desktop/wslc:<version>. Stable releases also receive the latest tag; prereleases do not.