# Управление группами (/ru/docs/wa/groups)

Используйте эту страницу, когда вы участвуете в группах WhatsApp или запускаете ее и хотите, чтобы вам помогали не отставать: находить вопросы, на которые никто не ответил, подводить итоги недели, вести список того, что вас ждет, и подсчитывать активность группы. Чтение отмечает, что ничего не прочитано, поэтому проверка группы не сообщает ее членам, что вы ее просматривали.

Несколько слов на этой странице:

* **Идентификатор группы** заканчивается на `@g.us` (`120363000000000001@g.us`). `wa personal chats list 'kind:group' --offline` перечисляет ваши группы с их идентификаторами; имя группы также работает, если оно есть только в одном чате.
* **Администратор** – это участник с правами управления группой. Некоторые команды учитывают только ваши ответы и ответы администраторов.
* **Локальная база данных** — это копии сообщений, которые `wa` хранит на этом компьютере, заполненные путем нажатия истории телефона и
  `serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve"). Отчеты и задачи используют его, поэтому видят только то, что пришло.
* **Задание** – это что-то, что вас ждет, например вопрос, на который никто не ответил. `wa` открывает и закрывает задачи в локальном хранилище.

## Что можно сделать [#что-можно-сделать]

| Задача | Команда |
| --- | --- |
| Найдите вопросы, которые ждут ответа | `wa personal review --unanswered` |
| Итоги недели: решения, обещания, открытые вопросы | `wa personal review 'date>7d'` |
| Держите список того, что вас ждет | `wa personal tasks list` |
| Смотрите активность недели | `wa personal stats chats show --offline` |
| Посмотреть одну группу и кто в ней | `wa personal chats show`, `chats members list`[↗](/llms.mdx/docs/ru/wa/commands-admin/content.md#wa-chats-members-list "Справочник команды: wa chats members list") |
| Удалить сообщение для всех, как администратор группы | `wa personal messages delete --for-everyone` |
| Создайте группу, присоединитесь к ней по ее ссылке или покиньте | `wa personal chats create`, `chats join`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-chats-join "Справочник команды: wa chats join"), `chats leave`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-chats-leave "Справочник команды: wa chats leave") |
| Добавляйте или удаляйте людей, назначайте кого-нибудь администратором | `wa personal chats members add`, `chats admins add`[↗](/llms.mdx/docs/ru/wa/commands-admin/content.md#wa-chats-admins-add "Справочник команды: wa chats admins add") |
| Переименуйте группу, установите или удалите ее фотографию или измените тех, кто может добавлять людей | `wa personal chats update` |
| Показать или заменить ссылку-приглашение | `wa personal chats links show`, `chats links reset`[↗](/llms.mdx/docs/ru/wa/commands-admin/content.md#wa-chats-links-reset "Справочник команды: wa chats links reset") |
| Впустить или отклонить людей, которые попросили присоединиться | `wa personal chats requests list`, `chats requests confirm`[↗](/llms.mdx/docs/ru/wa/commands-admin/content.md#wa-chats-requests-confirm "Справочник команды: wa chats requests confirm") |
| Подпишитесь на канал, прочитайте его публикации или отмените подписку | `wa personal chats join`, `messages sync`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-messages-sync "Справочник команды: wa messages sync"), `chats leave`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-chats-leave "Справочник команды: wa chats leave") ([каналы](/llms.mdx/docs/ru/wa/usage/content.md#channels)) |
| Публикация на канале, который вы ведете | `wa personal messages send` ([каналы](/llms.mdx/docs/ru/wa/usage/content.md#channels)) |

Каждая опция находится в [справке по команде](/llms.mdx/docs/ru/wa/commands/content.md).

## С агентом [#с-агентом]

Ваш ИИ-агент (например, Claude Code, Codex, Cursor или Gemini CLI) может выполнить эти проверки за вас. Агенту с терминалом необходим [ва навык](/llms.mdx/docs/ru/wa/recipes/content.md#once-first); агенту в приложении без терминала необходим [сервер MCP](/llms.mdx/docs/ru/wa/mcp/content.md).

Имена, сообщения и результаты, приведенные ниже, являются вымышленными.

### Кто ждёт ответа [#кто-ждёт-ответа]

**Ваш запрос:**> Что в походной группе ждали ответа более четырех часов?

**Команда:**

```sh
wa personal review 'chat:120363000000000001@g.us' --unanswered 4h --json
```

**Пример ответа агента:**

> **2 вопроса ждут ответа.**

\| Человек | Вопрос | Ожидание |

>

\| --- | --- | --- |

>

\| Лена | Во сколько мы выезжаем в субботу? | 6 часов |

>

\| Сэм | Палатки общие? | 12 часов |

Знак вопроса за пределами ссылки или ответ вам или администратору открывает вопрос; ваш ответ или ответ администратора закрывает его.

### Еженедельный отчет [#еженедельный-отчет]

**Ваш запрос:**

> Подвести итоги недели в походной группе.

**Команда:**

```sh
wa personal review 'chat:120363000000000001@g.us date>7d' --json
```

**Пример ответа агента:**

> **Решено:** выйти в 7:00 со станции.
>
> **Привержены:** Лена — еда; Сэм — палатки.
>
> **Все еще открыто:** кто принесет кастрюлю.

### По расписанию [#по-расписанию]

Для списка открытых вопросов агент не нужен: это обычная команда, читающая только локальное хранилище.

```cron
0 9,21 * * * wa personal review 'chat:120363000000000001@g.us' --unanswered --json >> ~/hiking-open.jsonl 2>> ~/wa-cron.log
```

cron запускает задания с почти пустой средой: см. [выполнение по расписанию](/llms.mdx/docs/ru/wa/recipes/content.md#running-on-a-schedule).

## Что тебя ждет [#что-тебя-ждет]

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

– **Чат один на один:** вопрос, на который вы не ответили, и сообщение, в котором вы упоминаетесь.

* **Группа**: только вопрос, отвечающий на ваше сообщение, и упоминание о вас. Вопросы других людей – не ваши задачи.
* **Канал или чат с самим собой:** ничего.

Ваш ответ закрывает задачу. Чтобы записать каждый вопрос в группе, для кого бы он ни был, отметьте группу. В группе с тегами прямой ответ любого участника, кроме того, кто задал вопрос, также закрывает вопрос; более позднее сообщение, которое не отвечает на него, ничего не закрывает:

```sh
wa personal tags add --chat 120363000000000001@g.us watch-tasks
```

При первом заполнении локальной базы задач из вашей истории не открываются; более поздние сообщения делают. Чтобы превратить историю группы в задачи, составьте список того, что будет открываться, а затем откройте это:

```sh
wa personal tasks scan 120363000000000001@g.us
wa personal tasks scan 120363000000000001@g.us --last 300 --yes
```

Когда кто-то обещает вам что-то, сохраните это в качестве своей задачи и перечислите, что другие вам должны. Указатель сообщения, ключ задачи `PR-4` и другие идентификаторы в этом разделе созданы; реальные берите из поиска, списка или `tasks list`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-tasks-list "Справочник команды: wa tasks list"):

```sh
wa personal tasks add msg:whatsapp/100000000000009%40lid/120363000000000001%40g.us/3EB0A1B2C3D4E5F6A7B8 \
  --type promise --category other --assignee sender
