id = "node-red" name = "Node-RED" homepage = "https://nodered.org/" description = "Low-code programming for event-driven applications" executables = ["node-red"] [dotfiles] # Node-RED's official runtime docs define ~/.node-red as the default userDir, # with settings.js as its settings file. The same docs identify the # flows_.json_cred file as the credentials store; it is kept as a # whole-file secret while flow definitions remain user-authored content. # https://nodered.org/docs/user-guide/runtime/settings-file # https://nodered.org/docs/user-guide/runtime/configuration paths = [ "~/.node-red/settings.js", "~/.node-red/flows*.json", ] secret = ["~/.node-red/flows*_cred.json"] [commands] format = 1 label = "Start Node-RED" description = "Start the Node-RED runtime. The admin subcommand and telemetry/title options are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "help" kind = "help" url = "https://github.com/node-red/node-red/blob/HEAD/packages/node_modules/node-red/red.js" revision = "red.js usage text 2026-10-27" evidence = """ Usage: node-red [-v] [-?] [--settings settings.js] [--userDir DIR] [--port PORT] [--title TITLE] [--safe] [flows.json] -p, --port PORT port to listen on -s, --settings FILE use specified settings file -u, --userDir DIR use specified user directory -v, --verbose enable verbose output --safe enable safe mode """ [[commands.field]] id = "flows" label = "Flows file" description = "Defaults to flows.json in the user directory." type = "path" position = 0 path = { kind = "file", role = "input", must_exist = false } sources = ["help"] [[commands.field]] id = "port" label = "Port" type = "integer" option = ["--port", "-p"] sources = ["help"] [[commands.field]] id = "settings" label = "Settings file" type = "path" option = ["--settings", "-s"] path = { kind = "file", role = "input", must_exist = true } sources = ["help"] [[commands.field]] id = "user_dir" label = "User directory" type = "path" option = ["--userDir", "-u"] path = { kind = "directory", role = "input", must_exist = false } sources = ["help"] [[commands.field]] id = "verbose" label = "Verbose output" type = "boolean" option = ["--verbose", "-v"] sources = ["help"] [[commands.field]] id = "safe" label = "Safe mode" description = "Start without running the flows." type = "boolean" option = ["--safe"] sources = ["help"] [[commands.task]] id = "start" label = "Start on a port" fields = ["port", "user_dir"] required = ["port"] [[commands.task]] id = "safe_start" label = "Start in safe mode" fields = ["safe", "user_dir"] required = ["safe"] set = { safe = [true] } [[commands.group]] id = "basic" label = "Basic" fields = ["flows", "port", "user_dir", "safe"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["settings", "verbose"]