WhatsApp

Управление группами

Проверяйте группы WhatsApp, участников и вопросы перед выбором действия администратора.

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

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

  • Идентификатор группы заканчивается на @g.us ([email protected]). wa personal chats list 'kind:group' --offline перечисляет ваши группы с их идентификаторами; имя группы также работает, если оно есть только в одном чате.
  • Администратор – это участник с правами управления группой. Некоторые команды учитывают только ваши ответы и ответы администраторов.
  • Локальная база данных — это копии сообщений, которые 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
Удалить сообщение для всех, как администратор группыwa personal messages delete --for-everyone
Создайте группу, присоединитесь к ней по ее ссылке или покиньтеwa personal chats create, chats join, chats leave
Добавляйте или удаляйте людей, назначайте кого-нибудь администраторомwa personal chats members add, chats admins add
Переименуйте группу, установите или удалите ее фотографию или измените тех, кто может добавлять людейwa personal chats update
Показать или заменить ссылку-приглашениеwa personal chats links show, chats links reset
Впустить или отклонить людей, которые попросили присоединитьсяwa personal chats requests list, chats requests confirm
Подпишитесь на канал, прочитайте его публикации или отмените подпискуwa personal chats join, messages sync, chats leave (каналы)
Публикация на канале, который вы ведетеwa personal messages send (каналы)

Каждая опция находится в справке по команде.

С агентом

Ваш ИИ-агент (например, Claude Code, Codex, Cursor или Gemini CLI) может выполнить эти проверки за вас. Агенту с терминалом необходим ва навык; агенту в приложении без терминала необходим сервер MCP.

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

Кто ждёт ответа

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

Команда:

wa personal review 'chat:[email protected]' --unanswered 4h --json

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

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

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

| --- | --- | --- |

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

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

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

Еженедельный отчет

Ваш запрос:

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

Команда:

wa personal review 'chat:[email protected] date>7d' --json

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

Решено: выйти в 7:00 со станции.

Привержены: Лена — еда; Сэм — палатки.

Все еще открыто: кто принесет кастрюлю.

По расписанию

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

0 9,21 * * * wa personal review 'chat:[email protected]' --unanswered --json >> ~/hiking-open.jsonl 2>> ~/wa-cron.log

cron запускает задания с почти пустой средой: см. выполнение по расписанию.

Что тебя ждет

review и serve хранят в локальном хранилище список задач: что вы должны сделать, и что вам кто-то должен. Задача указывает на свое сообщение и никогда не копирует его. Если правило открывает одно:

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

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

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

wa personal tags add --chat [email protected] watch-tasks

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

wa personal tasks scan [email protected]
wa personal tasks scan [email protected] --last 300 --yes

Когда кто-то обещает вам что-то, сохраните это в качестве своей задачи и перечислите, что другие вам должны. Указатель сообщения, ключ задачи PR-4 и другие идентификаторы в этом разделе созданы; реальные берите из поиска, списка или tasks list:

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 очищает его. Задача, у которой нет исполнителя, — это нормально: лучше, чем пропущенная.Посмотрите, что вас ждет, сначала самые старые, потом только вопросы и упоминания в одной группе:

wa personal tasks list state:open
wa personal tasks list 'chat:[email protected] (kind:question OR kind:mention)'

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

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

tasks categories перечисляет категории, которые может принимать задача. Если задача может быть той же вакансией, что и открытая, tasks add откажется с кодом завершения 2 и выведет список кандидатов; повторите с --into <task> или --new.

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

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 находит их; подтвердите его с помощью tasks close <task> или откажитесь от него с помощью tasks reject <task>.

Номера группы

wa personal stats chats show [email protected] --offline
wa personal stats chats show [email protected] --offline --since-time 30d --by week

Сообщения, активные участники, ответы, реакции и ответы на вопросы учитываются из локального хранилища за период 7 дней, если --since-time не указано иное. Подсчет охватывает только то, что хранится в локальном хранилище; с натяжкой до ссылки wa там нет, поэтому число - это минимум, а не доказательство молчания. members подсчитывает соединения и оставляет из локального хранилища те, которые перечисляет chats events; для группы, в локальном хранилище пока ничего нет, JSON исключает members, устанавливает для complete значение false и говорит об этом в missing. chats members history показывает, кто присоединился или вышел между выборками участников.

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

