# Подключение, устройства и профили (/ru/docs/wa/sessions)

Откройте эту страницу при первой привязке `wa` к WhatsApp, добавлении второго аккаунта или сообщении `wa` о непривязанном профиле. Вы узнаете, как подключить устройство, проверить выбранный аккаунт, отключить его и найти данные, которые `wa` использует для сохранения доступа.

> ⚠️ **`wa` — неофициальный клиент вашего аккаунта WhatsApp.** WhatsApp может блокировать такие аккаунты, в том числе за массовую рассылку и сообщения незнакомым людям. `wa` меняет данные только по явной команде, ограничивает отправку и приостанавливает изменения, когда WhatsApp требует снизить частоту запросов. Не отправляйте массовые или нежелательные сообщения ([ограничения](/llms.mdx/docs/ru/wa/limits/content.md)).

Во-первых, слова, которые используются на этой странице:

* **Связанное устройство**: `wa` на этом компьютере, как его видит WhatsApp. Вы подключаете его с телефона так же, как вы подключаете WhatsApp Web, и телефон отображает его в разделе «Настройки» → «Связанные устройства». Его ключи живут в одном файле на этом компьютере. Тот, у кого есть этот файл, может читать и отправлять его от вашего имени, поэтому относитесь к нему как к своему паролю.
* **Отправка истории**: копия ваших последних чатов отправляется один раз через несколько секунд после установления связи. `wa` сохраняет то, что поступает; более старые сообщения одного чата можно запросить на телефоне позже ([старая история](/llms.mdx/docs/ru/wa/archive/content.md#older-history-from-your-phone)).
* **Профиль**: имя одного связанного устройства на этом компьютере со своими ключами и настройками. Каждая команда, использующая аккаунт, дает ей имя, поэтому при настройке вы выбираете одно имя (`wa personal setup`) и используете его в дальнейшем ([profiles](#profiles)).

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

`wa personal setup` проводит первый запуск в пять шагов: папки этого компьютера, ссылка, аккаунт, пять чатов из локального хранилища и навык агента (`--agent codex`, `cursor`, `claude`, `gemini`, `all` или `none`). Подождите около пяти минут, большая часть из которых — история. Запустите его в терминале. Профиль, связанный ранее, проверяется без повторной привязки, и ничего не запрашивается. Перед QR-кодом или кодом сопряжения установите и `session start`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-session-start "Справочник команды: wa session start") напечатайте приведенное выше предупреждение в stderr, один раз для каждой ссылки. `wa personal session start` — это команда только для ссылки.

## Связывание [#связывание]

```sh
wa personal session start          # a QR code in the terminal
wa personal session start phone    # your number, typed in the terminal, then a code to type on the phone
```

**QR:** отсканируйте код в WhatsApp на телефоне: Настройки → Связанные устройства → Привязать устройство. Код обновляется, пока вы ждете.**Телефон:** введите свой номер в международном формате, когда `wa` спросит. `wa` показывает восьмизначный код сопряжения; На телефоне откройте «Настройки» → «Связанные устройства» → «Связать устройство» → «Связать с номером телефона» и введите его. Число поступает в механизм на входе, а не в качестве аргумента, поэтому другие программы на этом компьютере не видят его в списке процессов.

Сразу после этого телефон отправляет вашу историю. `session start`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-session-start "Справочник команды: wa session start") сохраняет то же соединение открытым, сохраняет все поступающее в локальное хранилище и останавливается, когда телефон молчит в течение 45 секунд или при нажатии Ctrl+C. Ctrl+C там или `--timeout` завершает только это ожидание: устройство остается подключенным, все поступившее сохраняется и подсчитывается, а команда завершается кодом выхода `0`. `wa personal setup` ждет так же, затем переходит к оставшимся шагам в соответствии с обычным для команды лимитом времени, начиная заново. Затем продолжайте получать с помощью `wa personal server install` ([локальное хранилище](/llms.mdx/docs/ru/wa/archive/content.md)).

### Когда агент запускает ссылку [#когда-агент-запускает-ссылку]

Ваш AI-агент может установить для вас соединение. Без терминала `wa` печатает QR-код в виде обычного текста, и агент вставляет его в чат, чтобы вы могли его отсканировать:

```sh
wa personal setup --agent claude --json
wa personal session start qr
```

Агент выполняет команду в фоновом режиме, поскольку ожидает вашего сканирования. WhatsApp отправляет новый код через 60 секунд, а затем каждые 20 секунд; агент вставляет каждый новый и говорит, что срок действия старого истек. При использовании `--json` каждый код также представляет собой одну строку в stderr: `{"event":"qr","qr":{"text":…,"expires_at":null,"scan":…}}`. Текст имеет ширину около 73 столбцов. Связывание через MCP не предлагается: приложение, в котором есть только MCP, попросит вас выполнить команду. Код сопряжения вы можете запустить в своем собственном терминале: агент никогда не спросит у вас номер телефона или код в чате.

## Проверить и отсоединить [#проверить-и-отсоединить]

```sh
wa personal account show     # who this profile is linked as; the phone number shows only its last four digits
wa account list              # every profile on this computer, and the account each is linked as
wa personal session end      # unlink the device on WhatsApp's side, and delete its keys here
```

## Измените свое имя, информацию и фото [#измените-свое-имя-информацию-и-фото]

```sh
wa personal account update --first-name Ana --last-name Silva   # WhatsApp keeps one name: "Ana Silva"
wa personal account update --description "Back on Monday"       # the "about" line
wa personal account update --photo ~/me.jpg                     # the profile photo, a square JPEG
```

Изменение имени отправляется как настройка аккаунта через `wa`. У недавно привязанного устройства может ещё не быть ключей настроек WhatsApp: оставьте `serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve") работающим и повторите попытку позже.

Для фотографии профиля `wa` требует квадратный JPEG со стороной от 190 до 720 пикселей, как для фотографии группы. `wa` не преобразует и не обрезает изображение и отклоняет PNG или WebP до изменения данных. Если имя, описание и фотография заданы вместе, они меняются в этом порядке; при последующей ошибке указано, что уже изменилось. Удаляйте фотографию на телефоне.

`wa personal session end` удаляет устройство **на стороне WhatsApp тоже**: оно исчезает из списка связанных устройств телефона. Он оставляет локальное хранилище такой, какая она есть. Пока `serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve") выполняется для профиля, он отказывается (код выхода `12`): сначала остановите `serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve") с помощью `wa personal server stop` или Ctrl+C, где он запускается.

## Одно соединение на устройство [#одно-соединение-на-устройство]

WhatsApp допускает одно подключение для каждого подключенного устройства; второй заставляет WhatsApp отказаться от первого. Таким образом, одна команда `wa` может подключить профиль за раз. `serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve"), `watch`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-watch "Справочник команды: wa watch") и каждая подключающаяся команда сначала блокируют устройство; другая команда для того же профиля отклоняется и называет владельца:

```text
this WhatsApp login is in use by serve (pid 4242)
```

`serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve") является исключением. Пока он работает, команда для того же профиля, который будет подключаться, не снимает блокировку: она выполняется внутри `serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve"), при соединении `serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve"). Он достигает `serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve") через сокет рядом с файлом блокировки `serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve") (`<state>/serve/<profile>.sock`, режим `0600`, поэтому открыть его может только ваш собственный пользователь). Сюда входят отправки, редактирование, удаления, реакции, пометка прочитанных, загрузки, групповые и персональные команды, `watch`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-watch "Справочник команды: wa watch"), `doctor --online`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-doctor "Справочник команды: wa doctor") и сервер MCP `wa <profile> mcp`. Защита отправки и разрешения профиля по-прежнему применяются. Команда, запущенная таким образом, никогда не запрашивает: для записи на уровне разрешений `ask` требуется `--yes` (`--allow-dangerous` для удаления), или она отклоняется и говорит об этом.

