[Документация Yandex Cloud](../../index.md) > [Интерфейс командной строки](../index.md) > [Пошаговые инструкции](index.md) > Работа с версиями команд CLI

# Работа с версиями команд CLI

Для быстрого выпуска новой функциональности сервисов и обеспечения более широкого покрытия вызовов публичного API в Yandex Cloud CLI постепенно внедряется новый подход по формированию дерева команд — напрямую из [proto-спецификаций](https://github.com/yandex-cloud/cloudapi/tree/master/yandex/cloud) публичного gRPC API.

При таком подходе новые команды и их параметры не всегда соответствуют прежним. Для сохранения обратной совместимости реализовано версионирование деревьев сервисных команд. 

В каждой группе сервисных команд, например `yc compute`, как и прежде остается _основная ветка команд_ — `yc compute [ instance | image | disk | ... ]`, но также добавляются _ветки с номерами версии команд_, например `yc compute v0 [ instance | image | disk | ... ]`.

Основная ветка команд обязательно соответствует одной из версий. Если версия всего одна, то основная ветка полностью ее дублирует.

Информация о появлении или удалении версии команд, а также о переключении основной ветки на другую версию публикуется в разделе [Релизы CLI](../release-notes.md).

{% note tip %}

Используйте актуальную версию CLI и дерево команд, которое сервис назначил основным. Если команды CLI вызываются из скриптов, CI/CD или других автоматизированных процессов, при переходе на новую версию CLI сначала проверьте совместимость команд. Пока прежняя версия команд доступна, вы можете [явно указывать ее в конкретных командах](command-versioning.md#use-version) или [назначить ее версией по умолчанию](command-versioning.md#default-version).

{% endnote %}

## Узнать, какие версии доступны {#get-versions}

Когда сервис поддерживает несколько версий команд, для каждой из них доступна отдельная ветка с номером версии.

Чтобы узнать, какие версии доступны и какая из них используется в основной ветке, выполните команду:

```bash
yc <название_сервиса> --help
```

Пример:

```bash
yc baremetal --help
```

Результат:

```text
Command tree v1 (new CLI interface) is the default. Run `yc baremetal v1 <command>`.
Legacy command tree v0 is also available: `yc baremetal v0 <command>`.
Set `services.baremetal.version: v0` or `services.baremetal.version: v1` in your profile to change the default.
```

Эта информация также указана на обзорной странице соответствующего сервиса в справочнике CLI, например [yc baremetal](../cli-ref/baremetal/cli-ref/index.md) или [yc smartwebsecurity](../cli-ref/smartwebsecurity/cli-ref/index.md).

## Использовать определенную версию {#use-version}

Чтобы использовать определенную версию, укажите ее в команде после названия сервиса:

```bash
yc <название_сервиса> v<номер_версии> <команда>
```

Например:

```bash
yc baremetal v0 server list
```

## Изменить версию для основной ветки {#default-version}

Чтобы переопределить версию в основной ветке для выбранного профиля CLI, выполните команду:

```bash
yc config set services.<название_сервиса>.version v<номер_версии>
```

Например:

```bash
yc config set services.smartwebsecurity.version v0
```

#### Полезные ссылки

* [Справочник CLI](../cli-ref/index.md)
* [Релизы CLI](../release-notes.md)
* [Управление параметрами профиля](profile/manage-properties.md)