Nuts

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.

Get started in seconds

Install Nuts

Bootstrap once, then nuts install <app> for anything.

All download options →
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

How it works

Three commands. That's it.

1

Bootstrap

curl ... | bash

Install Nuts itself. One time, any platform.

2

Install

nuts install <app>

Dependencies, native libs and JDK resolved automatically.

3

Run

nuts <app>

Instant. Offline. Any version, side by side.

What Nuts does

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.

The Nuts ecosystem

More than a package manager

SDK

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.

Explore NAF for developers →
Apps

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 →
Latest

From the blog