# Client

> Use the Unity Package Manager Client class to manage the packages used in a project.

## Definition

* **Type:** Class
* **Namespace:** [UnityEditor.PackageManager](/engine/6000.7/script-reference/unityeditor/packagemanager.md)
* **Assembly:** UnityEditor.CoreModule

```csharp
public static class Client
```

## Remarks

**Note:** You can call the Client methods only in sequence. If you try to add or remove multiple packages at the same time, the outcome is nondeterministic. For example, if you call the [Client.Remove](/engine/6000.7/script-reference/unityeditor/packagemanager/client/remove.md) method on a package while a `Remove` operation is already in progress or queued, your call might overwrite the current operation and handle only the latest `Remove` operation.

```csharp
using UnityEngine;
using UnityEditor.PackageManager;
using UnityEditor.PackageManager.Requests;
[ExecuteInEditMode]
public class PackageManagerClientExample : MonoBehaviour
{
    ListRequest m_ListRequest;

    void Start()
    {
        Debug.Log("Listing packages with package manager client...");
        m_ListRequest = Client.List();
    }
    void Update()
    {
        if (m_ListRequest != null && m_ListRequest.IsCompleted)
        {
            if (m_ListRequest.Status == StatusCode.Success)
            {
                foreach (var package in m_ListRequest.Result)
                {
                    Debug.Log($"{package.name}");
                }
            }
            else
            {
                Debug.Log($"Package list request failed: {m_ListRequest.Error}");
            }
            m_ListRequest = null;
        }
    }
}
```

**Related information**

* [PackageInfo](/engine/6000.7/script-reference/unityeditor/packagemanager/packageinfo.md)
* [Request](/engine/6000.7/script-reference/unityeditor/packagemanager/requests/request.md)
* [Error](/engine/6000.7/script-reference/unityeditor/packagemanager/error.md)
* [StatusCode](/engine/6000.7/script-reference/unityeditor/packagemanager/statuscode.md)

## Static Properties

| Property                                                                                  | Description                                                                                                                                                                                                              |
| ----------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| [LogLevel](/engine/6000.7/script-reference/unityeditor/packagemanager/client/loglevel.md) | Gets or sets the log level that the Package Manager uses when logging to the `Editor.log` and `upm.log` files. Defaults to [LogLevel.Info](/engine/6000.7/script-reference/unityeditor/packagemanager/loglevel/info.md). |

## Static Methods

| Method                                                                                            | Description                                                                                                                                                                                                                                                                                                                                                                                                |
| ------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [Add](/engine/6000.7/script-reference/unityeditor/packagemanager/client/add.md)                   | Adds a package dependency to the project. Requesting a new or different dependency often leads to changing installed packages, but only after the Package Manager constructs a dependency graph to solve any version conflicts.                                                                                                                                                                            |
| [AddAndRemove](/engine/6000.7/script-reference/unityeditor/packagemanager/client/addandremove.md) | Adds package dependencies to the project and removes package dependencies from the project. Requesting different dependencies often leads to changing installed packages, but only after the Package Manager constructs a dependency graph to solve any version conflicts. For more information, see [Dependency and resolution](/engine/6000.7/manual/packages-list/dependencies-lp/upm-dependencies.md). |
| [ClearCache](/engine/6000.7/script-reference/unityeditor/packagemanager/client/clearcache.md)     | Empties the package cache.                                                                                                                                                                                                                                                                                                                                                                                 |
| [Embed](/engine/6000.7/script-reference/unityeditor/packagemanager/client/embed.md)               | [Embeds](/engine/6000.7/manual/packages-list/dependencies-lp/upm-embed.md) a package inside the project.                                                                                                                                                                                                                                                                                                   |
| [List](/engine/6000.7/script-reference/unityeditor/packagemanager/client/list.md)                 | Lists the packages the project depends on.                                                                                                                                                                                                                                                                                                                                                                 |
| [Pack](/engine/6000.7/script-reference/unityeditor/packagemanager/client/pack.md)                 | Creates a GZip tarball file from a package folder. The format and content of the file is the same as if the package was published to a package registry.                                                                                                                                                                                                                                                   |
| [Remove](/engine/6000.7/script-reference/unityeditor/packagemanager/client/remove.md)             | Removes a package dependency from the project. Removing a dependency often leads to changing installed packages, but only after the Package Manager constructs a dependency graph to solve any version conflicts.                                                                                                                                                                                          |
| [Resolve](/engine/6000.7/script-reference/unityeditor/packagemanager/client/resolve.md)           | Forces the Package Manager to resolve the project's packages, reinstalling any altered or missing package and removing extraneous packages.                                                                                                                                                                                                                                                                |
| [Search](/engine/6000.7/script-reference/unityeditor/packagemanager/client/search.md)             | Searches for packages in the Unity Package Registry. Returns a [SearchRequest](/engine/6000.7/script-reference/unityeditor/packagemanager/requests/searchrequest.md) object that provides access to matching packages.                                                                                                                                                                                     |
| [SearchAll](/engine/6000.7/script-reference/unityeditor/packagemanager/client/searchall.md)       | Searches for all discoverable packages compatible with the current Unity version.                                                                                                                                                                                                                                                                                                                          |
