# Rancher Desktop: Kubernetes and Container Management on Windows, macOS and Linux

> Rancher Desktop is an Electron and TypeScript desktop application that runs a Kubernetes cluster and container tooling locally. Here is how it installs, how it works, and where it stops being the right tool.

**rancher-sandbox/rancher-desktop** — Container Management and Kubernetes on the Desktop

- Repository: https://github.com/rancher-sandbox/rancher-desktop
- Website: https://rancherdesktop.io
- Stars: 7,366 · Forks: 384
- Language: TypeScript
- License: Apache-2.0
- Published: 2026-09-22 · Updated: 2026-09-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/rancher-sandbox-rancher-desktop

## The problem Rancher Desktop solves for developers on three operating systems

Running Kubernetes locally has traditionally meant choosing between a hosted cluster that costs money and adds latency, or a hand-built virtual machine with a container runtime, a kubelet, and a networking layer wired together by hand. Rancher Desktop packages that stack into a single desktop application. The repository description is explicit: container management and Kubernetes on the desktop, on Windows, macOS and Linux.

The audience is developers who need a cluster that behaves like the one their workloads run on, and who want it to start and stop with the rest of their desktop session. It is not a production runtime. Nothing in the repository positions it that way. The README points users to rancherdesktop.io for product information and docs.rancherdesktop.io for user documentation, which is a signal about where the intended boundary sits: this repository is the development home, and the product documentation lives elsewhere.

One detail in the README matters for anyone evaluating the source tree. The project bundles "a variety of other technologies in order to provide one cohesive application," and it includes a command line tool, rdctl, written in Go. So the deliverable is not just an Electron shell. It is an Electron shell plus a Go control CLI plus whatever container and Kubernetes components the release bundles.

## What is inside the repository: Electron, TypeScript, Go and a yarn-driven build

The architecture visible from the repository layout is layered. At the top sits an Electron application, mainly TypeScript, with background.ts at the root and application code under src/. The build, packaging, signing and installer generation are all scripted: package.json exposes build, package, sign and wix scripts, each delegating to a TypeScript file under scripts/ through scripts/ts-wrapper.js. There is a separate pkg/ directory, which is where Go code lives, alongside a go.work file at the root and a .golangci.yaml for Go linting.

That split explains the tooling. Linting runs in three passes: lint:typescript:nofix, lint:go:nofix and lint:spelling. Unit tests are similarly partitioned, with separate targets for jest, typecheck, the nerdctl stub, the WSL helper, rdctl, the guest agent and an i18n report. End-to-end tests live under e2e/, and BATS tests under bats/. If you are evaluating whether to contribute, the shape of the test matrix tells you more than the README prose does: the project tests a Windows-side helper, a guest agent, and a Go CLI independently, which implies the application coordinates a host process and a VM-side process rather than running everything in one address space.

The package.json also pins the toolchain. Node is required at ^22.14.0, the package manager is yarn@4.18.0, and the project is type: module. Those constraints are enforced, not advisory.

## Installing Rancher Desktop versus building it from source

These are two different tasks and the README only covers one of them. The README opens by stating that it "pertains to the development of Rancher Desktop" and directs users to rancherdesktop.io and docs.rancherdesktop.io. So if you want to install the application, the repository does not give you an installer path; the product site does. There is no download command in this README, and inventing one would be wrong.

What the README does give is the source build. On macOS the documented sequence starts with nvm, then Node 22, then yarn, then Go via Homebrew. The README states that the project is currently built with Node 22 and gives the install command as nvm install 22.14. After installing yarn globally, dependencies come from a bare yarn invocation.

```bash
nvm install 22.14
npm install --global yarn
brew install go
yarn
```

On Apple Silicon there is an extra step. The README warns that you must set the M1 environment variable before installing dependencies and running any npm scripts, and it notes that if you previously installed dependencies for the wrong architecture you should clean cached assets with git clean -fdx before rerunning yarn.

