Text an LLM at +61493035885
TLDR: send a text to +61493035885 and get an AI-generated response! Available in 21 countries—check the FAQ for details. Try it while it lasts!
Background
Just last week, a tropical cyclone rolled through the Gold Coast. Thankfully, we were minimally impacted, but we did lose power for four days, and the phone tower near us went offline. We still had reception, but it was from a much farther tower, which was likely very congested. As a result, mobile data was pretty spotty, but texting and calling remained reliable.
This made me think—wouldn't it be great to send an SMS to an LLM? Sure, I'm a dev and could run a local LLM on my laptop, but many people don't even know that's possible (or have the hardware to do so).
Implementation
I researched the options, some API-based text services sounded great, but the cost is higher than the LLM calls(!!!). So here was the final approach I landed on:
- Using an old Android phone + prepaid SIM with unlimited international (to some countries) texting
- Running an open source SMS gateway on the phone
- Running a simple Node.js server on the phone in the Termux environment to relay the SMS between the gateway and the LLM (Deepinfra Llama 3.1 8B)
- Basic SQLite storage to keep the conversation history
And that's it! You can send a text to the phone running this at +61493035885
I also add a system message before each prompt to encourage the LLM to be brief ("Keep responses short and concise for SMS readability"). This helps reduce load by preventing extremely long SMS messages.
FAQ
Which countries does this work from?
These are the countries covered by the phone plan's unlimited international texting. If you're outside these, I've hard-blocked incoming texts from being processed.
- Australia +61 (obviously)
- Brazil +55
- Canada +1
- China +86
- France +33
- Germany +49
- Hong Kong +852
- India +91
- Indonesia +62
- Ireland +353
- Israel +972
- Japan +81
- Malaysia +60
- Mexico +52
- New Zealand +64
- Norway +47
- Singapore +65
- South Korea +82
- Thailand +66
- UK +44
- USA +1
Is it free?
There's no extra cost from my side—just whatever your carrier charges to text an Australian mobile number.
Why Llama 8B? <X> model is bigger and better
This is a proof of concept, and I wanted to keep costs manageable. Also, Deepinfra seems to be offering the 8B model for free—at least for now. I'll know for sure when I run out of credit!
You can't run this from a consumer SIM
Probably true—let's see how long before my carrier disconnects my service!
Your phone won't keep up
Yeah, I know. If a flood of messages comes in, something will definitely bottleneck—whether it’s the CPU, SMS queue, or the network itself. Guess we’ll find out!
How long does it take to get a response?
It depends! The LLM itself is quite fast—typically generating a response in just a few seconds. However, the main delays come from the SMS network and phone processing. Sending and receiving texts isn't instant, especially if the phone is handling multiple messages at once. If traffic is light, you should get a response in under a minute. But if many people are texting at the same time, there could be delays due to SMS queueing, network congestion, or the phone's processing limits.
Further exploration
There are many ways this idea could be expanded upon. A rough list that comes to mind:
- Enhancing the results with basic search engine results for realtime information. This could be easily done (at high cost) using something like Gemini with Search. This would be helpful in a natural disaster to try and get relevant information from web sources while you don't have internet access.
- MMS + a multi-modal LLM.
- URL summarisation: If a user does not have internet but has a URL, you could perform a scrape + LLM summarisation and return that to the user.