# What Are the Dependencies of openclaw-windows-node? Complete Breakdown

> Explore the complete dependencies of openclaw-windows-node. Understand its .NET NuGet packages for crypto and AI, Node.js build tools, and internal shared libraries.

- Repository: [openclaw/openclaw-windows-node](https://github.com/openclaw/openclaw-windows-node)
- Tags: api-reference
- Published: 2026-06-06

---

**The openclaw-windows-node repository relies on a combination of .NET NuGet packages for cryptography, AI speech processing, and Windows UI development, a single Node.js dependency (@microsoft/mxc-sdk) for build tooling, and several internal shared library projects.**

The openclaw-windows-node project is a sophisticated Windows application that blends .NET technologies with minimal Node.js tooling. Whether you are building from source, auditing for security, or planning contributions, understanding the complete dependency tree—including specific versions and declaration locations—is critical for successful development.

## Core .NET NuGet Dependencies

The bulk of external functionality comes from NuGet packages declared across multiple `.csproj` files. These range from cryptographic primitives to on-device machine learning inference.

### Cryptography and Security

Security-sensitive operations depend on **NSec.Cryptography** version 25.4.0 for modern cryptographic primitives like Ed25519 signatures, declared in `src/OpenClaw.Shared/OpenClaw.Shared.csproj`. The same file also references **System.Security.Cryptography.ProtectedData** 10.0.0 for secure local secret storage on Windows.

### Speech Processing and AI Inference

The project integrates local speech-to-text capabilities through several ONNX-based packages, all declared in `OpenClaw.Shared.csproj`:

- **Whisper.net** (1.9.0) and **Whisper.net.Runtime** (1.9.1) for OpenAI Whisper model integration
- **Microsoft.ML.OnnxRuntime** (1.26.0) for general ONNX model execution
- **org.k2fsa.sherpa.onnx** (1.13.0) for additional speech recognition engines

### Windows App SDK and UI Components

The primary user interface and auxiliary tools share the same Windows App SDK foundation. In `src/OpenClaw.Tray.WinUI/OpenClaw.Tray.WinUI.csproj`, the following packages enable the WinUI 3 interface:

- **Microsoft.WindowsAppSDK** (2.1.3) for the WinUI 3 application framework
- **Microsoft.Windows.SDK.BuildTools** (10.0.28000.1839) for compilation support
- **WinUIEx** (2.9.0) for extended windowing capabilities
- **Microsoft.Toolkit.Uwp.Notifications** (7.1.3) for native toast notifications
- **CommunityToolkit.WinUI.Controls.SettingsControls** and **CommunityToolkit.WinUI.Controls.Sizers** (8.3.260402-preview2) for settings UI patterns

These same packages are also utilized by **OpenClawTray.FunctionalUI**, **OpenClaw.SetupEngine.UI**, and **OpenClaw.SetupPreview** within the solution.

### Audio, Graphics, and System Utilities

Additional capabilities include:

- **NAudio.Wasapi** (2.3.0) for low-level audio playback via WASAPI
- **System.Drawing.Common** (10.0.7) for icon and asset manipulation
- **System.Drawing.Common** (10.0.2) used exclusively by the helper tool in `tools/icongen/icongen.csproj`
- **System.Diagnostics.PerformanceCounter** (10.0.0) for system metrics monitoring
- **Updatum** (1.3.4) for application self-update functionality
- **Zeroconf** (3.6.11) for automatic network service discovery
- **ZXing.Net** (0.16.10) for barcode and QR code scanning

## Node.js and npm Dependencies

While primarily a .NET codebase, the build pipeline requires a single Node.js package. The [`package.json`](https://github.com/openclaw/openclaw-windows-node/blob/main/package.json) at the repository root declares **@microsoft/mxc-sdk** version ^0.1.8 (pinned to 0.1.8 in [`package-lock.json`](https://github.com/openclaw/openclaw-windows-node/blob/main/package-lock.json)), which provides the `wxc-exec.exe` sandbox binary used during MSIX packaging. This package itself depends on `node-pty` and `semver`.

An MSBuild target in the WinUI project copies this binary to the output directory during compilation:

```xml
<Target Name="CopyWxcExecToOutput" AfterTargets="Build">
  <ItemGroup>
    <_WxcExecFiles Include="$(MxcSdkBinDir)wxc-exec.exe" />
  </ItemGroup>
  <Copy SourceFiles="@(_WxcExecFiles)" DestinationFiles="@(_WxcExecFiles->'$(TargetDir)tools\mxc\$(MxcArch)\%(Filename)%(Extension)')" />
</Target>

```

## Internal Project References

Beyond external packages, the solution relies on a modular architecture of internal project references. These do not appear as NuGet dependencies but are essential compilation units:

- **OpenClaw.Shared**: Core library containing cryptographic utilities, AI bindings, and shared data models. Referenced by `OpenClaw.WinNode.Cli` and `OpenClaw.Tray.WinUI`.
- **OpenClaw.Connection**: Gateway and connection management logic, referenced by the Tray UI.
- **OpenClaw.Chat**: Chat and canvas integration modules, referenced by the Tray UI.

## Dependency Implementation Examples

The following snippets illustrate how these dependencies are utilized in the source code.

Cryptographic device key generation using NSec:

```csharp
// From src/OpenClaw.Shared/OpenClaw.Shared.csproj
using NSec.Cryptography;

public class DeviceKey
{
    private readonly Key _key = Key.Create(SignatureAlgorithm.Ed25519);
}

```

Windows App SDK initialization in the tray application:

```csharp
// From src/OpenClaw.Tray.WinUI/OpenClaw.Tray.WinUI.csproj
using Microsoft.WindowsAppSDK;
using Microsoft.UI.Xaml;

public sealed partial class App : Application
{
    public App()
    {
        this.InitializeComponent();
        this.Suspending += OnSuspending;
    }
}

```

## Key Configuration Files

Understanding where each dependency is declared helps when updating versions or troubleshooting build issues:

- `src/OpenClaw.Shared/OpenClaw.Shared.csproj`: Contains crypto, AI, and speech-to-text NuGet references.
- `src/OpenClaw.Tray.WinUI/OpenClaw.Tray.WinUI.csproj`: Declares Windows App SDK, WinUI, and audio package dependencies.
- `src/OpenClaw.WinNode.Cli/OpenClaw.WinNode.Cli.csproj`: Command-line host referencing OpenClaw.Shared.
- [`package.json`](https://github.com/openclaw/openclaw-windows-node/blob/main/package.json): Root-level Node.js dependency for the MXC SDK.
- `tools/icongen/icongen.csproj`: Isolated System.Drawing.Common reference for the icon generation utility.

## Summary

- **The openclaw-windows-node** repository combines .NET NuGet packages, a single Node.js dependency, and internal shared libraries to create a Windows-based AI-enabled application.
- **Core functionality** depends on NSec.Cryptography for security, Whisper.net and ONNX Runtime for local AI inference, and the Windows App SDK for the modern WinUI 3 interface.
- **System integration** leverages NAudio.Wasapi for audio, Zeroconf for networking, and ZXing.Net for barcode processing.
- **Build tooling** requires @microsoft/mxc-sdk from npm to provide the sandbox executable used during packaging.
- **Internal architecture** uses project references to OpenClaw.Shared, OpenClaw.Connection, and OpenClaw.Chat to maintain clean separation of concerns.

## Frequently Asked Questions

### What is the primary purpose of the Whisper.net dependency in openclaw-windows-node?

**Whisper.net** (version 1.9.0) provides .NET bindings for OpenAI's Whisper model, enabling on-device speech-to-text conversion without external API calls. It works alongside **Microsoft.ML.OnnxRuntime** (1.26.0) and **org.k2fsa.sherpa.onnx** (1.13.0) to process audio locally, as declared in `src/OpenClaw.Shared/OpenClaw.Shared.csproj`.

### Why does the project use both System.Drawing.Common versions 10.0.7 and 10.0.2?

The main application uses **System.Drawing.Common** 10.0.7 for general graphics operations in `OpenClaw.Tray.WinUI.csproj`. However, the isolated `icongen` helper tool in `tools/icongen/icongen.csproj` specifically references version 10.0.2, maintaining compatibility with the legacy icon generation workflow without affecting the main application's dependency graph.

### Is openclaw-windows-node primarily a .NET or Node.js application?

**Openclaw-windows-node** is primarily a **.NET application** written in C#. The Node.js dependency (@microsoft/mxc-sdk) is strictly a build-time requirement that provides the `wxc-exec.exe` sandbox binary for MSIX packaging. All runtime logic executes within the .NET CLR, hosted by either the WinUI 3 tray application or the command-line interface.

### How are internal project references structured in the solution?

The solution follows a layered architecture where **OpenClaw.Shared** serves as the foundational library containing cryptography and AI code. **OpenClaw.WinNode.Cli** references this shared library for command-line operations, while **OpenClaw.Tray.WinUI** references both OpenClaw.Shared and additional modules like OpenClaw.Connection and OpenClaw.Chat for gateway management and chat functionality.