Get and read (and soon send?) MMS on Linux phones
Add "--rm-oldest-stubborn" command for stubborn SMS that fail to arrive and clog modem
Add ability to create new MMS conversations
mms send: better call out to editor


browse  log 



You can also use your local clone with git send-email.

#JMMS - a "just works" CLI MMS fetcher

Getting less and less janky all the time :)

jmms is a parser and fetcher for MMS messages.

Currently MMS doesn't work by default on the Pinephone. And if you receive too many MMS messages it actually clogs up the system and stops you from receiving SMS too!

jmms fixes some of these problems:


  • [X] ๐Ÿงน Clears out MMS messages so you can still get normal SMS
  • [X] ๐Ÿ“ฅ Receives MMS messages!
    • [X] ๐Ÿ‘ฏ Group messages
    • [X] ๐Ÿ–ผ๏ธ Multimedia
  • [ ] ๐Ÿ“ค Sends MMS messages
    • [ ] Group messages
    • [ ] Multimedia
  • [X] ๐Ÿ” Polls continually to get new messages
    • [X] ๐Ÿ“ฌ Alerts when new messages come in
  • [X] ๐Ÿ“ฝ๏ธ Extracts and displays images and other media from an MMS message
  • [ ] ๐Ÿ’… Displays the messages in a pretty format
    • [X] โŒš Timestamp in user's local time
    • [X] ๐Ÿงพ Pretty headers display instead of binary
    • [X] ๐Ÿงต Messages threaded by conversation
    • [X] ๐Ÿ“‡ Address book to show names instead of numbers
  • [ ] Is good-looking/has a GUI
    • Right now it's just a script you run on the command line
  • [X] ๐Ÿ“‘ Shows messages in the correct order (the order you received them)

I make absolutely no promises about if this code works and take no responsibility for anything that happens as a result of using it. Your texts could get deleted (though that's never happened to me). Your phone might explode into a thousand pieces. The CEO of Verizon might come to your house and yell at you. I'm providing this so others can have partial MMS support like I do, but by using you have to agree to not hold me responsible for any of the above.

#Using jmms

First you need to get messages. Either get them all once:

jmms --get

Or continually poll for new messages every, say, 5 minutes:

jmms --poll 5

Then, read the messages you've gotten:

jmms --read

If --get or --poll doesn't work, you can try explicitly disabling wifi (cell providers seem to require data going through the cell modem). This step may no longer be needed:

sudo nmcli radio wifi off   &&   jmms --get   &&   sudo nmcli radio wifi on

The current state of things for me at least is that I have to run the wifi off line once after the phone is booted, and after that I can run jmms --get, jmms --poll etc without messing with wifi.



sudo apt install git
git clone https://git.sr.ht/~amindfv/jmms
cd jmms

If you'd like to change any settings (e.g. to update your address book, or if you want to put the msg-data directory in a nonstandard place - by default it's in your home directory):

$EDITOR Settings.hs   # change what you want


sh install/mobian.sh

If it worked, the last line should say "๐Ÿ—จ๏ธ ๐Ÿ–ผ๏ธ ๐Ÿ‘ฏ๐Ÿ“ฌ jmms successfully installed!"

If you want to use jmms in the terminal window you just installed in, you may then need to call:

source ~/.bashrc

#Other distros

If you port the install-mobian.sh to your distro, please get in touch - I'd love to support more!

#Updating jmms

If you've been using this since 2020, we renamed janky-mms to jmms. If you got it back when it was called "janky-mms", run these lines:

mv -i janky-mms jmms
cd jmms
git remote set-url origin https://git.sr.ht/~amindfv/jmms
$EDITOR ~/.bashrc # Go in and change "janky-mms" to "jmms"
source ~/.bashrc

If jmms has been updated, you can get the new version by re-running the "Install dependencies from your package manager" step above (in case there are new dependencies) and then running:

cd ~/jmms
git pull
sh install/mobian.sh  # change "mobian" to your distro name if you're running another

If you see an error like:

error: Your local changes to the following files would be overwritten by merge:
Please commit your changes or stash them before you merge.

You will need to open the file and fix it by hand (hopefully this is rare)

#Problems? Questions?

Report problems and ask questions (even simple ones - no judgement) on the issue tracker: