Repository navigation
docs(windows): route main documentation to the Windows release branch #4758
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
drew
merged 6 commits into
main
from
docs/4756-windows-release-references/shailendra-nv
Oct 26, 2026
+513
−63
Merged
Changes from all commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
c9142ea
docs(windows): route main documentation to the Windows release branch
shailendra-nv c23af91
docs(windows): include native MXC tests in full validation
shailendra-nv 960d14e
docs(windows): address documentation review feedback
shailendra-nv a11a8a2
docs(windows): include E2E in full validation
shailendra-nv 14b86a1
docs(windows): stop validation after any failed task
shailendra-nv dee46a9
docs(windows): simplify quickstart and installation guidance
drew File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,113 @@ | ||
| # Native Windows support | ||
|
|
||
| The [`windows` branch](https://github.com/NVIDIA/OpenShell/tree/windows) is the | ||
| development and release branch for native Windows OpenShell. The Windows | ||
| implementation stays on that branch. This guide and other shared documentation | ||
| can also appear on `main`; their presence there does not move the Windows | ||
| implementation or release source to `main`. | ||
|
|
||
| Native Windows uses Microsoft MXC ProcessContainer isolation on x64 and ARM64. | ||
| It is separate from running Linux OpenShell inside WSL 2. Docker, Podman, | ||
| Kubernetes, and MicroVM are not native Windows compute backends. | ||
|
|
||
| ## Runtime and current limits | ||
|
|
||
| The gateway links the MXC compute driver. It starts a trusted | ||
| `openshell-supervisor.exe` on the host and an | ||
| `openshell-windows-sandbox.exe` boundary inside each ProcessContainer. The pair | ||
| uses the authenticated Sandbox Protocol for process operations and forwarding. | ||
| The host supervisor applies network policy and endpoint-bound provider credentials | ||
| through an authenticated explicit proxy. Workloads must support that proxy. | ||
|
|
||
| MXC maps filesystem and UI policy to native controls. This implementation is | ||
| under development and is not a production-qualified security boundary: | ||
|
|
||
| - Outer-fence guarantees are temporarily asserted for compatibility testing. | ||
| Exclusive supervisor-mediated egress and live access revocation are unverified. | ||
| - The loopback exception can expose unrelated host-local services to workloads. | ||
| Treat the gateway host as trusted. | ||
| - Foreground main-process attachment and ConPTY resize are unavailable. Create | ||
| command workloads with `--detach`. | ||
| - Gateway restart recovery for live MXC generations is not supported. | ||
|
|
||
| See the Windows branch's [MXC driver documentation](https://github.com/NVIDIA/OpenShell/blob/windows/crates/openshell-driver-mxc/README.md) | ||
| for the current capabilities and enforcement limits, and its | ||
| [boundary library documentation](https://github.com/NVIDIA/OpenShell/blob/windows/crates/openshell-mxc-boundary/README.md) | ||
| for the runtime architecture. Passing build or E2E checks does not establish | ||
| the missing security guarantees. | ||
|
|
||
| ## Get the Windows source | ||
|
|
||
| Use a separate checkout so an existing `main` checkout can remain in place: | ||
|
|
||
| ```powershell | ||
| git clone --branch windows https://github.com/NVIDIA/OpenShell.git OpenShell-windows | ||
| Set-Location OpenShell-windows | ||
| mise trust | ||
| ``` | ||
|
|
||
| Base native Windows implementation changes on `windows` and target that branch | ||
| for review. Documentation-only changes can also merge into `main`, while | ||
| retaining explicit `windows` branch links for Windows code, tasks, and runtime | ||
| instructions. The `main` installer and its dev, prerelease, and stable artifacts | ||
| are not the native Windows distribution path. | ||
|
|
||
| ## Build | ||
|
|
||
| Use Windows with rustup, mise, Visual Studio C++ Build Tools, a Windows SDK, | ||
| and host-compatible LLVM/libclang. Install the MSVC components for each target | ||
| you build, including ARM64 tools and Spectre-mitigated libraries for ARM64. | ||
| The [Windows build skill](https://github.com/NVIDIA/OpenShell/blob/windows/.agents/skills/build-openshell-mxc-windows/SKILL.md) | ||
| lists the full prerequisites and environment overrides. | ||
|
|
||
| Run the build matching your target: | ||
|
|
||
| ```powershell | ||
| # x64 | ||
| mise run --skip-tools windows:build:x64 | ||
|
|
||
| # ARM64 | ||
| mise run --skip-tools windows:build:arm64 | ||
| ``` | ||
|
|
||
| The tasks produce `openshell.exe`, `openshell-gateway.exe`, | ||
| `openshell-supervisor.exe`, and `openshell-windows-sandbox.exe` under | ||
| `target/<target-triple>/release/`. Keep these binaries from the same build | ||
| together with the matching `libz3.dll` staged by the build task. The target | ||
| triples are `x86_64-pc-windows-msvc` and `aarch64-pc-windows-msvc`. | ||
| `CARGO_TARGET_DIR` can override the output root. | ||
|
|
||
| The build uses pinned prebuilt Z3 by default. Compile and test hosts do not | ||
| need a working MXC runtime; running native sandboxes does. These tasks do not | ||
| install an MSI, register a Windows service, or publish a release. | ||
|
|
||
| ## Prepare and run MXC | ||
|
|
||
| Use MXC 1.0.0 and a host that passes the native ProcessContainer capability | ||
| probe. Place `wxc-exec.exe` outside `WindowsApps` or an MSIX package directory | ||
| and configure its absolute path. | ||
|
|
||
| ```powershell | ||
| & "C:\mxc\wxc-exec.exe" --probe | ||
| ``` | ||
|
|
||
| `probes.baseContainerSupportsIngressHostLoopbackAllow` must be `true`. | ||
| A Windows version number alone does not establish runtime compatibility. | ||
| Configure `compute_driver = "mxc"` and use the matching | ||
| [Windows gateway configuration](https://github.com/NVIDIA/OpenShell/blob/windows/docs/how-it-works/gateways/configuration.mdx#configure-mxc) | ||
| and [example gateway TOML](https://github.com/NVIDIA/OpenShell/blob/windows/crates/openshell-driver-mxc/examples/mxc-gateway.toml). | ||
| Command-based sandbox creation requires administrator opt-in with | ||
| `allow_driver_config = true`, a workload command and working directory, and | ||
| `--detach`. Use a sandbox policy to grant the required filesystem and network | ||
| access. | ||
|
|
||
| ## Validate | ||
|
|
||
| Follow [native Windows validation](https://github.com/NVIDIA/OpenShell/blob/windows/TESTING.md#native-windows-validation) | ||
| for native x64 or ARM64 lint, build, unit tests, and real MXC tests. Cross-building | ||
| ARM64 on x64 does not run native ARM64 tests. Real MXC tests and E2E require a | ||
| capable host; record probe-gated skips separately from passes. | ||
|
|
||
| The [Windows CI guidance](https://github.com/NVIDIA/OpenShell/blob/windows/CI.md#windows-validation) | ||
| describes opt-in PR checks and branch builds. A successful compilation or an | ||
| advisory CI run is not a Windows release qualification result. |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.