Command Line Options


You use following command line options when starting NW.js to change some default behaviors.

About command line arguments

When a user uses your app to open a file under command line, like your-app file.txt file2.txt, the file.txt file2.txt will be recorded and you can use nw.App.argv to get the array of command line arguments. If there is already one running instance of your app, the full command line of the second instance will be passed to the existing instance by sending open event to the App object.

Note

For now there is a limitation: if the command line argument is the filename of .js file on disk, NW will just run it as upstream Node.js. This is for supporting child_process.fork() API.

--url

Load URL with the default app: --url=http://nwjs.io

--mixed-context

Run NW.js in Mixed Context Mode instead of Separate Context Mode.

--nwapp

An alternative way to specify the path of the app. This parameter is especially useful when testing with ChromeDriver.

--user-data-dir

Specify the data directory for your app, which contains the stored data, caches and crash dumps etc. By default the data directory is in following directories according to your platform:

  • Windows: %LOCALAPPDATA%/<name-in-manifest>/
  • Mac: ~/Library/Application Support/<name-in-manifest>/
  • Linux: ~/.config/<name-in-manifest>

Where <name-in-manifest> is the name field in manifest.

--disable-devtools

Disable user’s access to devtools feature in SDK build.

--enable-node-worker

Enable the Node.js integration in Web Workers. This will help you offload CPU hogging tasks with new threads, while exchange large amount of data with DOM efficiently with the structured clone algorithm.

Please note that binary modules of Node.js need to be thread-safe to be used in this way. We’ve made modifications to Node.js core to make sure core APIs are thread-safe, while we can not promise this with 3rd party binary modules. Pure JS modules are thread safe as long as they depends on thread-safe modules only. And there shouldn’t be any side effect when the feature is not turned on.

--disable-raf-throttling

When it’s used, requestAnimationFrame() callback will continue to fire when window is minimized or hidden. It’s pretty useful for game developer. When the argument is not used, it behaves in the same way as Chrome browser and has no side effects.

By default, the cookie store on disk is encrypted in Chromium. Use this switch to disable the encryption for testing purpose (e.g. sharing the cookie store between different systems).

--disable-crash-handler=true

Disable the crash handler process for single process mode. NOTE: you should explicitly set it to ‘true’. When using it and --single-process together, there will be only one NW process for your application. The crash dumping feature will be disabled with this switch. This switch must be put in the command line (not in package.json) to be effective.

--enable-gcm

Enable the chrome.gcm API.

--enable-transparent-visuals

--disable-transparency

--disable-gpu

--force-cpu-draw

These options are related to the transparent window feature. See Transparent Window for details.

Other Chromium Options

You can also use Chromium options listed in https://github.com/nwjs/chromium.src/blob/nw18/chrome/common/chrome_switches.cc and https://github.com/nwjs/chromium.src/blob/nw18/content/public/common/content_switches.cc . See also http://peter.sh/experiments/chromium-command-line-switches/

These options can be put into chromium-args in manifest to get NW.js running with them each time.

Environment Variables

NW_PRE_ARGS‘s value is prepended to the value of chromium-args in manifest.