---
name: yacli-shared
description: "CLI для Яндекс сервисов: аккаунты, авторизация, формат вывода. Прочитай перед использованием почты, календаря или диска. Используй при вопросах про настройку, подключение, вход в аккаунт Яндекса."
metadata:
  author: NextStat
---

# yacli — общая основа

yacli — CLI для Яндекс Почты, Календаря и Диска. Все команды возвращают JSON.

## Формат вывода

Успех: `{"ok": true, ...}`. Ошибка: `{"ok": false, "code": "...", "message": "..."}`.

`--format table` — человекочитаемый вид. По умолчанию `--format json`.

## Коды завершения

| Код | Значение |
|-----|----------|
| 0 | Успех |
| 1 | Ошибка пользователя (валидация, авторизация, не найдено) |
| 4 | Ошибка конфигурации или ввода/вывода |
| 5 | Ошибка сети или API |

## Управление аккаунтами

yacli поддерживает несколько аккаунтов. У каждого есть короткий алиас.

| Команда | Описание |
|---------|----------|
| `yacli add <EMAIL> [ALIAS]` | Добавить аккаунт |
| `yacli accounts` | Список аккаунтов |
| `yacli use <ALIAS>` | Переключить текущий аккаунт |
| `yacli whoami` | Показать текущий аккаунт |
| `yacli status [--account ALIAS]` | Показать подключённые сервисы |

## Авторизация

Каждый сервис авторизуется отдельно:
- **Почта**: OAuth XOAUTH2 (по умолчанию) или пароль приложения
- **Календарь**: только пароль приложения
- **Диск**: только OAuth

| Команда | Описание |
|---------|----------|
| `yacli login [SERVICE]` | Подключить почту, календарь или диск |
| `yacli login mail --app-password ПАРОЛЬ` | Почта через пароль приложения |
| `yacli login calendar --app-password ПАРОЛЬ` | Календарь через пароль приложения |
| `yacli logout [SERVICE] [--account ALIAS]` | Отключить один или все сервисы |

SERVICE: `mail`, `calendar`, `disk`. Без аргумента — подключить все.

## Глобальные флаги

- `--format json|table` — формат вывода (по умолчанию: json)
- `--account ALIAS` — целевой аккаунт (по умолчанию: текущий)
- `-h, --help` — справка
- `-V, --version` — версия

## Несколько аккаунтов

Передавай `--account ALIAS` при работе не с текущим аккаунтом:

```
yacli mail list --account work
yacli calendar events --account personal
```