wa personal tasks list "assignee:any state:open"
```

`--assignee sender` — тот, кто отправил сообщение; `--assignee person:<id>` называет кого-то другого, а `tasks update <task> --assignee none`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-tasks-update "Справочник команды: wa tasks update") очищает его. Задача, у которой нет исполнителя, — это нормально: лучше, чем пропущенная.Посмотрите, что вас ждет, сначала самые старые, потом только вопросы и упоминания в одной группе:

```sh
wa personal tasks list state:open
wa personal tasks list 'chat:120363000000000001@g.us (kind:question OR kind:mention)'
```

Добавьте то, что правила не видят, например данное вами обещание, с помощью локатора сообщения из поиска или списка:

```sh
wa personal tasks add msg:whatsapp/100000000000009%40lid/120363000000000001%40g.us/3EB0A1B2C3D4E5F6A7B8 \
  --type promise --category other
```

`tasks categories`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-tasks-categories "Справочник команды: wa tasks categories") перечисляет категории, которые может принимать задача. Если задача может быть той же вакансией, что и открытая, `tasks add`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-tasks-add "Справочник команды: wa tasks add") откажется с кодом завершения `2` и выведет список кандидатов; повторите с `--into <task>` или `--new`.

Закройте задачу, которая не требует ответа:

```sh
wa personal tasks close PR-4 --as dismissed --reason no-reply-needed
```

ИИ-агент, который закрывает задачу, указывает, насколько она уверена в `--certainty`, от 0 до 1. Ниже порога локального хранилища (`task_agent_close_min`, 0,8 по умолчанию) задача остается открытой с предложением закрытия. `tasks list close:suggested`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-tasks-list "Справочник команды: wa tasks list") находит их; подтвердите его с помощью `tasks close <task>`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-tasks-close "Справочник команды: wa tasks close") или откажитесь от него с помощью `tasks reject <task>`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-tasks-reject "Справочник команды: wa tasks reject").

## Номера группы [#номера-группы]

```sh
wa personal stats chats show 120363000000000001@g.us --offline
wa personal stats chats show 120363000000000001@g.us --offline --since-time 30d --by week
```

Сообщения, активные участники, ответы, реакции и ответы на вопросы учитываются из локального хранилища за период 7 дней, если `--since-time` не указано иное. Подсчет охватывает только то, что хранится в локальном хранилище; с натяжкой до ссылки `wa` там нет, поэтому число - это минимум, а не доказательство молчания. `members` подсчитывает соединения и оставляет из локального хранилища те, которые перечисляет `chats events`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-chats-events "Справочник команды: wa chats events"); для группы, в локальном хранилище пока ничего нет, JSON исключает `members`, устанавливает для `complete`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-complete "Справочник команды: wa complete") значение `false` и говорит об этом в `missing`. `chats members history`[↗](/llms.mdx/docs/ru/wa/commands-admin/content.md#wa-chats-members-history "Справочник команды: wa chats members history") показывает, кто присоединился или вышел между выборками участников.

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

```sh
wa personal chats show 120363000000000001@g.us
wa personal chats members list 120363000000000001@g.us
```

`chats show`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-chats-show "Справочник команды: wa chats show") выдает тип группы, количество непрочитанных сообщений, время последнего сообщения и ее членов, поскольку они хранятся в локальном хранилище; он никогда не соединяется. `chats members list`[↗](/llms.mdx/docs/ru/wa/commands-admin/content.md#wa-chats-members-list "Справочник команды: wa chats members list") спрашивает WhatsApp, кто сейчас в группе; пока работает `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") ([одно соединение на устройство](/llms.mdx/docs/ru/wa/sessions/content.md#one-connection-per-device)).