```bash
export M1=1
yarn
```

On Windows the README offers two routes: a development VM, or a manual setup using WSL, Scoop, Visual Studio with the Desktop development with C++ workload, and the Windows SDK. The automated route runs a PowerShell setup script from the repository. After either route, the README says you can clone the repository and run yarn. It also insists on disabling CRLF translation, because the Go lint tests fail mysteriously when line endings are wrong.

```bash
git config --global --replace-all core.autocrlf false
git config --global --replace-all core.eol lf
```

Windows also requires msbuild_path and msvs_version to be set, either through npm config set or by editing the npm config directly. The README is specific that the values must not be quoted, because some processors treat the quotes as part of the path.

## rdctl and the Go side of the application

The README describes rdctl as a command line tool written in Go, included in the bundled technologies. It has its own unit test target in package.json, which means it is treated as a first-class component rather than a helper script. That matters because a desktop GUI is awkward to drive from automation, and a CLI gives scripts and CI jobs a way to talk to the same underlying machinery.

The README does not enumerate rdctl subcommands, so any claim about specific verbs or flags would be guesswork. What can be said from the repository is structural: Go code lives under pkg/, the workspace is defined by go.work, Go linting is configured through .golangci.yaml, and the lint:go scripts accept a --fix flag. If you plan to extend rdctl, that is the surface you will be working in, and the lint target will enforce style before your change reaches review.

The same caution applies to the container runtime. The README does not name which container engine a given release ships or how it is selected. Anyone who needs that answer should read docs.rancherdesktop.io rather than infer it from the source tree.

## Where Rancher Desktop is the wrong tool

Three cases stand out.

First, production. Nothing in the repository suggests Rancher Desktop is intended to run workloads that matter. It is a desktop application with a GUI, a bundled runtime and a VM layer. Treating it as a cluster for shared services would be a category error, and the project does not invite it.

Second, single-container workflows. If all you do is build one image and run it, the Kubernetes control plane is overhead you pay for on every start. The application exists to bundle both, so if you only need the container half you are carrying the rest.

Third, environments where you cannot install a VM-based runtime or cannot run the required toolchain. The Windows build path documented in the README demands WSL, Visual Studio with the C++ workload, the Windows SDK, Scoop, Go, mingw, nvm and Python. That is a long list, and it is the price of building from source. Users installing the packaged application face a shorter path, but the README does not document it.

There is also a documentation boundary worth naming plainly. The README is a contributor document. It explains how to set up a development machine and run yarn scripts. It does not document upgrade paths, rollback, or how a version change affects an existing local cluster. Those are real operational questions and the README is silent on them.

## Rancher Desktop compared with Docker Desktop and Podman Desktop

The comparison people actually search for is Rancher Desktop versus Docker Desktop, and the second is Rancher Desktop versus Podman Desktop. The difference in approach is worth stating precisely.

Docker Desktop is a commercial product built around Docker's own tooling and licensing model. Rancher Desktop is an Apache-2.0 open source project, published by SUSE under the rancher-sandbox organisation, with its licence declared both in package.json and in the LICENSE file at the repository root. If your constraint is licence terms rather than features, that distinction is the first thing to check, and it is the one the repository can actually answer.

Podman Desktop is a desktop GUI for Podman. Rancher Desktop bundles Kubernetes as a first-class part of the application rather than treating the container engine as the whole product. That is the architectural bet: Kubernetes on the desktop, with container management alongside it, rather than a container engine with a Kubernetes option bolted on.

What this repository cannot tell you is which runtime each tool uses under the hood, how their resource consumption compares, or how their networking differs. Those claims are not in the repository, and repeating them from memory would be dishonest. The honest comparison available here is about licensing, project structure and stated scope, not performance.

## Maintenance, licensing and what a version bump costs you

The repository is not archived, and the last push was on 2026-09-21. Releases are frequent: v1.24.0 shipped on 2026-07-29, v1.23.1 on 2026-06-29, and v1.23.0 on 2026-06-25. That cadence is a fact about the project, not a promise about your upgrade experience.