* **Не через `serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve"):** связывание и отключение (`session start`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-session-start "Справочник команды: wa session start"), `session end`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-session-end "Справочник команды: wa session end"), `setup`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-setup "Справочник команды: wa setup")) и `mcp --http`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-mcp "Справочник команды: wa mcp").
  `chats list`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-chats-list "Справочник команды: wa chats list") и `chats show`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-chats-show "Справочник команды: wa chats show") читают локальное хранилище, поэтому никогда не подключаются. Запуски `--offline` и `--dry-run` вообще не подключаются.
* **`serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve") запускается или не отвечает:** команда не выполнена. Он никогда не открывает второе соединение.
* **`wa` был обновлен, а `serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve") не перезапущен:** команда выполняется внутри более старой версии `serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve") с ее кодом. Когда эти двое говорят о разных версиях реле, команда отклоняется и предлагается перезапустить `serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve"). `wa upgrade`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-upgrade "Справочник команды: wa upgrade") сам перезапускает работающие серверы; в противном случае используйте `wa <profile> server restart`.
* Команды **Windows:** не проходят через `serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve"). Во время работы `serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve") команда подключения отклоняется, как указано выше, с кодом завершения 12.

Если `serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve") не запущен, каждая команда подключается самостоятельно. Пока один из них удерживает устройство, или `wa personal mcp`, который сохраняет соединение в течение двух минут после вызова, `serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve") не может запуститься. Операции чтения никогда не подключаются, поэтому они работают рядом с любым из них.

