Warning This project is OBSOLETE. Please find the new version on the project cheshire-cat-adapters
Inspired by Yue-Yang's work with OpenAI's ChatGPT Siri interface, I tried to make Cheshire Cat talk with Siri on MAC.
- MacOSX Ventura or later versions
- Homebrew
- websocat
- Cheshire Cat installed locally, or at least on a reachable IP address.
The PoC is very simple. From Siri, it asks for a prompt from the user. Then it uses an Apple Script to send the message to the Cheshire Cat and retrieve the response. After that, it extracts the response from the JSON with simple JavaScript and returns it to the user. You can run this with a textual prompt or voice.
To download the shortcut, click here.
After installing it, you should see this:
If you see the following, you have the scripting actions disabled:
Go to Preferences / Advanced and click the "Allow Running Scripts" option to enable it.
Currently, Cheshire Cat exposes a websocket as the only way to talk with it. Unfortunately, Apple Shortcuts doesn't support WebSockets, so I solved this problem with websocat, a command line wrapper to WebSocket.
To install websocat on Mac OSX you can use Homebrew or MacPorts. I used Homebrew. Once you have installed it, check the full command path to update the AppleScript eventually.
Open a Terminal and type:
% which websocat
/opt/homebrew/bin/websocat
If the path is different from the above, you need to update accordingly Apple Script line 4. Also, if you have Cheshire Cat installed on a different machine than localhost, you need to update 3 as well.
You can test the Siri-Cheshire-Cat shortcut with the play button on the top of the window, and it prompts textually:
And it will provide the answer based on the previous conversations:
If you start Siri and ask "Run Cheshire Cat" it will interact the same way but with voice.
This is just a Prof of Concept to evaluate Cheshire Cat interfacing from other applications, have fun, and learn new stuff. Since it uses AppleScript works only on Mac and cannot be run on iPhone or iPad. It could be implemented in different, more elegant ways. Feel free to fork and adapt it as you prefer. It's not going to be maintained in any way.





