Skip to content

Conversation

@pangu25
Copy link

@pangu25 pangu25 commented Jan 31, 2026

Summary

This PR addresses issues #24 and #26 by adding:

  1. --reactions flag for watch command (Feature request: Include reactions/tapbacks in message output #26)

    • Include tapback/reaction events in the stream
    • Events include metadata: is_reaction, reaction_type, reaction_emoji, is_reaction_add, reacted_to_guid
  2. imsg react command (Feature request: Send tapback reactions #24)

    • Send tapback reactions via UI automation (System Events)
    • Supports standard tapbacks: love, like, dislike, laugh, emphasis, question
    • Supports custom emoji reactions (iOS 17+/macOS 14+)

Usage

Watch with reactions

# Stream messages AND reaction events
imsg watch --chat-id 1 --reactions --json

Output includes reaction events with metadata:

{
  "id": 12345,
  "chat_id": 1,
  "is_reaction": true,
  "reaction_type": "like",
  "reaction_emoji": "👍",
  "is_reaction_add": true,
  "reacted_to_guid": "ABC123-DEF456"
}

Send reactions

# Standard tapback
imsg react --chat-id 1 --reaction like

# Custom emoji
imsg react --chat-id 1 -r 🎉

Limitations

The react command:

  • Only reacts to the MOST RECENT incoming message (limitation of Cmd+T shortcut)
  • Requires Messages.app to be running
  • Uses UI automation which requires accessibility permissions
  • Works best when the chat is already open in Messages.app

Testing

Built and tested locally on macOS 15. All existing tests pass.

Closes #24
Closes #26

- Add --reactions flag to watch command to include tapback events (steipete#26)
- Reaction events include metadata: is_reaction, reaction_type, reaction_emoji,
  is_reaction_add, reacted_to_guid
- Add 'imsg react' command to send tapback reactions via UI automation (steipete#24)
- Supports standard tapbacks (love, like, dislike, laugh, emphasis, question)
  and custom emoji reactions (iOS 17+/macOS 14+)

Closes steipete#24, Closes steipete#26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature request: Include reactions/tapbacks in message output Feature request: Send tapback reactions

1 participant