## Срок привязки устройства [#срок-привязки-устройства]

До его завершения: по `wa personal session end`, через список связанных устройств на телефоне или самим WhatsApp. Телефон должен время от времени подключаться к Интернету, иначе WhatsApp отключит подключенные устройства. Если устройство отключено, каждая подключающаяся команда сообщает об этом с кодом выхода `4`; снова привяжите устройство через `wa personal session start` ([WhatsApp вышел из системы на этом устройстве](/llms.mdx/docs/ru/wa/troubleshooting/content.md#whatsapp-logged-this-device-out)).

## Профили [#профили]

Профиль — это отдельное связанное устройство: свои ключи, настройки, получатели и запуски. Он назван по **первому слову**, а не по опции:

```sh
wa personal chats list     # profile "personal"
wa work chats list         # profile "work"
export WA_PROFILE=work     # the same for the whole shell session
```

**Первое слово — это профиль, если оно не является командой.** Поэтому профиль не может называться `chats`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-chats "Справочник команды: wa chats"), `messages`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-messages "Справочник команды: wa messages") или каким-либо другим командным словом. Имена состоят из букв, цифр, точки, тире и подчеркивания, начинающиеся с буквы или цифры.

Порядок: побеждает первое совпадение: первое слово, затем `WA_PROFILE`. В противном случае команда, использующая аккаунт, останавливается с кодом выхода `2` и выводит список профилей на этом компьютере. `wa` никогда не выбирает ни одного, даже единственного. Команды, не использующие аккаунт, выполняются без профиля: `--help`, `--version`, `commands`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-commands "Справочник команды: wa commands"), `skill show`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-skill-show "Справочник команды: wa skill show"), `account list`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-account-list "Справочник команды: wa account list") и `config show`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-config-show "Справочник команды: wa config show").

**`WA_PROFILE_LOCK` прикрепляет процесс к одному профилю.** Установите его там, где запускается агент, и первое слово или `WA_PROFILE`, называющее любой другой профиль, будет отклонено (код выхода `5`). Без него агент мог бы выбрать профиль с меньшими ограничениями.

Для чего предназначен каждый профиль: [профили](/llms.mdx/docs/ru/wa/profiles/content.md).

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

| Что | Где |
| --- | --- |
| ключи устройства | `~/.local/share/whatsapp-cli/profiles/<profile>/private.db`, доступен для чтения только вашему пользователю |
| кто держит одну связь | `private.db.lock` рядом |
| чаты и сообщения | локальное хранилище WireCat, совместно используемая каждым интерфейсом командной строки WireCat, `~/.local/share/WireCat/wirecat.db` |
| настройки | `~/.config/whatsapp-cli/config.json`; никогда не секрет |

`WA_CONFIG_DIR`, `WA_STATE_DIR` и `WA_CACHE_DIR` перемещают три папки ([ссылка на конфигурацию](/llms.mdx/docs/ru/wa/configuration-reference/content.md)).

## Далее [#далее]

* [Читать свои первые чаты](/llms.mdx/docs/ru/wa/usage/content.md)
* [Настройки и порядок их разрешения](/llms.mdx/docs/ru/wa/configuration/content.md)
* [Что достигает диска, а что никогда](/llms.mdx/docs/ru/wa/security/content.md)