wa personal chats show [email protected]
wa personal chats members list [email protected]

chats show выдает тип группы, количество непрочитанных сообщений, время последнего сообщения и ее членов, поскольку они хранятся в локальном хранилище; он никогда не соединяется. chats members list спрашивает WhatsApp, кто сейчас в группе; пока работает serve, он проходит через serve (одно соединение на устройство).

Удаление для всех

wa personal messages delete [email protected] 3EB0AAAAAAAAAAAAAAAAAA --for-everyone

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

Запуск группы

wa personal chats create "Hiking" 100000000000002@lid
wa personal chats members add [email protected] 100000000000002@lid
wa personal chats members remove [email protected] 100000000000003@lid
wa personal chats admins add [email protected] 100000000000002@lid
wa personal chats update [email protected] --title "Hiking club" --only-admins-add on --join-approval on
wa personal chats update [email protected] --only-admins-send on --disappear-after 7d
wa personal chats update [email protected] --photo club.jpg
wa personal chats update [email protected] --remove-photo
wa personal chats links show [email protected]
wa personal chats links reset [email protected]
wa personal chats requests list [email protected]
wa personal chats requests confirm [email protected] 100000000000004@lid
wa personal chats join https://chat.whatsapp.com/AAAAAAAAAAAAAAAAAAAAAA
wa personal chats leave [email protected]
  • Участники видят каждый из них, поэтому каждый проходит через разрешения профиля и часовой лимит, как при отправке, и подключается (через serve во время работы).
  • Добавляются только те люди, которых вы знаете. 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 показывает их после запуска serve, watch или любой команды, которая подключается.
  • join в группе, утверждающей присоединение к ответам requested: true; вы войдете, как только администратор разрешит вам войти.
  • leave отмечает группу, оставшуюся в локальном хранилище, а wa personal store clear --left перечисляет ее. Попавший join снимает отметку, как и добавление обратно во время работы serve или watch.При использовании --offline chats members list показывает участников, сохраненных ранее, вместо того, чтобы спрашивать WhatsApp. chats members fetch сохраняет список участников в локальном хранилище. chats members history показывает, что было записано при выборке: всех, кто присутствовал при первой выборке, а затем тех, кто присоединился или вышел при каждой последующей выборке.
wa personal chats events [email protected] --offline
wa personal chats events [email protected] 'time>=30d' --json

chats events перечисляет тех, кто присоединился, ушел, был добавлен, удален, повышен или понижен в должности, а также каждый новый заголовок, начиная с самого старого, в течение 7 дней, если в запросе не указано время (time>=30d). Он отвечает из локального хранилища и никогда не подключается. wa хранит там то, что телефон отправляет вместе с историей группы (служебные сообщения, которые он показывает в чате), и, пока работает wa serve или wa watch, каждое изменение происходит по мере его возникновения; изменение, наблюдаемое в обоих направлениях, сохраняется один раз. Тот, кто вошел или вышел самостоятельно join или leave; кто-то еще делает им add или remove. Изменения по сравнению с предыдущей ссылкой, которую не отправлял телефон, не существует, поэтому пустой список не доказывает, что никто не присоединился.

Агент, подключенный через сервер MCP, может выполнять те же команды, насколько позволяют разрешения профиля.

Сообщества

Сообщество WhatsApp объединяет несколько групп под одним именем. В wa сообщество также является группой, с provider_metadata.community: true, а группа в сообществе называет ее parent_chat_id. Оба содержат то, что WhatsApp говорит о группе, поэтому они отображаются в ответах chats update, chats create и chats join. Локальная база данных хранит их в истории, которую отправляет телефон, поэтому chats list и chats show тоже их показывают. Когда группа добавляется в сообщество при подключенном wa, локальное хранилище присваивает сообществу имя; когда его удаляют, локальное хранилище перестает давать ему имя. В любом случае это сохраняет титул группы и имеет значение.

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