Skip to content

NucleusFramework/Nucleus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,884 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nucleus

Gradle Plugin Portal Maven Central Pre Merge Checks License: MIT Kotlin Platform

The Nucleus framework lets you write cross-platform desktop applications using Kotlin. It is based on Compose Multiplatform and adds native window decorations, deep operating-system integration, code signing, and native installers — all configured through a single Gradle DSL. Your app runs either as a GraalVM Native Image or on the JVM.

Java evolved into Kotlin. JavaScript evolved into TypeScript. Desktop development is going through the same shift: Electron was the pioneer — Kotlin + Compose + Nucleus is what comes next.

Read Why Nucleus for how it compares to Electron and Tauri.

Installation

Nucleus ships as a Gradle plugin. Apply it alongside the Kotlin and Compose plugins in your module's build.gradle.kts:

plugins {
    kotlin("jvm") version "2.4.0"
    id("org.jetbrains.compose") version "1.11.1"
    id("dev.nucleusframework") version "2.0.0"
}

repositories {
    mavenCentral()
    google()
}

dependencies {
    implementation(compose.desktop.currentOs)
    // Entry point — provides nucleusApplication and DecoratedWindow
    implementation("dev.nucleusframework:nucleus.nucleus-application:2.0.0")
    // Tao backend — Rust-native windowing
    implementation("dev.nucleusframework:nucleus.decorated-window-tao:2.0.0")
}

For more installation options, see the install guide and project setup.

Requirements

Nucleus builds on Compose Multiplatform and requires:

Requirement Version Note
JDK 17+ (25+ for AOT cache) JBR 25 recommended
Kotlin 2.0+ Compose Multiplatform requires Kotlin 2.x
Gradle 8.0+ Bundled wrapper is sufficient

Platform support

Each build can compile, run, and package for macOS, Windows, and Linux from a single codebase.

  • macOS — Intel (x64) and Apple Silicon (arm64), shipped as a universal binary. Liquid Glass on macOS 26.
  • Windowsx64 and arm64.
  • Linuxx64 and arm64, with Wayland and X11 support.

Getting started

Create src/main/kotlin/com/example/Main.kt:

package com.example

import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material.Text
import androidx.compose.ui.Modifier
import dev.nucleusframework.application.DecoratedWindow
import dev.nucleusframework.application.NucleusBackend
import dev.nucleusframework.application.nucleusApplication

fun main() = nucleusApplication(backend = NucleusBackend.Tao) {
    DecoratedWindow(
        onCloseRequest = ::exitApplication,
        title = "MyApp",
    ) {
        Box(Modifier.fillMaxSize()) {
            Text("Hello from Nucleus")
        }
    }
}

Then configure packaging in build.gradle.kts:

nucleus.application {
    mainClass = "com.example.MainKt"

    nativeDistributions {
        packageName = "MyApp"
        packageVersion = "1.0.0"
        targetFormats(TargetFormat.Dmg, TargetFormat.Msi, TargetFormat.Deb)
    }
}
./gradlew run                              # Run locally in a native Tao window
./gradlew packageDistributionForCurrentOS  # Build an installer for your OS

The full quickstart walks through each step.

Resources for learning Nucleus

What Nucleus provides

Ship everywhere — 18 packaging formats (DMG, PKG, NSIS, MSI, AppX/MSIX, Portable, DEB, RPM, AppImage, Snap, Flatpak, ZIP, TAR, 7Z), store publishing (Mac App Store, Microsoft Store, Snapcraft, Flathub), code signing and notarization, built-in auto-update, deep links, and file associations.

Feel native — Decorated windows with native controls, notifications, taskbar/dock badges and menus, media controls (MPRIS, Now Playing, SMTC), dark mode, accent colors, global hotkeys, and system tray — all behind clean Kotlin APIs.

Perform — GraalVM Native Image compiles your app to a standalone binary (~0.5s cold start, 100–150 MB RAM) with automatic reachability metadata; or run on the JVM with an AOT cache (JDK 25+) and ProGuard-optimized release builds.

Runtime modules

Each module is published independently to Maven Central — use them together or standalone.

Module Description
nucleus.core-runtime Platform detection, single instance, deep links, executable type
nucleus.aot-runtime AOT cache mode detection
nucleus.updater-runtime Auto-update engine with GitHub/S3, progress tracking, SHA-512
nucleus.darkmode-detector Reactive OS dark mode detection
nucleus.system-color Reactive accent color & high contrast detection
nucleus.system-info CPU, memory, GPU (NVIDIA/AMD/Intel), temperature, network, processes
nucleus.decorated-window-tao Rust-native windowing backend (Tao)
nucleus.decorated-window-jewel Jewel (IntelliJ theme) integration
nucleus.decorated-window-material2 Material 2 integration
nucleus.decorated-window-material3 Material 3 integration
nucleus.notification-macos macOS User Notifications
nucleus.notification-windows Windows Toast Notifications
nucleus.notification-linux Freedesktop Desktop Notifications
nucleus.launcher-macos macOS Dock API — badge, menus
nucleus.launcher-windows Windows taskbar — badges, jump lists, overlay icons, thumbnail toolbar
nucleus.launcher-linux Unity Launcher — badge, progress, urgency, quicklist
nucleus.media-control OS media controls — MPRIS (Linux), Now Playing (macOS), SMTC (Windows)
nucleus.menu-macos Native macOS menu bar
nucleus.freedesktop-icons Type-safe freedesktop icon naming constants
nucleus.taskbar-progress Cross-platform taskbar progress bar & attention requests
nucleus.global-hotkey System-wide keyboard shortcuts
nucleus.energy-manager Energy efficiency & screen-awake APIs
nucleus.autolaunch Start the app at user login across all platforms
nucleus.native-ssl OS trust store integration
nucleus.native-http HTTP client with native SSL
nucleus.linux-hidpi Native HiDPI scale detection on Linux
nucleus.graalvm-runtime Native-image bootstrap, font fixes, automatic resource inclusion

Documentation

Full documentation is available at nucleusframework.dev (English and French).

Community

Ask questions, report bugs, and share what you're building on GitHub Discussions and the issue tracker.

License

MIT

About

Nucleus is the native desktop platform for the JVM. Combined with Compose Multiplatform, it forms the most complete, most performant, and most deeply integrated desktop application stack ever built — on any language, any runtime, any platform.

Topics

Resources

License

Stars

272 stars

Watchers

0 watching

Forks

Sponsor this project

  •  

Contributors