Send and read messages from a linked WhatsApp account.
Ban risk. agentio talks to WhatsApp through Baileys, an unofficial library, and Meta can ban a number used for automation. Use a dedicated number, not your personal one.
What you can do
- List conversations, with their unread counts
- Read the last messages of a chat
- Send text to a phone number, a group, or a known name
- List the names agentio knows, with their number
How it works
The agentio daemon keeps one connection per linked account while the vault is unlocked. Every command, pairing included, goes through the daemon, locally or on the hub. The CLI never connects to WhatsApp itself, so the daemon must be running.
Chats, recent messages and names are kept in an encrypted store next to the vault, so they are still there after a restart. Media is shown as a placeholder such as [image].
Setup
# in another terminal: the daemon runs in the foreground
agentio daemon start
agentio whatsapp profile add --profile work
Scan the QR code from WhatsApp > Settings > Linked devices. Over SSH, add --phone +33612345678 to get a code to type on the phone instead.
Good to know
readmarks the messages it shows as read (blue ticks). Add--no-read-receiptsto avoid that. A read-only profile never sends receipts or messages.- WhatsApp sometimes identifies people by a hidden ID instead of their number. They are shown by name and ID, and you can still send to them.
- A name works only when it matches exactly one known name. Run
agentio whatsapp contactsto see them.
Command reference
-
agentio whatsapp statusShow the daemon, the profile, and its WhatsApp session state
--profile <name> -
agentio whatsapp conversationsList conversations, most recent first, with their unread counts
--limit <n>--unread-only--profile <name> -
agentio whatsapp send <recipient> [message]Send a text message to a phone number, a JID, or a known name
--profile <name> -
agentio whatsapp read <chat>Show the last messages of a chat, and mark them as read
--last <n>--no-read-receipts--profile <name> -
agentio whatsapp contacts [query]List the names send and read resolve against, with their number or hidden ID
--profile <name>