What is netlify-cli?
The netlify-cli package is a command-line tool that allows you to interact with Netlify services. It provides functionalities for deploying sites, managing DNS, handling functions, and more, directly from your terminal.
What are netlify-cli's main functionalities?
Deploy a site
This command deploys the site located in the './build' directory to Netlify. It is useful for quickly pushing updates to your site.
netlify deploy --dir=./build
Login to Netlify
This command opens a browser window to authenticate your Netlify account. It is the first step to using other Netlify CLI commands that require authentication.
netlify login
Create a new site
This command creates a new site on Netlify with the specified name 'my-new-site'. It is useful for setting up new projects quickly.
netlify sites:create --name=my-new-site
Manage DNS records
This command adds a DNS record to your Netlify-managed domain. It is useful for configuring custom domains and subdomains.
netlify dns:add --name=subdomain --type=A --value=127.0.0.1
Invoke serverless functions
This command invokes a serverless function named 'my-function' deployed on Netlify. It is useful for testing and debugging serverless functions.
netlify functions:invoke my-function
Other packages similar to netlify-cli
vercel
The Vercel CLI is a command-line tool for interacting with Vercel services. It offers similar functionalities to Netlify CLI, such as deploying sites, managing domains, and handling serverless functions. Vercel is known for its seamless integration with Next.js.
firebase-tools
The Firebase CLI provides a set of tools for managing Firebase projects and apps. It includes functionalities for deploying web apps, managing databases, and handling authentication. While it offers broader services compared to Netlify CLI, it is more focused on mobile and web app development.
aws-cli
The AWS CLI is a unified tool to manage AWS services. It provides extensive functionalities for deploying and managing cloud resources, including S3 for static site hosting and Lambda for serverless functions. It is more complex and feature-rich compared to Netlify CLI, catering to a wider range of cloud services.
Interact with Netlify from the comfort of your CLI.
See the CLI command line reference to get started and the docs on using
Netlify Dev to run your site locally.
Table of Contents
Click to expand
Installation
Netlify CLI requires Node.js version 14 or above. To install, run the following command from any
directory in your terminal:
npm install netlify-cli -g
When using the CLI in a CI environment we recommend installing it locally as a development dependency, instead of
globally. To install locally, run the following command from the root directory of your project:
npm install --save-dev netlify-cli
Important: Running npm install netlify-cli -g
in CI means you're always installing the latest version of the CLI,
including breaking changes. When you install locally and use a
lock file you guarantee reproducible builds. To manage CLI updates we
recommend using an automated tool like renovate or
dependabot.
Alternatively you may also use Homebrew: brew install netlify-cli
(thanks
@cglong).
Usage
Installing the CLI globally provides access to the netlify
command.
netlify [command]
# Run `help` for detailed information about CLI commands
netlify [command] help
Documentation
To learn how to log in to Netlify and start deploying sites, visit the
documentation on Netlify.
For a full command reference, see the list below, or visit cli.netlify.com.
Commands
(Beta) Manage Netlify Add-ons
Run any Netlify API method
(Beta) Build on your local machine
(Beta) Generate shell completion script
Subcommand | description |
---|
completion:install | Generates completion script for your preferred shell |
Create a new deploy from the contents of a folder
Local dev server
Subcommand | description |
---|
dev:exec | Exec command |
Control environment variables for the current site
Subcommand | description |
---|
env:clone | Clone environment variables from one site to another |
env:get | Get resolved value of specified environment variable (includes netlify.toml) |
env:import | Import and set environment variables from .env file |
env:list | Lists resolved environment variables for site (includes netlify.toml) |
env:set | Set value of environment variable |
env:unset | Unset an environment variable which removes it from the UI |
Manage netlify functions
Configure continuous deployment for a new or existing site. To create a new site without continuous deployment, use netlify sites:create
Link a local repo or project folder to an existing site on Netlify
Handle Netlify Large Media operations
Subcommand | description |
---|
lm:info | Show large media requirements information. |
lm:install | Configures your computer to use Netlify Large Media |
lm:setup | Configures your site to use Netlify Large Media |
Login to your Netlify account
Open settings for the site linked to the current folder
Subcommand | description |
---|
open:admin | Opens current site admin UI in Netlify |
open:site | Opens current site url in browser |
(Beta) Create and modify files in a project using pre-defined recipes
Subcommand | description |
---|
recipes:list | (Beta) List the recipes available to create and modify files in a project |
(Beta) Build the site for production and serve locally. This does not watch the code for changes, so if you need to rebuild your site then you must exit and run serve
again.
Handle various site operations
Print status information
Subcommand | description |
---|
status:hooks | Print hook information of the linked site |
Switch your active Netlify account
Unlink a local folder from a Netlify site
Watch for site deploy to finish
Contributing
See CONTRIBUTING.md for more info on how to make contributions to this project.
Development
You'll need to follow these steps to run Netlify CLI locally:
uninstall any globally installed versions of netlify-cli
clone and install deps for https://github.com/netlify/cli
npm link from inside the cli folder
Now you're both ready to start testing and to contribute to the project!
License
MIT. See LICENSE for more details.