Thank you for considering contributing to OpenClaw Desktop. This repository is a community-maintained Windows desktop distribution for OpenClaw.
- Node.js >= 22.16.0 (matches
package.jsonengines) - pnpm (latest)
- Windows 10/11 (for testing)
git clone https://github.com/agentkernel/openclaw-desktop.git
cd openclaw-desktop
pnpm install
pnpm devsrc/
├── main/ # Electron main process (Gateway, IPC, Config, Update)
├── renderer/ # React UI (Wizard, Shell views, i18n)
├── preload/ # Context bridge (IPC)
└── shared/ # Types, constants, IPC channels
- TypeScript — strict mode, no
anywhere avoidable - React — functional components, hooks
- Tailwind CSS — utility-first styling
- No unnecessary comments — code should be self-explanatory
pnpm lint # ESLint
pnpm type-check # TypeScript strict check
pnpm build # Production build
pnpm run package:win # Windows installerpackage:win assumes build/node/ and build/openclaw/ already exist. Run these before the one-liner (or use the shortcut):
pnpm run package:prepare-deps # download-node + download-openclaw (npm openclaw@latest)
pnpm lint && pnpm type-check
pnpm run package:winControl UI (dist/control-ui/): On some Windows machines the upstream Vite/Rolldown UI build fails. Options:
- Let
download-openclawbuild it (default), or - Build on Linux / WSL and copy:
build/openclaw/dist/control-ui/from artifact orpnpm exec tsx scripts/ci-build-openclaw-control-ui.ts, then runpnpm run download-openclawwithOPENCLAW_SKIP_CONTROL_UI_BUILD=1if you already populated that folder.
After packaging: prepare-bundle (inside package:win) refreshes resources/bundle-manifest.json with the resolved OpenClaw version.
- Fork and create a feature branch
- Ensure
pnpm lintandpnpm type-checkpass - Write a clear PR description
- Reference any related issues
- Release assets are published through GitHub Actions.
- The primary downloadable asset is
OpenClaw-Setup-<version>.exe. - For the first public versions, unsigned Windows builds may trigger SmartScreen warnings.
- Bundled OpenClaw version is stored in
resources/bundle-manifest.jsonasbundledOpenClawVersion(updated bypnpm run prepare-bundlefrombuild/openclaw). The pin lives in rootpackage.jsonasopenclawBundleVersion. Desktop v0.7.0 ships OpenClaw 2026.4.2 alongside shell semver0.7.0+openclaw.2026.4.2. Release Git tags usev+ that semver, e.g.v0.7.0+openclaw.2026.4.2(bundled OpenClaw version is visible in the tag).
By contributing, you agree that your contributions will be licensed under the GPL-3.0 License.