6 ms·
Show HN: Messages for Macintosh – a classic Mac iMessage client
- camhenlin 5y agoI built an application for interacting with Apple iMessages on classic Macintosh systems via a modern Mac. I've tested the software on System 2.0 through System 6.0.8, but it should work on Macintoshes running up to MacOS 9.2.2. In addition to the github repository, I wrote an introduction blog post about it here: https://henlin.net/2022/02/26/Introducing-Messages-for-Macintosh/ https://henlin.net/2022/02/26/Introducing-Messages-for-Macin.... I've also outlined the development workflow on to other posts at https://henlin.net/2021/12/03/a-simplified-guide-to-development-using-retro68-and-pce-macplus/#more https://henlin.net/2021/12/03/a-simplified-guide-to-developm... and https://henlin.net/2022/02/26/Messages-for-Macintosh-Developer-Guide/ https://henlin.net/2022/02/26/Messages-for-Macintosh-Develop.... Let me know if you have any questions or decide to try it out on your Macintosh, I'd love to hear about it.
- mpolichette 5y agoI've thought about hooking into messages w/ a running mac before... Do you have a high level description of your approach? I looked in the iMessage GraphQL Server server repo for docs but didn't see anything obvious... On a quick investigation I noticed you are reading the sqlite db... but it wasn't super clear how you send/receive messages?
- camhenlin 5y agoI’m doing polling the Messages SQLite database to detect receiving new messages, and and using built in Messages scripting capabilities to send messages. See here: https://github.com/CamHenlin/imessagegraphqlserver/blob/main/imessage.js#L396 https://github.com/CamHenlin/imessagegraphqlserver/blob/main...
- sgt 5y agoVery cool
- anthk 5y agoJust 10 conversations? It would be better to use an IRC client against Bitlbee. As for the irc client, use any.
- camhenlin 5y agoCertainly there’s a lot of opportunities for improvement here!
- anthk 5y agoYep. This looks a bit clunky. Any old/rusty irc client (even the ones for DOS and a 286) will connect to public bitlbee servers, where you have several. By typing up 'plugins' at its &bitlbee channel (not a typo), you will get the supported chat protocols on that server.
- mikestew 5y agoI’m not seeing where Bitlbee supports iMessage. Is a plug-in needed for that support?
- anthk 5y agoBitlbee supports libpurple (Pidgin) plugins. That's how I message over Telegram with sic (tiny IRC client) against Bitlbee to people using smartphones around.
- filmgirlcw 5y agoOK, but iMessage isn’t Telegram. There are Matrix bridges that support iMessage to varying degrees of success/features, but I’m not sure if the Matrix feature via libpurple would support whatever bridges you have configured inside Matrix. It seems like a lot of additional work/hypotheticals for something that is just a fun proof of concept.
- dagmx 5y agoYou're perhaps missing the point of this. It's clearly not meant to be something you'd use regularly. It looks like an excercise of "let me see if I can do this" If you're arguing about practicality, then you've already missed the boat by a few decades if you're running on this ancient OS.
- mistrial9 5y agoclassic Mac coder here -- some experiments might show.. that software development is not bad for this 25 year old system.. the user experience is calm, cool and collected IMHO. But anyone with an interest in graphics will find that even with later "faster" models of Mac, the JPEG and PNG decompression will be amazingly slow compared to modern times. That is not to say that plenty of interesting and modern software will not be useable - it is.. rather the sheer math and bit-movement involved in quick JPEG decompression might come as a shock to phone users of today. Overall, very supportive of "OS archeology" here.
- cplusplusfellow 5y agoDoes this mean we could write and iMessage client for Linux?
- rblatz 5y agoThis has the same limitations of every other 3rd party iMessage client. It needs a companion app running on a Mac so that it can interface with iMessage running on that Mac. Basically it’s an iMessage proxy/client.
- cplusplusfellow 5y agoI would love to transition to a Linux for most things but I can’t give up the ability to text via my mac desktop. It’s so much faster and I barely suffer a context switch. Having to stop and pick up my phone to type with my thumb is just agonizing. And not everyone I deal with is on slack.
- olliej 5y agoThere are obvious problems with bringing iMessage to other platforms (basically the standard for any proprietary platform). But a few other issues are these various cryptographic ties to things like appleid etc, which are likely harder to deal with. I believe old black hat demos from 5+ years ago when they found some protocol flaws were constructing the message content manually, but still sending them through the messages xpc service (which is afaik responsible for wrapping things in protocol goo) There are other issues as well nowadays: all apple hardware for many years has been able to store keys in the Secure Enclave (or element? One is for crypto, one is for javacard, and I can never remember which), so there’d be a loss in security posture relative to apple hardware (I would put money on the SE/SEP being more secure than any hardware crypto wallet - it’s just you can’t unplug it, so you lose the very real security of an air gap)
- smoldesu 5y agoWith KDE Connect I can send SMS right from my desktop. It ain't iMessage, but I have maybe one or two contacts who use it anyways. Anyone who wants more features can message me on Telegram or Slack.
- marban 5y agoI miss Classic box art.
- Wanzy 5y ago
- behnamoh 5y agoOk but why?
- olliej 5y agoAs with many such hobby projects it’s a “why not?”. Not every project must have some kind of serious “value”
- rsync 5y agoIs there a proper API for Apple imessage such that I can create imessages from the command line ? I send SMS with 'curl' commands using my twilio credentials ... Can I do something similar with imessage ?
- kaladin-jasnah 5y agoNot curl, but https://github.com/open-imcore/barcelona https://github.com/open-imcore/barcelona may be of interest (I believe you might have to disable SIP and AMFI though). The Matrix-iMessage bridge uses and I find it to work quite reliably and quickly.
- RL_Quine 5y agoNo.
- tambourine_man 5y agoUnfortunately, there's no way other than what the author used. Not even through a third party like Twilio
- anthk 5y agoFor iMessage you can use Bitlbee and any IRC client.
- sbr464 5y agoI've seen a few random libraries/hacks/topics on GitHub. I can't say how outdated or if any are functional. https://github.com/btroo/messaging-vis https://github.com/btroo/messaging-vis https://github.com/topics/imessage https://github.com/topics/imessage https://github.com/drbh/power-message https://github.com/drbh/power-message https://github.com/wtfaremyinitials/osa-imessage https://github.com/wtfaremyinitials/osa-imessage
- camhenlin 5y agoI even have some older projects in this space: https://github.com/CamHenlin/imessageclient https://github.com/CamHenlin/imessageclient https://github.com/CamHenlin/iMessageWebClient https://github.com/CamHenlin/iMessageWebClient https://github.com/CamHenlin/iMessageModule https://github.com/CamHenlin/iMessageModule
- RodgerTheGreat 5y agoAn impressive proof-of-concept. The UI elements look rather odd. What's the rationale for using a custom immediate-mode UI library instead of using the Mac's native forms and toolbox routines for them?
- tambourine_man 5y agoProbably familiarity and ease of development.
- camhenlin 5y agoSure, I felt like having a simple immediate mode library would make UI programming on old Macs a lot easier. I still think that’s true after getting the UI library working and having used it for a project. I wrote a blog post explaining my reasoning here as well: https://henlin.net/2021/12/21/Introducing-Nuklear-for-Macintosh/ https://henlin.net/2021/12/21/Introducing-Nuklear-for-Macint...
- pvg 5y agoIt makes a lot of sense and toolbox programming is a pain - it was quite low-level in its day too. The downside is the you end up with an app that runs on classic MacOS but doesn't look anything like a classic MacOS app. I think that's a problem somewhat inherent in the platform - the system-provided GUI programming model was primitive but users cared about the look/feel of the UI just as much if not more than now.
- RodgerTheGreat 5y agoI'm not sure I'd agree that the Mac toolbox is primitive. Reflowing forms to reflect a resizable window wasn't a common technique at the time; Macs had a predictable screen size and DPI. Abstracting the layout of a form from code via a resource was a very forward-thinking approach for the day. Among other advantages, fiddling with ResEdit was very empowering for users who might not even have access to the source code of an application!
- tambourine_man 5y agoCameron, that's awesome, congratulations. I'd love to read about the developing process in a blog post. Now you just need a cool icon to go with your app. You already have the box art spot on
- filmgirlcw 5y agoThis is awesome! I sort of want to dust off one of my old PPC Macs and try this out — tho I’d have to put MacOS 9 on it first (I think I’ve only got OS X on it). What a great/fun little project!
- pcan77 5y agoThis is absolutely awesome, I cannot wait to install it on my mac color classic!!
- camhenlin 5y agoLet me know how it goes! I’m really interested in hearing how it goes on some higher end equipment. I personally haven’t tried anything other than 68000-based systems