NuGet CLI reference
The NuGet Command Line Interface (CLI),
nuget.exe, provides the full extent of NuGet functionality to install, create, publish, and manage packages without making any changes to project files.
To use any command, open a command window or bash shell, then run
nuget followed by the command and appropriate options, such as
nuget help pack (to view help on the pack command).
This documentation reflects the latest version of the NuGet CLI. For exact details for any given version that you're using, run
nuget help for the desired command.
- On Mac and Linux, install Mono 4.4.2 or later.
- Visit nuget.org/downloads and select the version of NuGet you want.
- Each download is the
nuget.exefile directly. Instruct your browser to save the file to a folder of your choice. The file is not an installer; running it from the browser won't show anything.
- Add the folder where you placed
nuget.exeto your PATH environment variable to use the CLI tool from anywhere.
- All commands are available on Windows.
- All commands work with nuget.exe running on Mono except where indicated for
pushcommands are also available on Mac and Linux through the dotnet CLI.
Commands and applicability
Available commands and applicability to package creation, package consumption, and/or publishing a package to a host:
|Common Commands||Applicable Roles||NuGet Version||Description|
|pack||Creation||2.7+||Creates a NuGet package from a
|push||Publishing||All||Publishes a package to a package source.|
|config||All||All||Gets or sets NuGet configuration values.|
|help or ?||All||All||Displays help information or help for a command.|
|locals||Consumption||3.3+||Clears or lists packages in various caches or the global packages folder, or identifies those folders.|
|restore||Consumption||2.7+||Restores all packages referenced by the package reference format in use. When running on Mono, restoring packages using the PackageReference format is not supported.|
|setapikey||Publishing, Consumption||All||Saves an API key for a given package source when that package source requires a key for access.|
|Secondary Commands||Applicable Roles||NuGet Version||Description|
|add||Publishing||3.3+||Adds a package to a non-HTTP package source using hierarchical layout. For HTTP sources, use push.|
|delete||Publishing||All||Removes or unlists a package from a package source.|
|init||Creation||3.3+||Adds packages from a folder to a package source using hierarchical layout.|
|install||Consumption||All||Installs a package into the current project but does not modify projects or reference files.|
|list||Consumption, perhaps Publishing||All||Displays packages from a given source.|
|mirror||Publishing||Deprecated in 3.2+||Mirrors a package and its dependencies from a source to a target repository.|
|sources||Consumption, Publishing||All||Manages package sources in configuration files.|
|update||Consumption||All||Updates a project's packages to the latest available versions. Not supported when running on Mono.|
Different commands make use of various Environment variables.
NuGet CLI commands by applicable roles:
Developers concerned only with consuming packages, for example, need only understand that subset of NuGet commands.
Command option names are case-insensitive. Options that are deprecated are not included in this reference, such as
NoPrompt (replaced by
Verbose (replaced by