# Установка (/ru/docs/zm/installation)

Установите инструмент Zoom на компьютер, где работает агент, подключите аккаунт и получите
первую встречу. Пакет называется `@wirecat/zoom-cli`, команда — `zm`. Можно использовать уже
настроенное приложение Zoom, создать своё или импортировать текст без приложения и входа.

## Что понадобится [#что-понадобится]

* **Node.js 22.16 или новее в ветке 22.x либо Node.js 24 или новее**, с npm. Поддерживается Bun.
  Установите Node.js с [nodejs.org](https://nodejs.org/en/download), если `node --version` недоступна.
* Linux, macOS или Windows. Откройте терминал этого компьютера для команд ниже.
* Для входа через API — работающее системное хранилище паролей. На macOS это Keychain, на Windows
  Credential Manager, на Linux нужен доступный сервис секретов рабочего стола. На сервере без него
  вход не сохраняется; импорт файлов остаётся доступен.
* Аккаунт Zoom, которому разрешена авторизация приложения. Организация может требовать администратора.

## Установить [#установить]

```sh
npm install -g @wirecat/zoom-cli
zm --version
zm --help
zm doctor
```

Версия и справка печатаются без входа. Doctor проверяет среду и открытые настройки, не обращаясь
к Zoom или базе встреч. Если `zm` не найден, откройте терминал заново и проверьте папку глобальных
команд npm в PATH — списке каталогов, где терминал ищет команды.

## Выберите способ подключения [#выберите-способ-подключения]

| Что у вас есть | Следующее действие |
| --- | --- |
| Уже созданное приложение Zoom | Откройте учётные данные, включите Public Client OAuth и скопируйте **Public Client ID**; проверьте таблицу ниже |
| Приложение команды, включая WireCat | Получите **Public Client ID** у владельца и проверьте доступ вашего пользователя; затем выполните те же шаги входа |
| Приложения нет | [Создайте своё](/llms.mdx/docs/ru/zm/zoom-app/content.md#create-your-own-app), затем вернитесь с Public Client ID |
| Только файлы расшифровок | Пропустите вход и перейдите к [импорту без приложения](#import-without-a-zoom-app) |

Приложение Zoom — регистрация разрешений в Marketplace, отдельно от аккаунта и программы звонков.
Файл учётных данных не нужен: настройте Public Client ID и подтвердите аккаунт в браузере. Для `zm` нужно явно задать ID; установка сама приложение не выбирает. Приложение в разработке
может быть ограничено аккаунтом разработчика. Один ID не даёт доступ к чужим данным.

Перед входом владелец проверяет настройки в той же среде Development или Production, что и выбранный ID:

| Настройка | Требуемое значение |
| --- | --- |
| Тип / управление | General app / User-managed |
| Use Public Client OAuth | Включено; копируйте **Public Client ID**, не обычный Client ID или Client Secret |
| OAuth Redirect URL | `https://wirecat.dev/zoom-callback` |
| OAuth Allow Lists | Включает `https://wirecat.dev/zoom-callback` |
| Scopes | [Права чтения встреч](/llms.mdx/docs/ru/zm/zoom-app/content.md#what-the-manifest-asks-for); права архива/управления только для этих задач |

## Первый запуск [#первый-запуск]

Замените `<public-client-id>` на скопированное значение без скобок. Выполняйте команды по одной;
оставьте терминал входа открытым при подтверждении в браузере:

```sh
zm config set zoom.clientId <public-client-id>
zm config set source api
zm login
```

1. Войдите в нужный аккаунт Zoom в браузере и изучите разрешения.
2. Нажмите **Allow**. Zoom открывает страницу возврата WireCat, которая передаёт ответ
   ожидающему процессу `zm` на компьютере.
3. Вернитесь в терминал. Вход завершён, когда `zm` сообщает `loggedIn: true` и возвращает
   приглашение. Одного подтверждения в браузере недостаточно.
4. Если терминал ждёт, скопируйте `code=…&state=…` или весь URL со страницы возврата,
   вставьте в тот же терминал и нажмите Enter до пятиминутного срока. Если процесс уже завершился,
   выполните `zm login` заново и подтвердите новую попытку.

Проверьте сохранённый сеанс и выберите **профиль** — локальную метку данных встреч:

```sh
zm session status --json
zm config set account.profile personal
zm pull --lookback-days 7
zm meetings list --json
```

Сеанс должен сообщить `loggedIn: true`. Успешная загрузка сохраняет доступные встречи организатора;
список даёт локальные ID. Откройте встречу с ID из него:

```sh
zm meetings show <meeting-id> --json
zm meetings transcript <meeting-id> --json
```

Список может быть пустым, если в периоде нет доступных встреч организатора. Пустая расшифровка
означает отсутствие текста от Zoom; разрешение его не создаёт. Проверьте [хранение текста](/llms.mdx/docs/ru/zm/zoom-app/content.md#before-your-first-zm-pull)
и при необходимости загрузите ранний период. Ошибка scope называет нужное право; после его
добавления владельцем подтвердите приложение повторно.

Локальный профиль не переключает аккаунт Zoom, выбранный в браузере. Для разделения аккаунтов
см. [сеансы](/llms.mdx/docs/ru/zm/sessions/content.md#select-a-local-profile), а при незавершённом подтверждении —
[восстановление входа](/llms.mdx/docs/ru/zm/troubleshooting/content.md#login).

## Импорт без приложения Zoom [#импорт-без-приложения-zoom]

Используйте разрешённую для скачивания VTT-расшифровку или файл от организатора. Положите в папку
и назовите по дате, времени и теме, например `2026-10-01_1000_example-planning.vtt`.
Время имени интерпретируется в заданном часовом поясе:

```sh
zm config set account.profile personal
zm config set files.timezone Europe/Madrid
zm import ./downloaded-transcripts
zm meetings list --json
```

Приложение, браузерный вход и токен OAuth не нужны. Импорт читает обычные `.vtt` прямо в папке,
не обходит подпапки и не выводит участников из имён говорящих. См. [скачанные расшифровки](/llms.mdx/docs/ru/zm/archive/content.md#downloaded-transcripts).

## Дайте агенту доступ [#дайте-агенту-доступ]

Когда первая встреча сохранена, установите инструкции для терминального агента:

```sh
zm skill install --for agents
```

Это каталог Codex/Gemini; для Claude Code используйте `--for claude`, а без `--for` устанавливаются
оба. Для приложения с MCP откройте [подключение агента](/llms.mdx/docs/ru/zm/mcp/content.md). Попробуйте запрос:

> ```text prompt
> Найди встречу, которую я только что импортировал или загрузил. Покажи дату, основное обсуждение и один подтверждающий отрывок. Укажи, отсутствует ли текст или информация об участниках.
> ```

## Где хранятся файлы [#где-хранятся-файлы]

Инструмент создаёт открытый `config.json` при настройке; это не скачанный файл учётных данных. `zm doctor --json` показывает его путь. Настройки используют каталог приложений вашей платформы. `ZM_CONFIG_DIR` выбирает другой каталог
и меняет службу ключей входа. Встречи хранятся в общей локальной `wirecat.db`; `MESSAGING_STORE`
выбирает другую базу. Записи сохраняются только в заданную папку. См. [настройки](/llms.mdx/docs/ru/zm/configuration/content.md).

## Обновить или удалить инструмент [#обновить-или-удалить-инструмент]

```sh
npm install -g @wirecat/zoom-cli
zm --version
```

Чтобы удалить команду:

```sh
npm uninstall -g @wirecat/zoom-cli
```

Удаление пакета не стирает общую базу встреч или папки записей. Для отзыва разрешения удалите
доступ приложения в Marketplace. Команды выхода нет; [сеансы](/llms.mdx/docs/ru/zm/sessions/content.md#remove-access)
описывают доступные действия.

## Дополнение команд [#дополнение-команд]

`zm complete -- <words...>` отвечает на запросы дополнения оболочки, но не устанавливает его
в оболочку. `zm commands --json` перечисляет команды и параметры для агентов и скриптов.

Когда первая встреча видна, [найдите отрывок и сохраните ссылку на источник](/llms.mdx/docs/ru/zm/search/content.md).
