How to run apps
Clone this wiki locally
NOTE: some content in this wiki applies only to 0.12 and earlier versions. For official documentation on 0.13 and later, see http://docs.nwjs.io
node-webkit can load an app in two ways:
- From a folder. The startup path specifies this folder.
- From a
.nwfile (a renamed .zip-file). The startup path specifies the file.
In both cases, there has to be a file called
package.json in the startup path or
.nw zipfile. This file will be parsed when
node-webkit starts. If this file is missing,
node-webkit will not recognize the folder or
.nw file as app, and it will complain about a wrongly packaged app. A frequently made mistake is zipping the folder rather than its contents. This stems from very old practice (because when you unzip a folder you don't want it to splash out all over your current directory), but for
node-webkit doing that doesn't make sense: you need to zip the app folder's contents only, to get a correct
You can put files of node-webkit in the same directory with your app's files including
package.json, and then just run the
On Windows, the easiest way to run the app is to drag the folder onto
nw.exe, or a shortcut to
nw.exe. Remember to drag the folder containing
package.json, and not
You can also call it from the command line:
C:\nw\nw.exe C:\apps\myapp C:\nw\nw.exe C:\apps\packagedapp.nw
You can also:
- Copy the command (
- Right-click in a folder or on the desktop
- New > Shortcut
- Paste > Next
- Type the App name > Finish
Now you are always just a double-click away from running your app.
On Linux, you can use one of these command lines:
nw /home/path/to/appdir/ nw /home/path/to/packagedapp.nw
If you have installed the
.deb, you can double click on
.nw files in your file manager as well.
If you see this error:
nw: error while loading shared libraries: libudev.so.0: cannot open shared object file: No such file or directory
Please read The solution of lacking libudev.so.0
Mac OS X
On Mac OSX, a folder or
.nw file can be dropped onto the nw.app application bundle. On the Mac OSX Terminal (commandline), you can use nw like this (assuming it's installed to the Applications directory):
open -n -a nwjs --args "/home/path/to/app"
In some cases it may be faster to invoke the nw binary inside the application bundle directly via the following:
You can setup an alias in your Terminal session to call the binary when you use nw by adding an alias to your ~/.bash_profile (open -a TextEdit ~/.bash_profile):
# alias to nw alias nw="/Applications/nwjs.app/Contents/MacOS/nwjs"
You have to refresh the bash shell environment:
Now you can call nw from the commandline like Linux and Windows:
sudo npm install -g nw nw ./my_nwjs_app
npm install nw node_modules/.bin/nw ./my_nwjs_app