• Stars
    star
    239
  • Rank 168,763 (Top 4 %)
  • Language
    JavaScript
  • Created almost 10 years ago
  • Updated over 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

send and receive iMessages on anything with a web browser

iMessage Web Client

iMessage web client screenshot

What is this?

iMessage Web Client is a web interface for iMessages, enabled by running a small nodejs app (which itself is based on imessageclient) and collection of AppleScripts on a server signed into your iMessages account with Messages.app. Supersedes iMessageService

Use cases

  • Try out a non-iPhone and keep iMessages turned on for some reason
  • Be signed in to 2 or more iMessages accounts at once on one iOS/Mac devices
  • Send iMessages from your Windows computer at work from your Mac at home more easily than this other project
  • You tell me

Security concerns

Of course, access to your iMessages means that security is a concern, especially for something web-based. I decided that the best solution to address this was firstly to have the user create a "key" during the installation step that they must use to login to the web app on their devices this key can be reset by running "npm run postinstall". Secondly, the server also generates a self-signed SSL certificate when the app is first installed. Of course, the certificate will be invalid and generate warnings for most clients, but at least it will enable encryption so others on your network will not be able to read your conversations. More advanced users can drop legitimate SSL certificates in place if desired.

requirements:

  • server running OS X 10.7 or better
  • nodejs
  • Apple iMessages account signed in to Messages.app

How to get the server running on your Mac:

git clone https://github.com/CamHenlin/imessagewebclient.git

cd imessagewebclient

npm install

sudo npm start

note: if you prefer to start the app without sudo, start it instead with the command: PORT=YOUR_PORT npm start, and adjust your web browser accordingly

How to access on some other device:

  • navigate your favorite web browser to https://localhost/ (or whatever forwarding service you have pointed to your computer, or its IP address!)
  • enter the key you set during the installation
  • use the app as if it were the Messages app on an iPhone

Note if you are using this on a mobile device, it is mobile web app capable.

This is clunky!

Yeah I will probably improve it over the next few days.

Shortcomings

No push notifications! You can kind of get around this by using this: AutoForwardIMessage to a different message app such as gchat, which you can sign into on your phone to get push notifications. In the future I would like to move this to a packaged cordova app for major app stores and provide a central push notification service for users. Users should let me know if they're interested in a service like this.

Why did you make this?

I would like to draw attention to another project: nodeprivatemessageskit Where I am trying to use private MessagesKit frameworks to send messages rather than rely on AppleScripts. I'm in a little over my head there and I would really like some pointers or assistance from people with more experience using private frameworks as I believe it could lead to more reliable and interesting uses for iMessages in the future.

Uses iMessageModule.

made with a mac

More Repositories

1

imessageclient

send and receive iMessages in a terminal or over ssh
JavaScript
859
star
2

MessagesForMacintosh

An Apple iMessage client for classic Macintosh (System 2.0 - MacOS 9.2.2)
C
188
star
3

imessagebot

Who wouldn't want to iMessage a bot?
JavaScript
92
star
4

roguish

open source, multiplayer, extensible rogue-like
HTML
89
star
5

iMessageModule

A node module for sending iMessages on your Mac
JavaScript
86
star
6

ExecutiveMan

ExecutiveMan, a JavaScript MegaMan clone
JavaScript
81
star
7

FocusedEdit

Classic Macintosh (System 2.0 through 9.2.2) text editor with shared live editing on a modern computer, via serial port
C
52
star
8

TouchPolyfill

Use TouchEvents on Internet Explorer mobile
JavaScript
44
star
9

iMessageService

send and receive iMessages on anything with a web browser
JavaScript
39
star
10

nodeprivatemessageskit

non-functional (for now!) run at using private messageskit.framework in a node app
Objective-C
36
star
11

imessagegraphqlserver

JavaScript
25
star
12

nuklear-quickdraw

quickdraw backend for nuklear (https://github.com/Immediate-Mode-UI/Nuklear)
C
18
star
13

PlexGameLauncher

Emulated Game Launcher for Plex on Mac
C
17
star
14

coprocessor.js

serial-based, nodejs-backed, remote code execution system
JavaScript
11
star
15

no-cuda-pulse

clone of https://github.com/adamian98/pulse that can easily be run without an nvidia gpu
Python
10
star
16

knackhq-client

knackhq node module
JavaScript
7
star
17

YOSPOS-COMMANDER

take command of your favorite funny computer internet forum!
Java
5
star
18

SpaceInvaders

Internet Explorer 6 compatible Space Invaders clone
HTML
3
star
19

uLRS

Node/Express/Mongoose-Powered Learning Record Store
JavaScript
3
star
20

retro68-coprocessorjs-test

testing grounds for a 68k mac remote serial execution app
C
3
star
21

coprocessorjslib

Retro68 C library for communicating with coprocessorjs
C
3
star
22

opsgenieautoacknowledger

JavaScript
2
star
23

TESample

https://github.com/fruitsamples/TESample set up to work under retro68
C
2
star
24

swordfightr

make ansi escaped strings!
HTML
2
star
25

piflare

CSS
2
star
26

imessageninja

hosted iMessage service
JavaScript
2
star
27

ExecutiveManTokenServer

Executive Man token server for integration with UO child activity tracker
JavaScript
2
star
28

casper_scrape_example

JavaScript
1
star
29

tictacwebsocket

tic tac toe using websockets
HTML
1
star
30

xmas

JavaScript
1
star
31

s2c

JavaScript
1
star
32

jspong-empty

HTML
1
star
33

CIS650

Code repository for winter 2015 CIS650 course
JavaScript
1
star
34

campuswriteruo

CSS
1
star
35

serialperformanceanalyzer

provides performance analysis services for machines over a serial port or by tailing a text file
JavaScript
1
star
36

somethingreallyawful

it's really awful
JavaScript
1
star
37

socket_test

JavaScript
1
star
38

somethingreallyawful.firefoxext

the awfullest one
JavaScript
1
star
39

personalsite

my personal site!
HTML
1
star
40

NuklearOnCoprocessorTest

testing out running the nuklear UI with all of the actual processing happening over a serial port
C
1
star
41

UGUIQuickDraw

QuickDraw back end for UGUI
C
1
star
42

somethingreallyawful.safariextension

it extends!
JavaScript
1
star
43

availabilitytrackr

tracks employee scheduling availability
JavaScript
1
star
44

campusreaderwriter

JavaScript
1
star
45

blog

HTML
1
star
46

LVGLQuickDraw

oh joy, more old mac stuff - trying to port LVGL to classic Mac
C
1
star
47

somethingreallyawful.chromeext

it's awful
JavaScript
1
star
48

microui-quickdraw

quickdraw implementation for microui
C
1
star
49

camhenlin.github.io

1
star
50

addressbookreader

reads OS X addressbook entries by phone number or email
1
star
51

csvid3tagger

tag id3 files from a csv
JavaScript
1
star
52

flare

Python
1
star