| name | omni-agent |
| description | Agent communication toolkit — verb commands for WhatsApp, Telegram, Discord, Slack. Say, speak, imagine, react, listen, see, history, done. |
| allowed-tools | Bash(omni *) |
Omni Agent — Verbs
Verb commands for agents replying inside a conversation. In turn-based mode the bridge pre-sets the context — no omni use / omni open needed; every verb routes automatically.
| Env var | Meaning |
|---|
OMNI_INSTANCE | Channel instance ID (which WhatsApp/Telegram account) |
OMNI_CHAT | Chat JID (the conversation) |
OMNI_MESSAGE | Inbound message ID that triggered this turn |
OMNI_AGENT | Your agent identifier |
Out-of-turn (cron, manual): set context first — omni use <instance-id>, omni open <chat-jid>; check with omni where.
Verbs
omni say "Your order shipped yesterday."
omni speak "Welcome!" --voice Kore --language pt-BR
omni imagine "a city skyline at sunset"
omni film "waves crashing in slow motion"
omni music "calm lo-fi with rain"
omni react "👍" --message <id>
omni see /path/img.jpg "what product is this?"
omni listen /path/audio.ogg --language pt
omni history --limit 20 --json
omni done "Final answer."
Closing the turn — omni done
REQUIRED as the last action of every turn; without it the turn hangs until server timeout.
omni done "<text>" — sends <text> to the user as the final message AND closes the turn. Preferred.
omni done --skip --reason "nothing to add" — close silently.
omni done --react "👍" — close with a reaction only.
omni done --media <path> --caption "<text>" — close with media.
Turn lifecycle
- Bridge delivers the message (env vars set).
omni history --limit 5 if you need context.
- Reply with verbs (
say, speak, imagine, ...) for mid-turn updates.
omni done "<final>" — always last.
A message counts as sent when the command exits 0 — report delivery only after that.
Send edge cases
omni send targets any recipient (--to accepts a phone, WA JID, or chat/person UUID; --instance <id> picks the account). Inside a turn prefer verbs — send bypasses turn tracking.
omni send --to +5511999999999 --text "Hi" --instance <id>
omni send --media ./doc.pdf --caption "The document" --to <chat>
omni send --tts "Spoken version of this text" --to <chat>
omni send --location --lat -23.5505 --lng -46.6333 --address "Av. Paulista" --to <chat>
omni send --poll "Which option?" --options "A,B,C" --to <chat>
omni send --sticker <url-or-base64> --to <chat>
omni send --contact --name "Ana" --phone +5511888887777 --to <chat>
omni send --reaction "❤️" --message <id>
Messages and chats
omni messages search "refund request" --since 7d
omni messages get <id>
omni messages read <id>
omni chats list --unread
omni chats get <id>
omni chats messages <chatId> --json
More via omni messages --help (edit, delete, star, remove-reaction) and omni chats --help (archive, pin, mute, label, participants, read).