Welcome to the Netlify CLI! The new 2.0 version (now in beta) was rebuilt from the ground up to help improve the site building experience.
Table of Contents
Click to expand
Install & Setup
To install the Netlify CLI, run the following command in your terminal window:
npm install netlify-cli@next -g
After installing the CLI globally, connect the CLI to your Netlify account with the following command:
This will open a browser window, asking you to log in with Netlify and grant access to Netlify CLI. This will store your Netlify access token in your home folder, under
netlify [command] # Run `help` for detailed information about CLI commands netlify [command] help
Netlify's continuous deployment will automatically deploy new versions of your site when you push commits to your connected Git repository.
To setup continuous deployment with the CLI, run:
In order to connect your repository for continuous deployment, Netlify CLI will need access to create a deploy key and a webhook on the github repository. When you run the command above, you'll be prompted to log in to your GitHub account, which will create an account-level access token.
The access token will be stored in your home folder, under
.netlify/config.json. Your login password will never be stored. You can revoke the access token at any time from your GitHub account settings.
Link to an existing site
Linking to a site tells Netlify CLI which site the current directory should deploy to. To do this, run the following command from the base of your project directory:
This will add a
siteId field to a new file inside your project folder, at
.netlify/state.json. To unlink your folder from the site, you can remove this field, or you can run the following command from inside the project folder:
Create a new site
To create a new Netlify site with the CLI, run the
netlify init command in your site folder.
Then Choose "Create & configure a new site in Netlify"
Proceed through the prompts to finish configuring your site.
Deploying a site
It's also possible to deploy a site manually, without continuous deployment. This method uploads files directly from your local project directory to your site on Netlify.
A common use case for this command is when you're using a separate Continuous Integration (CI) tool, deploying prebuilt files to Netlify at the end of the CI tool tasks.
To do a manual deployment with the CLI run:
netlify deploy # Optionally pass in the build directory netlify deploy --dir your-build-directory # Deploying to production with --prod flag netlify deploy --dir your-build-directory --prod
deploy command needs to know which folder to publish, and if your project includes functions, a functions folder to deploy. It will look for this information in three places, in the following order:
- in flags specified in the command itself
- in a netlify.toml file stored at the base of your project directory.
- in your site settings in the Netlify UI.
By default, all
deploys are set to a draft preview URL.
To do a manual deploy to production, use the
# Deploy build folder to production netlify deploy --prod # Shorthand -p netlify deploy -p
Deploying to production will publish the build directory at the live URL of your Netlify site.
Full Command Reference
Create a new deploy from the contents of a folder
Configure continuous deployment for a new or existing site
Link a local repo or project folder to an existing site on Netlify
Login to your Netlify account
Logout of your Netlify account
Open settings for the site linked to the current folder
||Opens current site admin UI in Netlify|
||Opens current site url in browser|
Handle various site operations
||Create an empty site (advanced)|
||List all sites you have access too|
Print status information
||Print hook information of the linked site|
Unlink a local folder from a Netlify site
Watch for site deploy to finish
By default, the CLI collects usage stats from logged in Netlify users. This is to constantly improve the developer experience of the tool and bake in better features.
If you'd like to opt out of sending telemetry data, you can do so with the
# opt out of telemetry netlify --telemetry-disable # turn on telemetry netlify --telemetry-enable
Or edit the
telemetryDisabled property of the
~/.netlify/config.json file in your computers root directory.
- Clone down the repo
$ git clone email@example.com:netlify/cli.git
- Install dependencies
$ npm install
- Run CLI locally during development
$ ./bin/run [command]
When developing, you can use watch mode which will automatically run ava tests:
$ npm run watch