# Огляд CLI

`ml-cli` – це інтерфейс командного рядка для локального `httpServer` MoreLogin. Він перетворює аргументи CLI на HTTP-запити та пересилає їх до локальних API, відкритих клієнтом MoreLogin.

## Огляд

**Для кого це?**
Інженери DevOps, інженери з автоматизації контролю якості та розробники, які віддають перевагу роботі в терміналі або потребують інтеграції MoreLogin у конвеєри CI/CD (наприклад, GitHub Actions, Jenkins або сценарії оболонки).

**Що він може зробити?**

- Викликати локальні API MoreLogin безпосередньо з терміналу без написання коду запиту HTTP.
- Керуйте середовищем браузера, проксі-серверами, хмарними телефонами та розкладами за допомогою єдиного інтерфейсу.
- Використовуйте стабільні позначки CLI замість ручного створення корисних навантажень JSON.


**Як почати?**

1. Прочитайте **Попередні умови** нижче.
2. Завантажте та встановіть CLI для вашої платформи.
3. Перегляньте [Швидкий старт](/uk/cli/quick-start), щоб виконати першу команду.


## передумови

Перш ніж використовувати `ml-cli`, переконайтеся, що виконано такі вимоги:

- **Настільний клієнт MoreLogin** встановлено та працює на тій же машині
- У вас є активний обліковий запис MoreLogin з **обліковими даними API** (ID API + ключ API)


## Завантаження та встановлення

Завантажте найновіший двійковий код `ml-cli` для вашої платформи:

| Платформа | Архітектура | Посилання |
|  --- | --- | --- |
| вікна | x64 | [завантажити](https://get.morelogin.com/client/prod/win/x64/2.6.1/ml-cli.exe) |
| macOS | x64 (Intel) | [завантажити](https://get.morelogin.com/client/prod/mac/x64/2.6.1/ml-cli) |
| macOS | arm64 (Apple Silicon) | [завантажити](https://get.morelogin.com/client/prod/mac/arm64/2.6.1/ml-cli) |
| Linux | x64 | [завантажити](https://get.morelogin.com/client/prod/linux/x64/2.6.1/ml-cli) |


### вікна

1. Створіть каталог для CLI, наприклад `C:\Program Files\MoreLogin\`:

```powershell
New-Item -ItemType Directory -Force -Path "C:\Program Files\MoreLogin"
```
2. Перемістіть завантажений `ml-cli.exe` у цей каталог.
3. Додайте каталог до вашої системи `PATH`:

```powershell
# Add to the current user's PATH permanently
$currentPath = [Environment]::GetEnvironmentVariable("Path", "User")
[Environment]::SetEnvironmentVariable("Path", "$currentPath;C:\Program Files\MoreLogin", "User")
```
4. **Перезапустіть термінал** (або відкрийте новий), щоб зміни набули чинності.
5. Підтвердити:

```powershell
ml-cli --version
```


### macOS

1. Зробіть двійковий виконуваний файл:

```bash
chmod +x ml-cli
```
2. Перемістіть його в каталог у вашому `PATH`:

```bash
sudo mv ml-cli /usr/local/bin/
```
> Якщо `/usr/local/bin` не існує, спочатку створіть його: `sudo mkdir -p /usr/local/bin`
3. У macOS завантажений двійковий файл може бути заблокований Gatekeeper. Видаліть атрибут карантин:

```bash
xattr -d com.apple.quarantine /usr/local/bin/ml-cli
```
4. Підтвердити:

```bash
ml-cli --version
```


### Linux

1. Зробіть двійковий виконуваний файл:

```bash
chmod +x ml-cli
```
2. Перемістіть його в каталог у вашому `PATH`:

```bash
sudo mv ml-cli /usr/local/bin/
```
3. Підтвердити:

```bash
ml-cli --version
```


Після встановлення перегляньте [Швидкий старт](/uk/cli/quick-start), щоб підключитися до клієнта MoreLogin і виконати першу команду.

## Основні можливості

Поточний CLI охоплює такі групи ресурсів:

- статус служби та логін
- керування середовищем браузера через `env`
- хмарне керування телефоном через `cloudphone`
- керування групою через `group`
- керування тегами через `tag`
- керування проксі через `proxy`
- хмарне керування розкладом телефону через `schedule`


## Модель запиту

CLI підтримує два стилі введення:

- явні позначки, наприклад `--env-id` або `--group-name`
- необроблений JSON через `--json-data`


Їх можна комбінувати. Правила злиття:

- `--json-data` надає базове тіло запиту
- явні позначки CLI замінюють відповідні ключі з `--json-data`


Це корисно для кінцевих точок із багатьма полями або вкладеними корисними навантаженнями, де виділені прапорці будуть занадто важкими.

## Коди виходу

| Код | Значення |
|  --- | --- |
| `0` | HTTP-запит виконано та отримано відповідь. Перевірте тіло JSON на наявність успіху чи невдачі. |
| `1` | Не вдалося перевірити локальний CLI, або команда не підтримується на поточній платформі. |
| `2` | Помилка вирішення порту, не вдалося проаналізувати JSON або не вдалося надіслати запит. |


## Роздільна здатність портів і усунення несправностей

CLI має знайти локальний порт `httpServer` для надсилання запитів. Він перевіряє в такому порядку:

1. Прапор `--port` — явно передавати порт під час кожного виклику
2. Змінна середовища `ML_PORT` — установлюється один раз за сеанс
3. Автоматичне виявлення IPC — CLI зчитує порт із локального каналу IPC (конфігурація не потрібна)


Шляхи IPC за замовчуванням:

| Платформа | шлях |
|  --- | --- |
| macOS / Linux | `/tmp/MoreLogin-cli` |
| вікна | `\\.\pipe\MoreLogin-cli` |


Якщо ви бачите помилку **"Не вдалося виявити порт MoreLogin"**, перевірте:

- Чи працює настільний клієнт MoreLogin?
- Якщо використовується `--port`, чи правильний номер порту?
- Чи існує `/tmp/MoreLogin-cli` у Linux / macOS?


## Карта документації

- [Швидкий початок](/uk/cli/quick-start)
- [Команди](/uk/cli/commands)