On the upgrade question, the README is silent. It documents building and testing the source, and it exposes build, package and sign scripts, but it does not describe what happens to a running local cluster when you move between minor versions, whether images and volumes survive, or how to roll back. Anyone planning to standardise a team on Rancher Desktop should treat that as an open question to resolve against docs.rancherdesktop.io before rollout, not after.

The licence is Apache-2.0, declared in package.json and present as LICENSE at the root. Apache-2.0 is a permissive licence with an explicit patent grant and a requirement to preserve notices. It does not, on its own, tell you anything about the licences of the third-party components the application bundles, and the README does not enumerate them. If your organisation has a policy about bundled runtimes, that is a question for your legal team, not something this article can settle.

Contributing has a real cost too. The test command chains linting, unit tests across six targets, and extra tests. A change that touches the Go side and the TypeScript side will run both lint passes, and the line-ending configuration must be right or lint:go fails in a way the README itself describes as mysterious.

## Conclusion

Adopt Rancher Desktop if you want a local Kubernetes cluster and container runtime on Windows, macOS or Linux without configuring a VM by hand, and you are comfortable with an Apache-2.0 application whose install path is documented at rancherdesktop.io rather than in the repository README. Do not adopt it if you need a supported commercial product with an SLA, or if you only ever run single containers and would rather not carry a Kubernetes control plane on your laptop. Before committing, verify three things: that your platform is covered by the current release, that the container engine you need is selectable in the version you install, and that the Apache-2.0 licence terms match how your organisation distributes internal tooling. The README in this repository is written for people building Rancher Desktop from source, not for people installing it, so read docs.rancherdesktop.io before you file an issue about installation.

## FAQ

### What does Rancher Desktop do?

It brings Kubernetes and container management to the desktop, running on Windows, macOS and Linux. The repository describes it as an Electron application written mainly in TypeScript that bundles other technologies, including a Go command line tool called rdctl.

### Is Rancher Desktop the same as Docker?

No. Rancher Desktop is an open source project published under the rancher-sandbox organisation and licensed Apache-2.0, with its own Electron application and the rdctl CLI. Docker Desktop is a separate commercial product, and the repository does not describe Rancher Desktop as a Docker distribution.

### Is Rancher Desktop free for commercial use?

The repository declares the Apache-2.0 licence in package.json and ships a LICENSE file at the root. Apache-2.0 is a permissive licence, but the README does not discuss commercial use terms, so confirm the details with your own legal review.

### How do I install Rancher Desktop?

The repository README is written for development of Rancher Desktop and points users to rancherdesktop.io for product information and docs.rancherdesktop.io for user documentation. It does not contain an end-user installation procedure, so that is where to look.

### How do I use Rancher Desktop on Windows?

The README documents two Windows development routes: a development VM with an automated PowerShell setup script, or a manual setup requiring WSL, Scoop packages including go and mingw, Visual Studio with the Desktop development with C++ workload, and the Windows SDK. It also requires msbuild_path and msvs_version to be set, and CRLF handling disabled in git.

### How do I use Rancher Desktop on macOS?

The README documents installing nvm, then Node 22 with nvm install 22.14, then yarn globally, then Go via brew install go, and finally running yarn to install dependencies. On Apple Silicon it also requires exporting M1=1 before installing dependencies and running npm scripts.

## Sources

- [License: Apache-2.0](https://github.com/rancher-sandbox/rancher-desktop/blob/main/LICENSE)
- [Project website](https://rancherdesktop.io)
- [rancher-sandbox/rancher-desktop on GitHub](https://github.com/rancher-sandbox/rancher-desktop)
- [README](https://github.com/rancher-sandbox/rancher-desktop/blob/main/README.md)
- [Releases](https://github.com/rancher-sandbox/rancher-desktop/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/rancher-sandbox-rancher-desktop
