This is the repo for the bundle containing code to perform various tasks not accessible through Apple's AppleScript, for example sending tapbacks or typing indicators.
- Send reactions
- Send and receive typing indicators
- Mark chats read on the server Mac
- Create chats
- Rename group chats
- Add / remove participants from group chats
- Send messages
- Send replies (requires MacOS 11+)
- Send message effects
- Send message with subject
- Send mentions
- Update pinned chats on the server Mac (requires MacOS 11, higher versions are currently unsupported)
See the wiki for more details on how these were implemented.
The bundle has been tested on MacOS 10.13 (High Sierra) - MacOS 12 (Monterey). It could work on higher or lower MacOS versions, but we do not know for sure.
Currently the bundle only works on Intel based Macs, but we are working towards M1 support.
- MacOS and Xcode
- Apple Developer account with a valid Team ID
- 10.12 - 10.13: mySIMBL / 10.14+: MacForge
- Clone the repo and open the respective folder for your macOS version, then open the Xcode project in Xcode
- Hit the Play button and you're done! This will automatically build the
.bundle
and install it in the MacForge / mySIMBL directory.
Its recommended have a good knowledge of Objective-C and tweak development before attempting to develop just to make things easier on yourself :)
- https://iphonedev.wiki/index.php/Main_Page - tweak development wiki
- https://github.com/w0lfschild/macOS_headers - pre-dumped headers for macOS
- https://github.com/open-imcore/barcelona - Eric Rabil's wonderful REST API built using IMCore
- http://stevenygard.com/projects/class-dump/ (OS X) / https://github.com/freedomtan/classdump-dyld/ (Big Sur) - scripts to dump headers on macOS
- https://lapcatsoftware.com/articles/bigsur.html - open-source tool from Apple to access system libraries
- ZKSwizzle
Use the above resources and trial and error to develop new IMCore integrations! There aren't any Apple provided docs of course, so there is a lot of educated guesswork and using the above resources to try and add things to the bundle. If stuff doesn't work, don't give up! Find as many clues as you can by searching online, searching the header files, and using swizzling techniques.