# prebuild-install > A command line tool to easily install prebuilt binaries for multiple version of node/iojs on a specific platform. [](https://www.npmjs.com/package/prebuild-install)  [](https://travis-ci.org/prebuild/prebuild-install) [](https://ci.appveyor.com/project/mathiask88/prebuild-install) [](https://david-dm.org/prebuild/prebuild-install) [](http://standardjs.com/) `prebuild-install` supports installing prebuilt binaries from GitHub by default. ## Usage Change your package.json install script to: ```json { "scripts": { "install": "prebuild-install || node-gyp rebuild" } } ``` ### Requirements You need to provide prebuilds made by [`prebuild`](https://github.com/prebuild/prebuild). ### Help ``` prebuild-install [options] --download -d [url] (download prebuilds, no url means github) --target -t version (version to install for) --runtime -r runtime (Node runtime [node, napi or electron] to build or install for, default is node) --path -p path (make a prebuild-install here) --token -T gh-token (github token for private repos) --tag-prefix <prefix> (github tag prefix, default is "v") --build-from-source (skip prebuild download) --verbose (log verbosely) --libc (use provided libc rather than system default) --debug (set Debug or Release configuration) --version (print prebuild-install version and exit) ``` When `prebuild-install` is run via an `npm` script, options `--build-from-source`, `--debug` and `--download`, may be passed through via arguments given to the `npm` command. ### Private Repositories `prebuild-install` supports downloading prebuilds from private GitHub repositories using the `-T <github-token>`: ``` $ prebuild-install -T <github-token> ``` If you don't want to use the token on cli you can put it in `~/.prebuild-installrc`: ``` token=<github-token> ``` Alternatively you can specify it in the `prebuild-install_token` environment variable. Note that using a GitHub token uses the API to resolve the correct release meaning that you are subject to the ([GitHub Rate Limit](https://developer.github.com/v3/rate_limit/)). ### Create GitHub Token To create a token: * Go to [this page](https://github.com/settings/tokens) * Click the `Generate new token` button * Give the token a name and click the `Generate token` button, see below  The default scopes should be fine. ### Custom binaries The end user can override binary download location through environment variables in their .npmrc file. The variable needs to meet the mask `% your package name %_binary_host` or `% your package name %_binary_host_mirror`. For example: ``` leveldown_binary_host=http://overriden-host.com/overriden-path ``` Note that the package version subpath and file name will still be appended. So if you are installing `leveldown@1.2.3` the resulting url will be: ``` http://overriden-host.com/overriden-path/v1.2.3/leveldown-v1.2.3-node-v57-win32-x64.tar.gz ``` ### Cache All prebuilt binaries are cached to minimize traffic. So first `prebuild-install` picks binaries from the cache and if no binary could be found, it will be downloaded. Depending on the environment, the cache folder is determined in the following order: * `${npm_config_cache}/_prebuilds` * `${APP_DATA}/npm-cache/_prebuilds` * `${HOME}/.npm/_prebuilds` ## License MIT