What is NX AppHub CLI (and what it isn't) - Nitrux/nx-apphub GitHub Wiki
Overview
NX AppHub CLI is a lightweight command-line tool for managing and building applications in Nitrux. It fetches YAML-based app definitions from a curated Git repository, builds the requested application locally using .deb packages, and handles installation, updates, and removal—all without touching your system files or requiring APT or dpkg.
Each application is self-contained and built on demand, giving users full visibility and control over what's inside. NX AppHub CLI also supports manual builds to define and install your applications, not just those curated in the official repository.
For terminology consistency across the wikis, "AppBox" refers to curated, policy-compliant bundles as defined in NX AppHub FAQ → 1. Why are the files called AppBoxes?. Manual/custom builds are supported, but they are not considered AppBoxes unless they satisfy that definition.
1. Key Features
- Build and manage curated AppBoxes (Nitrux-native application bundles) locally using curated YAML definitions from NX AppHub Apps, and build custom bundles from user-provided specifications; no containers, runtimes, or compiling required.
- No root needed—installs apps in your user directory without touching the base system.
- Optional integrity checks to detect missing shared libraries in AppBoxes.
- Cleans up after itself to keep your system tidy.
2. What is NX AppHub CLI?
-
A lightweight application builder and manager for Nitrux that builds, installs, updates, downgrades, and removes AppBoxes using a Git-based system that fetches application definitions from a curated Git repository using YAML files, ensuring consistency and quality.
- These definitions are YAML files, one per app, stored in
~/.local/share/nx-apphub-cli/apps/. - No actual
.deb,.AppImage, or.AppBoxfiles are stored in Git.
- These definitions are YAML files, one per app, stored in
-
A fully automated builder that handles the entire process—from fetching Debian packages via metadata defined in YAML files to assembling complete application bundles locally, without requiring manual intervention.
-
A simple, flexible tool that prioritizes ease of use over complexity. It provides lifecycle and management features for AppBoxes (install/update/remove, automated rollbacks/backups) while also allowing custom local bundle builds.
3. What isn't NX AppHub CLI?
-
A traditional package manager. While it consumes standard Debian packages, it completely bypasses APT and
dpkg. It does not interact with a system-wide database, requires no root privileges, and never touches the root filesystem.- NX AppHub bundles explicitly defined
.debpackages declaratively at build time using a YAML definition, creating a final self-contained AppBox, similar to how container builders work, but optimized for desktop applications.
- NX AppHub bundles explicitly defined
-
A runtime or integration environment. Unlike traditional AppImages that bundle redundant libraries to ensure they run on the oldest possible Linux base (universality), or Flatpak, which relies on large runtime environments, both of which duplicate system libraries, NX AppHub CLI focuses solely on building and managing AppBoxes with a lightweight, straightforward approach, without imposing a full runtime or environment.
- For desktop integration, we use NX AppHub Daemon.
-
A closed or proprietary ecosystem or a cross-distro utility. While NX AppHub CLI is designed specifically for Nitrux and AppBoxes don't aim for compatibility with other distributions, it remains fully open-source.
- Users can manually build a custom bundle from their own YAML definitions, and we have licensed both the utility and its curated app definitions under a 100% FOSS license.
- We define Contribution Workflow Guidelines for those interested in adding a YAML to the NX AppHub Apps repository. PRs are welcome.
-
Not a container, runtime, VM hypervisor, Live USB creator, Linux distro, desktop environment, emulator, abstraction layer, or—for the record—proprietary software.
[!NOTE] We don't know why anyone would think that, but you can never know, so let's clarify.