## Удаление для всех [#удаление-для-всех]

```sh
wa personal messages delete 120363000000000001@g.us 3EB0AAAAAAAAAAAAAAAAAA --for-everyone
```

В группе, которую вы администрируете, это удаляет сообщение другого участника для всех; где угодно, он удаляет ваши собственные. Ему нужно сообщение в локальном хранилище, поскольку WhatsApp также адресует сообщение отправителю. По умолчанию он запрашивает первым, и его нельзя отменить. Без `--for-everyone` это только для вас: `wa` просит WhatsApp забрать сообщение со всех ваших устройств и оставить его на других.

## Запуск группы [#запуск-группы]

```sh
wa personal chats create "Hiking" 100000000000002@lid
wa personal chats members add 120363000000000001@g.us 100000000000002@lid
wa personal chats members remove 120363000000000001@g.us 100000000000003@lid
wa personal chats admins add 120363000000000001@g.us 100000000000002@lid
wa personal chats update 120363000000000001@g.us --title "Hiking club" --only-admins-add on --join-approval on
wa personal chats update 120363000000000001@g.us --only-admins-send on --disappear-after 7d
wa personal chats update 120363000000000001@g.us --photo club.jpg
wa personal chats update 120363000000000001@g.us --remove-photo
wa personal chats links show 120363000000000001@g.us
wa personal chats links reset 120363000000000001@g.us
wa personal chats requests list 120363000000000001@g.us
wa personal chats requests confirm 120363000000000001@g.us 100000000000004@lid
wa personal chats join https://chat.whatsapp.com/AAAAAAAAAAAAAAAAAAAAAA
wa personal chats leave 120363000000000001@g.us
```

