Nuts
The package manager Java never had.
Install, manage and run any Maven-published Java app —
JDK provisioned automatically, no fat jars, no setup scripts.
# install NetBeans IDE — JDK provisioned automatically
nuts install org.apache.netbeans:netbeans
# run it
nuts netbeans
# install NetBeans IDE — JDK provisioned automatically
nuts install org.apache.netbeans:netbeans
# run it
nuts netbeans
If it builds with Maven, it runs with Nuts
Any Maven-published application is instantly installable. No repackaging, no formula to write, no submission process. If the developer already uses Maven — and most Java developers do — their app is nuts-compatible out of the box.
Platform-native, no fat jar
Publish one thin artifact. Nuts resolves OS-specific dependencies, native libs, AI/FFM binaries, and the right JDK at install time — only what the user's platform actually needs. No bundling, no bloat.
A proper lifecycle, not just a runner
Install, update, uninstall. Run multiple versions of the same app side by side. Works offline after first install. Hermetic bundles for air-gapped environments. Nuts stays involved after install — not just a launcher.
Install Nuts
Bootstrap once, then nuts install <app> for anything.
curl -sL https://thevpc.net/nuts/install-latest.sh | bash
powershell -c "iwr https://thevpc.net/nuts/install-latest.ps1 | iex"
LTS Stable on Maven Central · Latest Preview on maven.thevpc.net
Three commands. That's it.
Bootstrap
curl ... | bashInstall Nuts itself. One time, any platform.
Install
nuts install <app>Dependencies, native libs and JDK resolved automatically.
Run
nuts <app>Instant. Offline. Any version, side by side.
Everything a runtime package manager should be
Offline after first install
Dependencies cached locally, shared across all apps in the workspace. No network needed to run.
Multiple versions, side by side
Install and run myapp#1.2.1 and myapp#1.2.2 simultaneously in the same workspace.
Hermetic bundles
nuts bundle myapp1 myapp2 packages everything for fully offline, air-gapped deployment.
Trusted repositories
Restrict downloads to approved sources. Built-in SHA verification and automatic retries.
Remote execution
Run any app on a remote machine with nuts --at=ssh://user@host myapp.
Aliases & settings
Define command aliases, manage repositories, resolve which binary a command maps to.
Built-in help anywhere
nuts help <app> or nuts <app> --help — works for any installed application.
Scheduling
Run apps on a cron schedule with nuts --exec --cron "* * * * *" myapp.
More than a package manager
NAF — Nuts Application Framework
Build nuts-aware Java apps. Zero-dependency lifecycle integration (--nuts-exec-mode=install), or pick from a coherent à-la-carte toolkit: NPath, NMsg, NLog, NOptional, NExpr and more. Integrates cleanly with Spring, SLF4J and whatever you already use.
Companion applications
A growing catalog of ready-to-install apps: nsh (portable shell), nsite (static site generator), njob, ntomcat, noapi, ntexup and many third-party tools from Maven Central — databases, IDEs, dev tools, games.
Browse the app store →