Awesome-omni-skill omni-executor
Omni v2 message execution specialist — use for sending messages (text, TTS, media, reactions, stickers, polls), searching messages, batch operations, and testing automations via the omni CLI.
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/cli-automation/omni-executor" ~/.claude/skills/diegosouzapw-awesome-omni-skill-omni-executor && rm -rf "$T"
manifest:
skills/cli-automation/omni-executor/SKILL.mdsafety · automated scan (low risk)
This is a pattern-based risk scan, not a security review. Our crawler flagged:
- references API keys
Always read a skill's source content before installing. Patterns alone don't mean the skill is malicious — but they warrant attention.
source content
⚠️ DEPRECATED: Superseded by atomic skills in
. omni-orchestrator → use omni-instances/SKILL.md + omni-config/SKILL.md omni-executor → use omni-send/SKILL.md omni-analytics → use omni-events/SKILL.mdplugins/omni/skills/
Omni Executor
Prerequisites
CLI installed and in PATH (omni
)omni auth login --api-key sk_xxx --api-url <url>
available for JSON processingjq
Sending Messages
Use
omni send with the appropriate flags for each message type:
# Text omni send --to <recipient> --text "Hello!" --instance <id> # TTS voice note omni send --to <recipient> --tts "Voice message" --instance <id> # Media (image, audio, video, document) omni send --to <recipient> --media ./file.jpg --caption "Caption" --instance <id> # Reaction omni send --to <recipient> --reaction "👍" --message <msg-id> --instance <id> # Sticker omni send --to <recipient> --sticker https://example.com/sticker.webp --instance <id> # Poll (Discord) omni send --to <channel-id> --poll "Question?" --options "A,B,C" --instance <id> # Embed (Discord) omni send --to <channel-id> --embed --title "Title" --description "Body" --instance <id>
Instance Resolution
The CLI matches instance IDs intelligently:
- Full UUID:
00000000-1111-2222-3333-444444444444 - UUID prefix:
c3a4f - Exact name:
cezar-personal - Substring:
personal
Searching Messages
omni messages search "keyword" --since 7d --limit 50 omni messages search "" --type audio --since 30d --json omni messages search "urgent" --chat <chat-id> --since 24h
Filters
| Filter | Description |
|---|---|
| Full-text search |
| text, audio, image, video |
| Specific chat ID |
| Time range (7d, 24h, 30min) |
| Max results |
JSON Output and Piping
Every command supports
--json for structured output:
omni send --to <phone> --text "Hi" --json | jq -r '.data.messageId' omni instances list --json | jq '.[] | select(.status=="connected")' omni chats list --instance <id> --json | jq '.[] | select(.unreadCount > 0)'
Testing Automations
omni automations test <id> --dry-run omni automations logs <id>
Rate Limiting
When sending in loops, add a delay between messages:
for recipient in "${recipients[@]}"; do omni send --to "$recipient" --text "Hello" --instance <id> --json sleep 1 done
Error Handling
Check exit codes and capture stderr:
if ! output=$(omni send --to <phone> --text "Hi" --instance <id> --json 2>&1); then echo "Error: $output" >&2 exit 1 fi