* **Участники видят каждый из них**, поэтому каждый проходит через [разрешения](/llms.mdx/docs/ru/wa/permissions/content.md) профиля и часовой лимит, как при отправке, и подключается (через `serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve") во время работы).
* **Добавляются только те люди, которых вы знаете.** `chats create`[↗](/llms.mdx/docs/ru/wa/commands-admin/content.md#wa-chats-create "Справочник команды: wa chats create") и `members add` берут кого-то из вашей адресной книги или кому вы писали, и отказываетесь от всех остальных: WhatsApp блокирует учетные записи, которые добавляют незнакомцев.
* **Администратор имеет все права.** В WhatsApp есть один тип администратора, поэтому `admins add` не берет `--can` и предоставляет их всех.
* **Одна ссылка для приглашения.** В группе есть одна ссылка; `link reset` заменяет его, и старый перестает работать. Это видят только админы.
* **Настройки.** `update` меняет имя, описание, `--only-admins-add`, `--join-approval`,
  `--only-admins-send`, `--only-admins-edit-info` и `--disappear-after`. Сообщения исчезают через 24 часа, 7 дней или 90 дней, время, которое предлагает WhatsApp; любые другие отклоняются, и `off` сохраняет их.
* **Фотография.** `update --photo` принимает квадратный JPEG со стороной от 190 до 720 пикселей — единственный формат, который WhatsApp использует в качестве групповой фотографии. `wa` не конвертирует и не обрезает изображение: сначала экспортируйте его в формате JPEG. Файл, не имеющий имени `.jpg` или `.jpeg`, а также переименованный в него PNG или WebP, отклоняется перед подключением. `update --remove-photo` забирает фотографию и получает отказ рядом с `--photo`. Сначала устанавливается или удаляется фотография: если заголовок, описание или заданная вместе с ней настройка не работают, об этом говорит ошибка.
* **Имя группы тоже работает**, как и в каждой команде, присваивающей имя чату: `wa` сначала ищет его в локальном хранилище, а затем в списке чатов WhatsApp. Достаточно части имени, регистр не имеет значения, и смайлик соответствует невидимому знаку, который часто имеется в копии («Семья❤️» находит «Семья❤»). Имя, совпадающее с несколькими чатами, отклоняется; назовите его по идентификатору `…@g.us`. Каждое соединение сохраняет группы, в которых вы состоите, в локальном хранилище, поэтому
  `chats list kind:group`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-chats-list "Справочник команды: wa chats list") показывает их после запуска `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") или любой команды, которая подключается.
* `join` в группе, утверждающей присоединение к ответам `requested: true`; вы войдете, как только администратор разрешит вам войти.
* **`leave` отмечает группу, оставшуюся в локальном хранилище**, а `wa personal store clear --left` перечисляет ее. Попавший `join` снимает отметку, как и добавление обратно во время работы `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").При использовании `--offline` `chats members list`[↗](/llms.mdx/docs/ru/wa/commands-admin/content.md#wa-chats-members-list "Справочник команды: wa chats members list") показывает участников, сохраненных ранее, вместо того, чтобы спрашивать WhatsApp. `chats members fetch`[↗](/llms.mdx/docs/ru/wa/commands-admin/content.md#wa-chats-members-fetch "Справочник команды: wa chats members fetch") сохраняет список участников в локальном хранилище. `chats members history`[↗](/llms.mdx/docs/ru/wa/commands-admin/content.md#wa-chats-members-history "Справочник команды: wa chats members history") показывает, что было записано при выборке: всех, кто присутствовал при первой выборке, а затем тех, кто присоединился или вышел при каждой последующей выборке.

```sh
wa personal chats events 120363000000000001@g.us --offline
wa personal chats events 120363000000000001@g.us 'time>=30d' --json
```

`chats events`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-chats-events "Справочник команды: wa chats events") перечисляет тех, кто присоединился, ушел, был добавлен, удален, повышен или понижен в должности, а также каждый новый заголовок, начиная с самого старого, в течение 7 дней, если в запросе не указано время (`time>=30d`). Он отвечает из локального хранилища и никогда не подключается. `wa` хранит там то, что телефон отправляет вместе с историей группы (служебные сообщения, которые он показывает в чате), и, пока работает `wa serve`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-serve "Справочник команды: wa serve") или `wa watch`[↗](/llms.mdx/docs/ru/wa/commands-setup/content.md#wa-watch "Справочник команды: wa watch"), каждое изменение происходит по мере его возникновения; изменение, наблюдаемое в обоих направлениях, сохраняется один раз. Тот, кто вошел или вышел самостоятельно `join` или `leave`; кто-то еще делает им `add` или `remove`. Изменения по сравнению с предыдущей ссылкой, которую не отправлял телефон, не существует, поэтому пустой список не доказывает, что никто не присоединился.

Агент, подключенный через [сервер MCP](/llms.mdx/docs/ru/wa/mcp/content.md), может выполнять те же команды, насколько позволяют [разрешения](/llms.mdx/docs/ru/wa/permissions/content.md) профиля.

## Сообщества [#сообщества]

Сообщество WhatsApp объединяет несколько групп под одним именем. В `wa` сообщество также является группой, с `provider_metadata.community: true`, а группа в сообществе называет ее `parent_chat_id`. Оба содержат то, что WhatsApp говорит о группе, поэтому они отображаются в ответах `chats update`[↗](/llms.mdx/docs/ru/wa/commands-admin/content.md#wa-chats-update "Справочник команды: wa chats update"), `chats create`[↗](/llms.mdx/docs/ru/wa/commands-admin/content.md#wa-chats-create "Справочник команды: wa chats create") и `chats join`[↗](/llms.mdx/docs/ru/wa/commands-personal/content.md#wa-chats-join "Справочник команды: wa chats join"). Локальная база данных хранит их в истории, которую отправляет телефон, поэтому `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") тоже их показывают. Когда группа добавляется в сообщество при подключенном `wa`, локальное хранилище присваивает сообществу имя; когда его удаляют, локальное хранилище перестает давать ему имя. В любом случае это сохраняет титул группы и имеет значение.

Список групп сообщества, а также добавление группы в сообщество или удаление ее выполняются по телефону.
