Welcome to Nucleus 2.4
Nucleus is the production desktop layer for Compose Multiplatform — native OS integration and packaging for Kotlin teams.
Nucleus is the production desktop layer for Compose Multiplatform apps written in Kotlin. Compose draws the UI; Nucleus adds native window decorations, operating-system integration, code signing, installers, and store pipelines. You configure the whole build through a single Gradle DSL, and the runtime runs either as a GraalVM native image or on the JVM.
If you already ship Android or KMP, Nucleus is how the same team ships desktop — without a second stack.
Migrating an existing app? Let an AI agent do it
Paste one prompt into your coding agent (Claude Code, Cursor, Codex, …) — it scans your app, asks the right questions, and migrates it to Nucleus phase by phase with verification checkpoints. Zero install: the whole playbook lives at one URL. See Migrate with an AI agent.
Features
- One language across platforms. Share Kotlin code with your Android, iOS, and web apps, with Compose UI on top.
- Native windowing (Tao). Wayland support, multi-touch, pen input, window scaffold, TextureView for external GPU frames, and GPU render context for in-process renderers.
- Two runtimes, one DSL. Run as a GraalVM Native Image, or on the JVM with an AOT cache (JDK 25+).
- Over 40 OS integration modules. Notifications, system tray, dock menus, dark mode, global hotkeys, and taskbar integration, each added as an opt-in dependency.
- 18 packaging formats. DMG, PKG, MSI, AppX, DEB, RPM, AppImage, Snap, and Flatpak among them, with code signing, notarization, and differential auto-update.
- Native design systems. macOS 26, Fluent, and Yaru on Maven Central, plus Jewel and Material adapters in this repo. See toolkits.
To build your first app, follow the quickstart.
What's new in 2.4
TaoGpuRenderContext. In-process GPU renderers allocate on the scene's own Skia device — no second GPU, no per-frame copy. See GPU render context.AwakeMode. Keep the system awake for long jobs without forcing the screen on. See Energy manager.- Aligned MSI install scope with
windows.msi { perMachine }. See Windows packaging. - Public ABI freeze on published runtime modules (
explicitApi+ binary-compatibility-validator). - Resize and frame-pacing fixes across macOS, Windows, and Linux Tao.
Full list: Changelog.
Talk with us
The Nucleus channel is #nucleus on the official Kotlin Slack. Use it for questions, design
discussion, and bug reports.
If you are not on the Kotlin Slack yet, request an invite, then open #nucleus.
What's next
- Why Nucleus — what vanilla Compose Desktop leaves open, and what Nucleus fills.
- Nucleus vs vanilla CMP — the decision table for Kotlin teams.
- Migrate with an AI agent — one prompt, zero install.
- Migrate from JetBrains Compose Desktop — drop-in migration.
- Quickstart — build and run your first Nucleus desktop app.
- Architecture — the layered model behind the framework.