IMMAT is a tool developed to control the MacOS operating system using iMessage from any iMessage supported devices.
IMMAT is created using Python and AppleScript.
Before you begin, ensure you have met the following requirements:
- You have installed Python3 and have it working.
- You have a MacOS machine which has used iMessage on it atleast once.
- Any iMessage supported device.
- Installed the dependencies from requirements.txt.
To Use IMMAT download the file by :-
Open Terminal and type :-
chmod +x (Drag the file here and press enter)
Now you can run IMMAT by opening the file.
To install IMMAT, follow these steps:
Installing requirements :-
git clone https://github.com/ParthJadhav/IMMAT.git
cd IMMAT
pip3 install -r requirements.txt
For Bluetooth Functionality to Work
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
brew install blueutil
Running IMMAT (Foreground) :
❗️It is mandatory that you run it in foreground at first run.❗
python3 Immat.py
Running IMMAT (Background) :-
cd IMMAT
chmod +x Immat.py
nohup python3 /path/to/Immat.py &
To stop the background process:-
pkill -f Immat.py
If you are encountering errors like :-
sqlite3.OperationalError: unable to open database file
Then try giving full disk access to the terminal by :-
https://support.avast.com/en-in/article/Mac-full-disk-access/
Instead of avast add Terminal to full-disk access.
IMMAT will only be running on Mac the commands would be given from iMessage on other devices.
Example -
Password - $
Command - ts (Take Screenshot)
Message the below command through iMessage to Mac.
$ Ts
This will reply you with the screenshot of the Mac.
These are the available commands :-
Instead of main.py enter Immat.py
iMessage on MacOS saves all messages it got to chat.db database. and the messages are saved in messages table of that database.
Whenever a new message is received; IMMAT checks if it has the password which you have entered while running IMMAT and checks for a matching command.
If the message matches the command then the following function is executed.
All of these happens locally so there is no need to worry about the privacy and security.
If you want to contact me you can reach me at [email protected]
This project uses MIT License.