Run a command in the machine. Arguments pass literally; a terminal is used when stdin and stdout are terminals. Flags precede COMMAND; -- ends them. --host-files translates host files and links among the arguments to machine paths: CODE is f (one file), F (files), u (one file or link) or U (files or links), and BEFORE and AFTER count the other arguments before and after them, the command included (Open files).
Every nsl VM with its state, image, resources and data disk, anything pending until its next start, and every machine with its state, image, trust tier and default marker.
Without NAME: every VM, its forwarder and desktop sessions. With NAME: that machine's desktop session; isolated machines also include their own VM and forwarder. Prints a hint for the machine's own journal.
Add the machine's application APP to the host's menu, with its icon, and optionally copy its file types with --mime-types, or refresh the entry nsl wrote before.
Authenticated machine-image selections and the VM image in effect. The default reuses a catalogue checked less than one hour ago; --refresh checks immediately.
nsl list, nsl images and nsl config print tables for people. Add --json and they print one JSON document instead, with the same facts as typed values: numbers, booleans, full digests and the line a setting came from. Use it from scripts, editors and terminals rather than parsing the tables.
On failure nothing is printed on stdout; the message goes to stderr and the exit status is non-zero. Ignore fields you do not know; nsl may add more. The CLI contract ↗ lists every field.
nsl run and nsl exit with the command's status, or 128+N when it was killed by signal N. Other commands exit 0 on success and non-zero with a message on stderr.