1. Install and setup Sitecore CLI

Install Sitecore Command Line Interface

Sitecore Command Line Interface (CLI) is a tool that you install in a terminal.

Note

To upgrade an existing CLI installation, see Upgrade Sitecore Command Line Interface.

You can install Sitecore CLI either as a local tool for individual projects or as a global tool for all projects.

Important

We do not recommend installing Sitecore CLI as a global tool. Different Sitecore instances might need different versions of the Sitecore CLI.

You must have .NET 8 installed on your workstation before installing the Sitecore CLI. If you do not have the required version of .NET Core installed, you get the following message:

text
Package sitecore.cli {version} is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1) / any.
Package sitecore.cli {version} supports: net8.0 (.NETCoreApp,Version=v8.0) / any

To install Sitecore CLI as a local project tool:

  1. Open a terminal with administrator privileges.
  2. Run the following commands to install Sitecore CLI:
bash
  cd <project folder>
  dotnet new tool-manifest
  dotnet nuget add source -n Sitecore https://nuget.sitecore.com/resources/v3/index.json
  dotnet tool install Sitecore.CLI
  ```

  > [!note]
  > Other developers working on the same project only have to run `dotnet tool restore` to install Sitecore CLI.
  >
  > To install the CLI globally, use the `-g` option when running the `install` command (not recommended).

  When the installation is complete, you get the following message:

  ```text
  You can invoke the tool from this directory using the following commands: 'dotnet tool run sitecore' or 'dotnet sitecore'.
  Tool 'sitecore.cli' {version} was successfully installed. Entry is added to the manifest file {project-path}.config\\dotnet-tools.json.
  ```

  > [!note]
  > The examples in the following steps use an example version for simplicity, but when you install the CLI, the version displayed in the terminal is the *latest official release available*.

3. To initialize your new project, run the following command in your project folder:

```bash
  dotnet sitecore init
  ```

  > [!note]
  > The command `dotnet sitecore init` adds default plugins with the same version as the CLI to the `sitecore.json` file. The plugins are `Sitecore.DevEx.Extensibility.Serialization`, `Sitecore.DevEx.Extensibility.Publishing`, `Sitecore.DevEx.Extensibility.Indexing`, `Sitecore.DevEx.Extensibility.ResourcePackage`, and `Sitecore.DevEx.Extensibility.Database`. On the next Sitecore CLI command, the CLI attempts to resolve and install the plugins for you.

4. Verify the initialization on your project with the following command:

```bash
  dotnet sitecore plugin list
  ```

  If this is the first command after `dotnet sitecore init`, the CLI attempts to resolve and install the plugins listed in the `sitecore.json` file. The command prints a message informing you which plugins are being installed. For example:

  ```text
  \>> Begin installing NuGet packages: Sitecore.DevEx.Extensibility.Serialization@{version}, Sitecore.DevEx.Extensibility.Publishing@{version}, Sitecore.DevEx.Extensibility.Indexing@{version}, Sitecore.DevEx.Extensibility.ResourcePackage@{version}, Sitecore.DevEx.Extensibility.Database@{version}
  ```

  If the installation is successful, the command lists the installed plugins and their version information:

  ```text
  List of plugins:
  [Installed] Sitecore.DevEx.Extensibility.Serialization v.{version}
  [Installed] Sitecore.DevEx.Extensibility.Publishing v.{version}
  [Installed] Sitecore.DevEx.Extensibility.Indexing v.{version}
  [Installed] Sitecore.DevEx.Extensibility.ResourcePackage v.{version}
  [Installed] Sitecore.DevEx.Extensibility.Database v.{version}
  [Installed] Sitecore.DevEx.Extensibility.XMCloud v.{version}
  ```

  If the installation of any plugin fails, the output shows a `[Failed]` status for that plugin.

5. To verify that the Sitecore CLI works, go to your project folder in a terminal and type `dotnet sitecore -h`.

  If the Sitecore CLI is ready, you get a message describing the usage, options, and [available top-level commands](./sitecore-cli-command-reference/sitecore-cli-command-reference.md "Sitecore CLI command reference"). For example:

  ```text
  sitecore.cli
    Sitecore command line tool

  Usage:
    sitecore.cli [options] [command]

  Options:
    --version       Show version information
    -?, -h, --help  Show help and usage information

  Commands:
    login               Authenticates the CLI to a Sitecore instance
    plugin              Manage plugins commands
    init                Creates Sitecore configurations in current directory
    connect             Connect to the existing environment
    ser, serialization  Item serialization commands
    publish             Performs a publish operation on all content
    index               working with indexes data
    itemres             Resource Items Package commands
    dbcleanup           Performs cleanup operations for Sitecore databases
  ```
If you have suggestions for improving this article, let us know!