Roadmap
What shipped in Nucleus 2.0 and 2.1, the modules planned for 2.2 and 2.3, and features under consideration.
Nucleus 2.0 provides the runtime and packaging foundation. Later releases add OS-integration modules for capabilities that JVM desktop apps otherwise reach through JavaScript or hand-written native code. This page lists what has shipped, what is planned, and what is still speculative.
Shipped in 2.0
nucleusApplication { }unified entry point — single-instance, deep links, AOT, GraalVM init, AutoLaunch priming, Windows AUMID — all automatic.- Tao backend — Wayland-native, multi-touch, pen pressure + tilt, native popups, embedded
NativeView, drag-and-drop with diagnostics. - 18 packaging formats from one Gradle DSL.
updater-runtime— electron-builder-compatible auto-update, channels, post-update detection.- GraalVM Native Image — end-to-end packaging pipeline (DMG, NSIS, DEB), static bytecode reflection analyzer, per-library reachability metadata.
- macOS Liquid Glass on SDK 26 —
vtoolpatching means any JDK works. - 40+ runtime modules: notifications, system tray, global hotkeys, media controls, taskbar progress, energy manager, system info, scheduler, autolaunch, dark mode, system color, native SSL, native HTTP, filesystem watcher, decorated windows with four toolkits.
Shipped in 2.1
Tooling and native-image work, no new runtime modules:
- Oracle GraalVM is now the recommended and default toolchain. Nucleus downloads and caches it automatically, and the default Tao backend builds native images on it — unlocking the advanced native-image features Nucleus relies on: Profile-Guided Optimization,
-O3, and ML-inferred profiles that the Community editions do not offer. Oracle GraalVM is the edition formerly called Enterprise. Only the deprecated AWT backend still needs a local BellSoft Liberica NIK install, for its AWT/Swing native-image support. - Compose Hot Reload — works out of the box. Apply the
org.jetbrains.compose.hot-reloadplugin and runhotRun; Nucleus resolves the entry point fromnucleus.application.mainClass. Supported on the AWT and Tao backends. - GraalVM toolchain auto-download — Oracle GraalVM on first build (Innovation by default,
channel = GraalvmChannel.LTSfor LTS).GRAALVM_HOMEstill takes precedence. - Profile-Guided Optimization — record a profile with
runWithPgoInstrument, commit it, and later native builds apply it automatically. Oracle GraalVM only. - Smaller native images —
optimization = NativeImageOptimization.SIZE(-Os), type-safemarch, and automatic executable stripping on Linux and macOS. CompressionLevel.Ultra— extra post-processing recompression (LZMA DMG,xz -9eDEB) for smaller installers.--enable-native-access=ALL-UNNAMEDin default JVM args for JDK 24+ (JEP 472).
Coming in 2.2
The first module group covers security and identity:
| Module | Description | macOS | Windows | Linux |
|---|---|---|---|---|
secure-storage | Hardware-backed secret storage for tokens, passwords, keys | Keychain | Credential Manager / DPAPI | Secret Service (libsecret) |
biometric-auth | Prompt for fingerprint / face authentication | LocalAuthentication (Touch ID / Face ID) | Windows Hello | fprintd via D-Bus / polkit |
Coming in 2.3
OS-level events and IO:
| Module | Description | macOS | Windows | Linux |
|---|---|---|---|---|
share-sheet | OS share sheet (URL, file, text) | NSSharingService | Windows DataTransferManager | xdg-desktop-portal Share |
power-events | Sleep / wake / lock / unlock / screen-off / battery state | NSWorkspace notifications | WM_POWERBROADCAST / WTSRegisterSessionNotification | org.freedesktop.login1 D-Bus signals |
Under consideration
Speculative — no commitment, no ETA. Open an issue if you want one of these earlier:
| Module | Description | macOS | Windows | Linux |
|---|---|---|---|---|
clipboard | Rich clipboard — image, files, HTML, RTF — plus change watcher | NSPasteboard | OleGetClipboard / Clipboard History API | wl-clipboard / X11 selections |
screen-capture | Native screenshot / screen recording | CGDisplayCreateImage / ScreenCaptureKit | Windows Graphics Capture / DXGI | xdg-desktop-portal Screenshot |
Influence the order
Open an issue describing your use case, link a sample app that needs the module, or sponsor a specific platform's implementation. Native modules are bounded mostly by JNI bridge complexity per OS — the more people that need one, the sooner it ships.