---
metadata:
  - name: generator
    content: Diplodoc Platform v5.56.0
alternate:
  - https://sourcecraft.dev/portal/docs/ru/code-assistant/operations/src-cli.md
  - href: ru/code-assistant/operations/src-cli.md
    type: text/markdown
    title: Markdown version
  - href: ../llms.txt
    type: text/markdown
    title: llms.txt
---
> **Documentation Index:** Fetch the complete configuration index at https://sourcecraft.dev/portal/docs/ru/llms.txt


<!-- source: ru/sourcecraft/operations/cli-quickstart.md -->
# Как начать работать с SourceCraft CLI

_SourceCraft CLI_ (`src`) — это интерфейс командной строки для работы на платформе SourceCraft со встроенным AI-агентом [OpenCode](https://opencode.ai/docs/ru). В `opencode` настроен доступ к большим языковым моделям (LLM) [Code Assistant](https://sourcecraft.dev/portal/docs/ru/code-assistant/index.md), а также установлены инструменты для работы с платформой.

{% note warning %}

За использование агентского режима Code Assistant в SourceCraft CLI взимается плата, подробнее в разделе [Тарифные планы Code Assistant](https://sourcecraft.dev/portal/docs/ru/sourcecraft/pricing.md#ca-plans).

{% endnote %}

С помощью SourceCraft CLI вы можете управлять [репозиториями](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md#repos), [задачами](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md#issues), [предложениями изменений](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/index.md#pr) и другими ресурсами платформы прямо из терминала, не переключаясь в браузер. Также SourceCraft CLI более удобен для использования в скриптах и автоматизации, чем [REST API](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/api-start.md) сервиса.

Также в SourceCraft CLI реализована удобная аутентификация для `git` на платформе без необходимости явного использования [SSH-ключей](https://sourcecraft.dev/portal/docs/ru/sourcecraft/security/pat.md) или [PAT](https://sourcecraft.dev/portal/docs/ru/sourcecraft/security/pat.md).

Помимо стандартных операций с платформой, с помощью встроенного AI-агента `opencode`, подключенного к Code Assistant, вы можете изучать, генерировать и отлаживать код вашего проекта. Агент интегрирован с платформой SourceCraft, имеет доступ к веткам, задачам, предложениям изменений и прочим ресурсам платформы и может выполнять многошаговые задачи прямо в контексте вашего репозитория.

<iframe width="640" height="360" src="https://runtime.strm.yandex.ru/player/video/vplvaguertw3j6tlqv7p?autoplay=0&mute=0" allow="autoplay; fullscreen; picture-in-picture; encrypted-media" frameborder="0" scrolling="no"></iframe>

Чтобы начать работать с SourceCraft CLI:

1. [Подготовьтесь к работе](#preparation).
1. [Установите CLI](#install).
1. [Настройте CLI](#setup).
1. [Протестируйте работу с ресурсами SourceCraft](#test).
1. [Протестируйте работу OpenCode](#opencode).
1. [Используйте AI-навыки](#skills).

## Подготовьтесь к работе {#preparation}

1. [Аутентифицируйтесь](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/auth.md#sign-in) в SourceCraft.
1. [Установите Git](https://git-scm.com/downloads).

## Установите SourceCraft CLI {#install}

SourceCraft CLI устанавливается с помощью скрипта, который:
1. Определяет вашу операционную систему и архитектуру.
1. Скачивает исполняемый файл с последней стабильной версией CLI для вашего окружения.
1. Проверяет работоспособность.
1. Добавляет CLI в переменную окружения `PATH`.
1. Генерирует настройки автодополнения.

{% list tabs group=operating_system %}

- macOS/Linux {#linux-macos}

  {% note warning %}

  Поддерживается macOS не ниже версии 12 [Monterey](https://ru.wikipedia.org/wiki/MacOS_Monterey).

  {% endnote %}

  1. В терминале выполните команду:

      ```bash
      curl -fsSL https://s3.yandexcloud.net/sourcecraft-cli/install.sh | sh
      ```

  1. После завершения установки перезапустите терминал:

      ```bash
      exec -l $SHELL
      ```

- Windows {#windows}

  1. В PowerShell выполните команду:

      ```powershell
      iex (New-Object System.Net.WebClient).DownloadString('https://s3.yandexcloud.net/sourcecraft-cli/install.ps1')
      ```

  1. После завершения установки перезапустите PowerShell.

{% endlist %}

## Настройте SourceCraft CLI {#setup}

Если вы пропустите этап первоначальной настройки, то при запуске любой команды, использующей API SourceCraft, вам все равно будет предложено пройти интерактивную настройку.

1. Чтобы запустить SourceCraft CLI, в терминале выполните команду:

    ```bash
    src
    ```

    При первом запуске будет выполнена проверка обновления, и запущена интерактивная настройка. В дальнейшем обновления будут проверяться автоматически, либо вы можете запросить их с помощью команды [src update](https://sourcecraft.dev/portal/docs/ru/cli-ref/src-update.md).

    Результат:

    ```bash
    Welcome to SourceCraft CLI!
    Let's get you set up.
    ```

    {% note info %}

    Чтобы повторно запустить процесс интерактивной настройки, используйте команду [src init](https://sourcecraft.dev/portal/docs/ru/cli-ref/src-init.md).

    {% endnote %}

1. С помощью клавиш **↑**, **↓** и **Enter** выберите, где сохранить аутентификационные данные:

    ```bash
    SourceCraft Authentication Setup

    Where would you like to store credentials?

    > Keyring (Recommended)
      Filesystem
    ```

    Где:
    * `Keyring` — системное хранилище секретов операционной системы. Это рекомендуемый и более безопасный вариант: аутентификационные данные изолированы от файловой системы, защищены на уровне ОС и недоступны другим процессам без явного разрешения. Подходит для локальных компьютеров.
    * `Filesystem` — файл на диске. Менее безопасный вариант, так как файл потенциально доступен любому процессу, запущенному от имени того же пользователя. Зато этот вариант работает везде, в том числе в средах без графического окружения и системного хранилища секретов, например в виртуальных машинах с минимальным набором компонентов, Docker-контейнерах, WSL и пр.

      {% note info %}

      В окружениях без системного хранилища секретов SourceCraft CLI выдаст предупреждение `⚠️ Keyring is not available on this system` и предложит только вариант `Filesystem`.

      {% endnote %}


1. Выберите способ аутентификации в SourceCraft:

    ```bash
    Which authentication method would you like to use?

    > IAM (Recommended)
      Personal Access Token
    ```

    Где:
    * `IAM` — короткоживущий [IAM-токен](https://yandex.cloud/ru/docs/iam/concepts/authorization/iam-token) Yandex Cloud. Рекомендуемый и более безопасный способ. Аутентификация будет осуществляться с использованием браузера.
    * `Personal Access Token` — [PAT](https://sourcecraft.dev/portal/docs/ru/sourcecraft/security/pat.md). Подходит для систем без браузера, например на виртуальных машинах или в WSL.

      {% note info %}

      В окружениях без браузера SourceCraft CLI выдаст предупреждение `⚠️ IAM token via OAuth is not available on this system` и предложит только вариант `Personal Access Token`.

      {% endnote %}

1. Подтвердите сохранение настроек:

    ```bash
    Save these settings?

    > Yes, save these settings
      No, cancel
    ```

1. (опционально) Настройте [git credential helper](https://git-scm.com/doc/credential-helpers) — инструмент для удобной аутентификации `git` в SourceCraft без необходимости явного использования [SSH-ключей](https://sourcecraft.dev/portal/docs/ru/sourcecraft/security/pat.md) или PAT:

    ```bash
    Configure git credential helper?
    This allows git to automatically authenticate with SourceCraft.

    > Yes (Recommended)
      No
    ```

    {% note tip %}

    Если вы пропустили настройку `git credential helper`, в дальнейшем вы сможете запустить ее с помощью команды [src auth setup-git](https://sourcecraft.dev/portal/docs/ru/cli-ref/src-auth-setup-git.md).

    {% endnote %}

1. (опционально) Подтвердите установку [OpenCode](https://opencode.ai/docs/ru):

    ```bash
    Install AI coding assistant (opencode)?
    A powerful AI-powered coding assistant integrated with SourceCraft.

    > Yes (Recommended)
      No
    ```

    OpenCode будет установлен в изолированную директорию `~/.config/sourcecraft/bin` внутри конфигурации SourceCraft CLI. Таким образом, вы сможете использовать его через `src` для интеграции с Code Assistant и платформой SourceCraft. При этом конфигурация OpenCode, установленного отдельно, не будет изменена, и ей можно будет пользоваться независимо от SourceCraft.

    Результат:

    ```bash
    ✓ Authentication configured successfully!
    ✓ Git credential helper configured!

    Installing opencode...
    ✓ Found latest version: 1.3.13
    Version 1.3.13 already installed
    ✓ Opencode installed successfully!

    ✓ Onboarding complete! You're ready to use SourceCraft CLI.
    ```

1. Если вы выбрали способ аутентификации `IAM`, выполните команду:

    ```
    src auth login
    ```

    Результат:

    ```
    You are going to be authenticated via OAuth at Sourcecraft.
    Authentication web site will be opened.
    After your successful authentication, you will be redirected to cloud console'.

    Press 'enter' to continue...
    ```

    Нажмите **Enter**. 

    В браузере откроется окно аутентификации. Вы можете закрыть его и продолжить работу в терминале.

Утилита SourceCraft CLI настроена и готова к работе.

## Протестируйте работу CLI с ресурсами SourceCraft {#test}

### Посмотрите общую информацию о командах SourceCraft CLI {#src-get-info}

```bash
src --help
```

{% note tip %}

Чтобы посмотреть полный справочник, используйте команду [src reference](https://sourcecraft.dev/portal/docs/ru/cli-ref/src-reference.md).

Подробнее в [справочнике SourceCraft CLI](https://sourcecraft.dev/portal/docs/ru/cli-ref/src.md).

{% endnote %}

### Получите список репозиториев в организации {#get-repo-list}

```bash
src repo list <слаг_организации>
```

Результат:

```bash
SLUG                  DESCRIPTION                                                    VISIBILITY   LAST_UPDATED

my-first-repo         Test repository to understand platform tools.                  private      about 10 months ago 
yc-ci-cd-serverless   Пример развертывания простого веб-приложения в Yandex Cloud.   public       about 1 month ago
test-node-example     My first NodeJS application.                                   internal     about 2 days ago
```

### Склонируйте репозиторий и перейдите в него {#repo-clone}

```bash
src clone <слаг_организации>/<слаг_репозитория>
cd <слаг_репозитория>
```

### Создайте задачу {#issue-create}

1. Выполните команду:

    ```bash
    src issue create
    ```

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


1. Введите название задачи:

    ```bash
    Create Issue
    Create a new issue in <слаг_организации>/<слаг_репозитория>

    Step 1 of 5

    Issue Title
    A descriptive title for the issue (up to 1024 characters)

    > <название_задачи>
    ```

1. Введите описание задачи. Чтобы закончить ввод, используйте сочетание клавиш **Ctrl** + **s**:

    ```bash
    Step 2 of 5

    Description
    Detailed description of the issue

        1 <описание_задачи>
        2 <описание_задачи>
    ```

1. Укажите приоритет:

    ```bash
    Step 3 of 5

    Priority

    ▸ Normal
        Default priority for most issues
        Trivial
        Low impact, nice to have
        Minor
        Small impact, can be addressed later
        Critical
        High impact, needs attention soon
        Blocker
        Blocking progress, must be fixed immediately
    ```

1. Укажите приватность задачи:

    ```bash
    Step 4 of 5

    Visibility

    ▸ Public
        Visible to everyone
        Private
        Only visible to repository members
    ```

1. Подтвердите создание задачи:

    ```bash
    Step 5 of 5

    Create Issue

    ▸ Yes
        No
    ```

    В результате будет выведена полная информация о созданной задаче.

### Получите список задач {#get-issue-list}

```bash
src issue list
```

{% note tip %}

Когда вы находитесь в директории с репозиторием из SourceCraft, по умолчанию команды `src` будут запрашивать информацию именно о ресурсах в нем. Чтобы получить информацию о другом репозитории, используйте параметр `--repo <слаг_организации>/<слаг_репозитория>`.

{% endnote %}

Результат:

```bash
ID   TITLE                 STATUS   PRIORITY   ASSIGNEE     AUTHOR     ▼ CREATED AT            

2    French localization   open     normal     src-user     mr-x       about 1 hour ago    
1    Исправить баги        closed   normal     first-user   mr-x       about 3 months ago  
```

Чтобы получить список задач, назначенных вам, используйте параметр `--assignee=@me`.

### Получите информацию о задаче {#get-issue-info}

```bash
src issue get <идентификатор_задачи>
```

Результат:

```bash
ID:            2
TITLE:         French localization
LABELS:

STATUS:        open
PRIORITY:      normal
ASSIGNEE:      src-user

AUTHOR:        mr-x
UPDATED BY:    src-user
CREATED AT:    about 1 hour ago
UPDATED AT:    3 minutes ago

DESCRIPTION:   Please add French to the app.
```

{% note tip %}

Чтобы посмотреть информацию о запрашиваемом ресурсе, например задаче или репозитории, в интерфейсе SourceCraft, используйте параметр `--web`.

Также вы можете вывести информацию в формате JSON, для этого используйте параметр `--json`. Это может быть полезно, например, когда вы используете SourceCraft CLI для автоматизации.

{% endnote %}

## Протестируйте работу OpenCode в SourceCraft CLI {#opencode}

SourceCraft CLI никак не ограничивает функциональность `opencode`, а расширяет ее. Вы можете продолжать использовать имеющиеся у вас плагины, правила, инструменты и пр.

При запуске через SourceCraft CLI в `opencode` добавляются:
* навык `src-cli` с описанием и руководством по CLI.
* (при нахождении в директории репозитория) информация о том, что репозиторий размещен в SourceCraft, и дополнительные инструкции по работе с ним и CLI.

1. Создайте новую ветку, в которой вы будете решать задачу, полученную на предыдущем шаге:

    ```bash
    git checkout -b feature/issue-2
    ```

1. Запустите в репозитории `opencode`:

    ```bash
    src code
    ```

1. Последовательно вводите запросы к AI-агенту на естественном языке, например:

    ```text
    Получи список задач в репозитории.
    ```

    Агент воспользуется SourceCraft CLI для получения списка задач и выведет их.

    ```text
    Реализуй в коде предложение пользователя из задачи с идентификатором 2 и протестируй код.
    ```

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

    ```text
    Сделай коммит с изменениями, отправь в удаленный репозиторий и создай предложение изменений.
    ```

    С помощью SourceCraft CLI агент создаст предложение изменений и выведет ссылку на него.

    {% note warning %}

    Для более гранулярного контроля за действиями агента вы можете не просить его делать коммит и отправлять изменения в репозиторий, а сделать это самостоятельно:

    ```bash
    git status
    git add . & git commit -m "added improvements according issue-2" & git push
    src pr create
    ```

    {% endnote %}

1. Выйдите из `opencode`:

   ```bash
   exit
   ```

   {% note tip %}

   Также вы можете взаимодействовать с AI-агентом в headless-режиме без перехода в отдельный интерфейс терминала. Для этого используйте команду [src do](https://sourcecraft.dev/portal/docs/ru/cli-ref/src-do.md), например:

   ```bash
   src do "Изучи код в репозитории, расскажи как он устроен и зачем нужен."
   ```

   {% endnote %}

1. Запросите статус проверок предложения изменений на возможность слияния с основной веткой:

    ```bash
    src pr checks <идентификатор_предложения_изменений>
    ```

    Если не указать идентификатор, команда выведет информацию о статусах проверок предложения изменений, соответствующего текущей ветке `git`.

    Результат:

    ```bash
    STATUS:               success                                
                                                               
    CODE REVIEW:          Status: success (0/0 approves)         
                                                               
    CONFLICTS:            Status: success - No conflicts         
                                                               
    CI WORKFLOWS:         security-pipeline1: success (run: 17)  
                          security-pipeline2: success (run: 17)  
                                                               
    CONFIG VALIDATIONS:   -                                      
    ```

## Используйте AI-навыки {#skills}

1. Запустите [AI-навык](https://sourcecraft.dev/portal/docs/ru/sourcecraft/concepts/ai-skills.md) для рецензирования вашего предложения изменений:

    ```bash
    src codereview
    ```

    Если вы находитесь в директории с репозиторием из SourceCraft, AI-агент попробует найти предложение изменений или сравнит текущую ветку с основной, проведет анализ изменений и выведет результаты в терминал.

    {% note tip %}

    Также доступны команды [src prdescription](https://sourcecraft.dev/portal/docs/ru/cli-ref/src-prdescription.md) для [генерации описания предложения изменений](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/generate-description.md) и [src skill](https://sourcecraft.dev/portal/docs/ru/cli-ref/src-skill.md) для запуска пользовательских навыков.

    Попробуйте создать собственный навык по [инструкции OpenCode](http://opencode.ai/docs/skills/) или скачать один из [готовых](https://skills.sh/) и запустить его с помощью команды `src skill <имя_навыка> <аргументы>`.

    {% endnote %}


1. Выполните слияние изменений с основной веткой:

    ```bash
    src pr merge <идентификатор_предложения_изменений>
    ```

    Предложение изменений принято и добавлено в основную ветку репозитория. Чтобы перейти к ветке из другого предложения изменений, используйте команду [src pr checkout](https://sourcecraft.dev/portal/docs/ru/cli-ref/src-pr-checkout.md).

#### Полезные ссылки {#see-also}

* [Справочник SourceCraft CLI](https://sourcecraft.dev/portal/docs/ru/cli-ref/src.md)
* [Релизы SourceCraft CLI](https://sourcecraft.dev/portal/docs/ru/sourcecraft/cli-release-notes.md)
* [Code Assistant](https://sourcecraft.dev/portal/docs/ru/code-assistant/index.md)
* [Работа с REST API SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/api-start.md)
* [Документация OpenCode](https://opencode.ai/docs/ru)
* [Посмотреть квоты в SourceCraft](https://sourcecraft.dev/portal/docs/ru/sourcecraft/operations/view-quotas.md)
<!-- endsource: ru/sourcecraft/operations/cli-quickstart.md -->
