On October 1, 2026, the official Microsoft Developer account (@msdev) announced the general availability of the API Access functions tier for WSL Containers. This is the next step after the deployment of the CLI interface (`wslc.exe` and the `container.exe` alias) — developers can now control Linux containers directly from code of Windows-native applications, without leaving their own environment.
When Microsoft released WSL 2, many of us thought: "okay, we have Linux in Windows, but it's still a virtual machine." When WSL 3.0 arrived with native container support and the CLI wslc.exe, the situation changed — it stopped being "Linux in a box" and became a runtime environment. Now, with the announcement from October 1, 2026, Microsoft goes a step further: it provides API functions that allow Windows applications (written in C#, C++, Rust, Go — anything that compiles to native code) to programmatically build, run, and manage Linux containers.
This isn't about another wrapper around Docker. It's about the container engine becoming part of the operating system, and you getting a programmatic handle to it. This changes the approach to local AI development, testing cloud images, or building developer tools that until now either had to escape into WSL via wsl.exe, or required the user to manually operate the terminal.
Where This Came From — A Brief History for Context
Let's quickly recap the sequence of events in 2026, because Microsoft doesn't do this in a vacuum:
- June 2026 — Help Net Security reports the general availability (GA) of WSL Containers features: CLI
wslc.exe, aliascontainer.exefor familiar container commands, partner integrations, and enterprise management [source]. - Summer 2026 — WSL 3.0 appears with native container support and a new CLI [source]. This is the foundation for today's API.
- October 1, 2026 — Thread on X from @msdev announces API Access functions [tweet].
The article on xenospectrum describing the GA architecture and boundaries relative to Docker [source] provides the technical background: WSL Containers is not a Docker fork, but a lightweight container engine built on the Linux kernel running through WSL, with its own image store and network, integrated with the Windows security model.
What API Access Functions Concretely Provide
Until now, if your Windows application needed to run a container, you had three paths:
- Invoke
wslc.exeorcontainer.exeviaProcess.Start— works, but it's a child process, parsing stdout/stderr, no typing, pain with permissions. - Use Docker Desktop — heavy, requires a background service, license in companies, separate daemon.
- Write your own client for the container daemon's gRPC/REST — if such a daemon even exposes an interface.
API Access functions are a fourth, native path. Microsoft hasn't released the full spec yet (at the time of writing only the announcement is available), but from the thread context and GA architecture we know it's about:
- A native library (DLL/winrt/COM — details TBD) for invoking container operations:
create,start,stop,exec,logs,remove, image management (pull,build,push), network, and volumes. - An async model (iasyncoperation / Task-based) natural for .NET and winrt.
- Integration with the Windows identity model — the container runs in the context of the user or service, without additional UID/GID mappings.
- Access to container stdin/stdout/stderr as winrt / .NET
Streamstreams.
This means you can write a WPF/WinUI/MAUI/WinForms application that "embeds" running an LLM model in a container, without asking the user to open a terminal.
Scenario 1: Local AI Workloads Without the Cloud
This is the scenario Microsoft puts front and center. Why does it matter?
AI developers on Windows today have a choice: either GPU in WSL 2 (works, but it's a VM, overhead, passthrough issues on some laptops), or the cloud (cost, latency, data privacy), or complicated setups with llama.cpp / ollama compiled natively for Windows (often without full acceleration).
With API Access functions you can:
- Package a model (e.g., Qwen, Llama, Phi, GLM) into an OCI image with
llama.cpporvLLMwith CUDA/ROCm/DirectML acceleration. - Get the token stream back to the UI without network latency.
Conceptual example (C# / winrt pseudocode):
using Microsoft.Wsl.Containers; // hipotyczny namespace
var client = new ContainerClient();
await client.PullImageAsync("ghcr.io/moj-organizacja/llama-cpp:cuda-12.4");
var container = await client.CreateContainerAsync(new ContainerSpec
{
Image = "ghcr.io/moj-organizacja/llama-cpp:cuda-12.4",
Command = new[] { "/app/llama-server", "-m", "/models/qwen2.5-7b-instruct-q4_k_m.gguf", "--port", "8080" },
Gpu = GpuRequest.All, // lub konkretny device ID
Ports = new[] { new PortMapping(8080, 8080) }
});
await container.StartAsync();
// strumieniowanie logów / tokenów do UI
await foreach (var line in container.GetLogsAsync(follow: true))
{
DispatcherQueue.TryEnqueue(() => LogTextBox.AppendText(line + "\n"));
}
You don't need to install Docker. You don't need to configure daemon.json. The container runs on the Linux kernel from WSL, with GPU access through Windows drivers (DirectML / WDDM), and you have full control from code.
In the context of local AI, it's worth looking at what we wrote about running large models on workstations — e.g., Qwen 3.8 27B on the Cerebras platform or GLM 5.2 on two MacBooks with 128GB RAM. WSL Containers API is the bridge that lets you bring these approaches to regular Windows workstations with NVIDIA/AMD/Intel GPUs.
Scenario 2: Containerized Apps from the Cloud — Locally, in Seconds
The second scenario from the announcement: "local running of containerized applications from the cloud." What does this mean in practice?
You have an image in Azure Container Registry, Docker Hub, GHCR, or a private corporate registry. You want to test it with your code, your config, your data — but you don't want to deploy to a dev cluster, don't want to port-forward, don't want to wait for CI/CD.
With the API you do this programmatically:
- The application pulls the image (
pullwith auth from Windows Credential Manager / Azure CLI cache). - Creates a container with a mount of your local project directory (
--mount type=bind,source=C:\src\myapp,target=/app). - Runs it, attaches a debugger (e.g.,
delvefor Go,debugpyfor Python) viaexec. - On completion —
stop,remove, the image stays in cache for next time.
This drastically shortens the feedback loop. For teams working in an "inner loop" model, it's the difference between minutes and seconds.
How to Run It — Steps to Take Today
Microsoft provides two paths, both work on Windows 11 (22H2+) and Windows Server 2025:
- Simplest: Open terminal (PowerShell / CMD / Windows Terminal) as administrator and run:
This will fetch the latest WSL version from Microsoft Store / GitHub Releases, including the new API functions.wsl --update - Alternatively (offline / CI / specific version): Download the latest release from the Microsoft/wsl GitHub repository — file
wsl_update_x64.msior.msixbundle— and install manually.
After updating, check availability of new commands:
wslc --help
container --help
If you see API-related commands (e.g., wslc api or new flags in container run), you have a ready environment. Developer documentation (SDK, NuGet, winmd) should appear in learn.microsoft.com in the coming weeks — watch the tag wsl-containers.
Architecture Under the Hood — What to Know Before Production
From the xenospectrum article and earlier reports, several key traits emerge that differentiate WSL Containers from Docker Desktop:
- No background daemon. Each
wslc/ API call spawns a short-lived process in the WSL context. This reduces attack surface and idle RAM usage. - Image store integrated with the Windows filesystem. Images reside in
%USERPROFILE%\AppData\Local\Microsoft\WSL\containers\images(or system equivalent) — visible, backuppable, portable. - Network defaults to host-mode / bridged with Windows. The container sees
localhostas the Windows host. Ports mapped via-p 8080:8080are immediately available in the browser on Windows. - GPU passthrough via WDDM / D3D12 / DirectML. Works on integrated and discrete GPUs, without NVIDIA Container Toolkit.
- Enterprise management. The thread mentions Intune / Group Policy policies: blocking
pullfrom public registries, requiring signed images, resource limits (CPU, RAM, GPU). This is key for corporate deployments.
Catch: WSL Containers is not a full Docker replacement in CI/CD. No docker build with layer caching in that sense (though wslc build exists), no Docker Compose (though you can orchestrate via API), no Swarm/Kubernetes. It's a developer and EDGE tool, not a server one.
Partner Integrations and Ecosystem — What Already Works
The @msdev thread mentions "partner and community integrations." Based on earlier releases and typical Microsoft patterns, we expect ready packages / extensions for:
- Visual Studio / VS Code — debugging in a container with one click (F5), GPU profiling.
- .NET Aspire — defining container resources in C#, local running via WSL Containers API.
- GitHub Codespaces / Codespaces-like locally — devcontainer.json recognized by WSL Containers.
- PowerShell Module / Az CLI — cmdlets
New-WslContainer,Start-WslContainer, etc. - Rust / Go / Python tooling — crate
wsl-containers, Go module, PyPI package.
If you build developer tools (linter, formatter, code generator, AI code assistant) — this is your moment to add a WSL Containers backend as a runtime option alongside Docker and subprocesses.
Comparison with Alternatives — Decision Table
| Feature | WSL Containers API | Docker Desktop | Podman Machine | WSL 2 + Docker Engine |
|---|---|---|---|---|
| Native API for Windows apps | Yes | REST/CLI only | REST/CLI only | Only via wsl.exe |
| Requires background service | No | Yes | Yes (VM) | Yes (dockerd) |
| Enterprise license | Free (Windows) | Paid (>250 users/$21k/yr) | Free | Free |
| GPU passthrough | Native (DirectML/WDDM) | NVIDIA Container Toolkit | Via VM | Via WSL 2 |
| OCI-compatible images | Yes | Yes | Yes | Yes |
| Compose / Orchestration | No (manual/API) | Yes | Yes | Yes |
| Enterprise policies (Intune/GPO) | Yes | Partial | Limited | Difficult |
Conclusion: if you're building a tool for developers on Windows, want to run containers "under the hood" without asking for Docker installation — WSL Containers API is the only option that gives you a native programmatic handle and zero dependencies on an external daemon.
Common Mistakes and How to Avoid Them (Based on WSL 2/3 Experience)
- Forgetting about
wsl --updateafter a major Windows update. Feature Update (e.g., 24H2 → 25H2) sometimes rolls back WSL to the inbox version. Fix: addwsl --updateto your onboarding script / Intune Win32 App. - Missing GPU permissions in the container. Ensure the user is in the
docker/containergroup in WSL (or run as admin / with appropriate policy). In API:GpuRequest.Allrequires drivers supporting WDDM 3.0+. - Bind mounts — uppercase, backslashes, spaces. In the API use Win32 paths (
C:\\src\\moje projekt), conversion to/mnt/c/src/moje projekthappens automatically. Avoid\\?\prefixes. - Image cache grows uncontrollably. No daemon = no automatic
docker system prune. Implement cleanup of old images (client.PruneImagesAsync(olderThan: TimeSpan.FromDays(30))) in your application. - Network — port conflicts with host. If your Windows app listens on 8080, the container can't map 8080:8080. Check free ports before
CreateContainerAsync.
What's Next — Roadmap and Where to Find Info
Microsoft hasn't published an official public roadmap, but from the thread and release history we can infer directions:
- Q4 2026 / Q1 2027 — SDK (NuGet, winmd, Rust crate, Go module), documentation on
learn.microsoft.com, samples inmicrosoft/WSL-Containers-Sampleson GitHub. - Integration with .NET Aspire 9+ — defining container resources in C#, automatic startup on F5.
- Confidential Containers support (CVMs / SEV-SNP / TDX) — for confidential data scenarios, aligned with the "confidential AI" trend.
- Expanded enterprise policies — signed images (cosign/notary), SBOM generation, attestation.
- Better ARM64 support — on Snapdragon X Elite / Plus, where WSL runs natively on ARM, and ARM64 containers give best perf/watt.
Watch:
- Repository Microsoft/wsl/releases — new versions every 2–4 weeks.
- Account @msdev on X — announcements.
- Tag
wsl-containersonlearn.microsoft.comanddevblogs.microsoft.com.
Summary — Is This for You?
If you:
- write Windows applications (desktop, background service, system tray) and want to run Linux containers "under the hood" — yes;
- build developer tools (IDE plugin, CLI, codegen, AI assistant) and want to give users containers without Docker — yes;
- work with local AI (LLM, diffusion, embeddings) and want a simple way to run GPU-accelerated inference in a container — yes;
- are in a corporation where Docker Desktop is unavailable or forbidden — yes, this is the only fully supported, free, and manageable alternative.
If, on the other hand, you run production in Kubernetes, build images in CI/CD, need Compose, Swarm, buildkit cache — leave WSL Containers to developers, and use Docker / Podman / buildkit / Kaniko in CI/CD.
Personally: since wsl --update worked on my machine, the first prototype of a "local LLM playground" in WinUI 3 took me an evening. Zero Docker config, zero GPU permission issues, model from GHCR pulled and running with code. This is the moment containers stop being a "DevOps tool" and become a "system library" on Windows.
Try it. wsl --update. Write 50 lines of code. See what happens.
Useful Links
- Announcement on X: https://x.com/msdev/status/2105797245845348700
- WSL Releases on GitHub: https://github.com/microsoft/wsl/releases
- GA Architecture (xenospectrum): https://xenospectrum.com/en/wsl-containers-ga-architecture-docker-boundaries/
- Help Net Security Report (June 2026): https://www.helpnetsecurity.com/2026/06/30/microsoft-linux-wsl-containers/
- WSL 3.0 with Native Containers: https://blog.desdelinux.net/en/WSL-3.0-has-been-released-and-comes-with-native-support-for-containers-and-the-WSL-CLI./a>
Sources
- https://x.com/msdev/status/2105797245845348700
- https://github.com/microsoft/wsl/releases
- https://xenospectrum.com/en/wsl-containers-ga-architecture-docker-boundaries/
- https://www.helpnetsecurity.com/2026/06/30/microsoft-linux-wsl-containers/
- https://blog.desdelinux.net/en/WSL-3.0-has-been-released-and-comes-with-native-support-for-containers-and-the-WSL-CLI./
Comments