CLI Commands
Novadesk ships several executables, each with its own command-line interface. This page covers every supported argument so you can automate, script, or integrate Novadesk into your own workflows.
Table of Contents
Quick overview
| Tool | Purpose |
|---|---|
Novadesk.exe | The desktop widget runtime |
nwm | Widget development tool (init / run / build) |
ndpkg_installer.exe | Package installer for .ndpkg widget bundles |
manage_novadesk.exe | The management UI |
Novadesk.exe
Novadesk.exe is the main desktop runtime. It enforces single-instance execution via a Windows mutex, which shapes how CLI arguments behave:
- No running instance → a new instance starts. Any
--enable-*/--disable-*settings and script paths are applied at startup. - Instance already running → supported commands are forwarded to the existing instance via Windows messaging.
Non-flag arguments (paths that don't start with -) are always treated as widget script paths to load.
First time? Start here.
If you just installed Novadesk and want to load a widget, the simplest command is:
Novadesk.exe "C:\path\to\my-widget\index.js"This works whether Novadesk is already running or just starting up.
USAGE
Novadesk.exe --exitGracefully shuts down the running Novadesk instance. All three flag styles are equivalent:
Novadesk.exe /exit
Novadesk.exe -exit
Novadesk.exe --exitThe command is forwarded to the existing instance and triggers a clean shutdown.
USAGE
Novadesk.exe --list-scriptsOutputs all currently loaded widget script paths from the running instance.
# Print to stdout
Novadesk.exe --list-scripts
# Save to a file
Novadesk.exe --list-scripts-file "C:\temp\novadesk-scripts.txt"Useful in automation scripts when you need to capture which widgets are running.
FLAGS
USAGE
Novadesk.exe --refresh <path>Reloads one or all widget scripts in the running instance without restarting everything.
# Refresh a single widget
Novadesk.exe --refresh "C:\path\to\widget\index.js"
# Refresh everything
Novadesk.exe --refresh-allFLAGS
USAGE
Novadesk.exe --unload <path>Removes a specific widget from the running instance. The widget stops immediately and is not reloaded on the next startup.
Novadesk.exe --unload "C:\path\to\widget\index.js"FLAGS
USAGE
Novadesk.exe --load <path>Adds one or more widget scripts to the running instance. You can repeat --load for multiple widgets, or pass paths directly as positional arguments:
# Using the flag (repeatable)
Novadesk.exe --load "C:\path\to\widgetA\index.js"
Novadesk.exe --load "C:\path\to\widgetA\index.js" --load "C:\path\to\widgetB\index.js"
# Positional shorthand — no flag needed
Novadesk.exe "C:\path\to\widgetA\index.js" "C:\path\to\widgetB\index.js"FLAGS
USAGE
Novadesk.exe --enable-hardware-accelerationSaves the hardware acceleration setting to settings.json.
Novadesk.exe --enable-hardware-acceleration
Novadesk.exe --disable-hardware-accelerationRequires restart
The change is saved immediately, but only fully takes effect after restarting Novadesk. The Manage UI will prompt you when you toggle this through the settings panel.
FLAGS
USAGE
Novadesk.exe --enable-debuggingEnables or disables the DevTools inspector. Takes effect immediately on the running instance.
Novadesk.exe --enable-debugging
Novadesk.exe --disable-debuggingFLAGS
USAGE
Novadesk.exe --enable-loggingToggles log output. Takes effect immediately on the running instance.
Novadesk.exe --enable-logging
Novadesk.exe --disable-loggingFLAGS
USAGE
Novadesk.exe --enable-save-log-to-fileEnables or disables saving log output to a file. Takes effect immediately on the running instance.
Novadesk.exe --enable-save-log-to-file
Novadesk.exe --disable-save-log-to-fileFLAGS
USAGE
Novadesk.exe --new-instanceForces a completely new Novadesk process, bypassing the single-instance check. Useful for testing widgets in isolation.
Novadesk.exe --new-instance
Novadesk.exe --new-instance "C:\path\to\widget\index.js"nwm — Novadesk Widget Maker
nwm is the command-line development tool for creating, running, and packaging widgets.
Typical workflow
nwm init my-widget # scaffold a new project
cd my-widget
nwm run # launch it in Novadesk for live development
nwm build # package it for distribution when doneUSAGE
nwm init <widget-name>Scaffolds a new widget project from the default template in the current directory.
nwm init my-widgetCreates a my-widget/ folder with an index.js entry point and a meta.json pre-filled with the widget name.
FLAGS
USAGE
nwm runLoads the widget in the current directory into a running (or freshly started) Novadesk instance. Run this from inside your widget folder.
nwm runUSAGE
nwm buildPackages the widget in the current directory into a distributable .ndpkg file placed in a dist/ folder.
nwm buildThe output is a self-contained installer bundle that users can open directly with ndpkg_installer.exe. Build behavior — version stamping, excluded files, and bundled addons — is controlled by the widget's meta.json.
USAGE
nwm --versionPrints the installed nwm version.
nwm -v
nwm --versionFLAGS
USAGE
nwm --helpPrints the usage summary with all available commands.
nwm -h
nwm --helpFLAGS
ndpkg_installer.exe
A standalone GUI installer for .ndpkg widget packages. Can be opened by double-clicking a .ndpkg file or invoked from the command line.
USAGE
ndpkg_installer.exe <path-to-package.ndpkg>Installs a widget package. Passing the path skips the file picker:
ndpkg_installer.exe "C:\path\to\widget.ndpkg"If no path is provided, a file picker opens for the user to select a .ndpkg manually.
The installer automatically detects whether Novadesk is in portable mode (a settings.json next to the executable) or installed mode (writing to Documents\Novadesk\) and installs to the correct location.
FLAGS
manage_novadesk.exe
The Novadesk management UI — the tray application that lists loaded widgets, manages settings, and monitors logs. Normally opened without arguments.
USAGE
manage_novadesk.exe --request-closeSends a close message to an already-running Manage window and exits.
manage_novadesk.exe --request-closeUsed internally by ndpkg_installer.exe during package installation to safely close the Manage UI before copying files. You can also use it in scripts that need to dismiss the Manage window programmatically.