Hacker News new | ask | show | jobs
Ask HN: Is there a pure SMS based UI?
93 points by joshcramer 1556 days ago
I’m traveling to an area of the world where the only communication medium I will have available to me is unlimited 140 character text messages. I’m wondering if it is possible to set up a computer that will allow me to fully interact with it via SMS. I’d like to be able to do things like check the news, read and reply to my emails, check on the status of my home and other servers. What is the state of the art in SMS based human computer interaction?
51 comments

IP packets contain 20 bytes of headers, the rest is data. Theoretically you could create the world's worst VPN by stuffing the 140 bytes of an SMS absolutely full of binary data, with some compression of course.

So I went looking for "IP over SMS" and actually found this: https://github.com/spandanb/ipos but it's for web browsers only. This old HN thread talks about the same concept: https://news.ycombinator.com/item?id=8304409

You could possibly port something like https://github.com/PiMaker/Teletun to SMS instead of using Telegram. The Python TUN API seems quite elegant to work with, if you can get two SMS capable devices running Linux you can probably set up the world's worst wireless AP.

Some students had the same idea and built a proof of concept: https://www.thomasclausen.net/en/nice-student-project-at-eco...

That is nice but with 'unlimited' SMS will probably get you throttled quickly. I think OP might be better off with custom SMS integrations, lets say an RSS to SMS notification service for their fav news site that would send the article titles as individual sms messages and would allow requesting the 'full' article by means of an SMS reply

I know Twilio has a nice SDK for building solutions like that

Re: Twilio, just created an account a few days ago. Super simple API, and had receiving texts and robocalling myself with their content running within an hour or so. You don't have to store texts on your own, query Twilio's logs and they're all there.
Person to Person SMS is supposed to average below 1 message per minute. Different carriers will throttle your messages in different ways.
I managed to do something useful with iodine (IP over DNS), a couple of times. Performance is abysmal, but a simple SSH session might have some hope. Most web applications are impossible, and for email you must be lucky.
I remember staying at a hotel in the UK that rented internet in 500MB chunks... i figured out that if I tunneled everything via DNS they didn't count the traffic. I wish I had known about Iodine at that point ;)
I remember staying at a hotel in the UK that rented internet in 500MB chunks... i figured out that if I tunneled everything via DNS they didn't count the traffic. I wish I had known about Iodine at that point ;)
You might also see if you can just restrict interaction to a shell. That's definitely going to be much lower bandwidth (and thus more responsive). Then anything you can do in the shell, you can do through SMS. Updating an 80col screen isn't a completely unreasonable number of messages... especially if you're doing compression.

Security is probably a bigger issue.

Couldn’t that blow up your phone? I could cat a million line file and it would take some time before I could do the equivalent of ctrl-c or close session.
The agent running on the remote machine would need to be aware of this issue and filter out long responses.
Yes, for example, just update the screen no more than once every few seconds. With no compression you can send chained 153 ascii character messages is only 13-14 SMS messages. With any compression, I suspect you could get refresh rates for most commands in less than a second in response to reasonable commands. Unreasonable command responses you could simply ^C or otherwise terminate the script.
These requirements sound very similar to something like LoRa, would be worth checking out stuff in that space too.

You could quite viably fetch the latest article from an RSS feed in this space, or reply to an email, even with minimal compression. The less technical the solution is the better.

I would definitely suggest to have some commands built in and have the ability to poll the current state of your service to ensure it's not being abused, etc. You also might need a human the other side to reboot it occasionally, so make it very simple to get back online.

idk man. i look at https://www.gsmfavorites.com/documents/sms/packetformat/ and i think it's worth smarter protocol conversion - TCP would convert nicely into those status notifications. NAKs are better anyway.
> Theoretically you could create the world's worst VPN

Thanks for the laugh.

But your point is a valid, OP would have a better experience using even something like RFC 1149.

Not that this is a solution for you now, but about 10-15 years ago there were a whole slew of SMS services which were super useful for those without data.

Google 311 (EDIT: actually it was Google 411) let you conduct full searches, local listings, full text turn-by-turn navigation, weather, movie listings etc. You could also call a number and do an voice search that would text you back the results.

Twitter, AIM, Facebook all had SMS based interfaces as well. I remember a privately run system which served up transit schedules.

Was amazing to younger me to be on a bus and able to continue my AIM chats and check the bus schedule without a data plan. You could get useful services sent to your phone and not get sucked in endless feed scrolling.

I can't remember the name of it, but there was a service where you would text a question akin to a Google search and a real human would respond with the answer. If you signed up to be one of the responders (and proved your ability to find and return an accurate result quickly), they paid you like $0.01 per answer.

I thought it was a neat idea back when everyone was still using dumb phones.

ChaCha. It shut down in 2016.
Surely it was more than a penny a response. If each response took a minute then you’ll be making like $0.6 an hour. To make even $5 an hour you’d need to be sending a message every like 10 seconds.
KGB (Knowledge Generation Bureau) was one, and then another one took its place
Uber as well. In fact, for the first year or so I used Uber, I never downloaded the app, just did SMS.
Texting Google in the early 2000’s was so cool. Felt like magic at the time.
Seeing the web on a GPRS device was pretty cool too! It was a bit like watching an elephant perform ballet, seeing it happen at all made up for the fact it wasn't very good.
The Hiptop / T-mobile Sidekick was a GPRS device which used a proxy to slim pages down to a manageable format for the device. I was using one in 2003 (the CSK) and it was quite the revolutionary piece of equipment for the time.

I still miss its ability to multitask, notify, and switch between apps while providing a full keyboard.

We developed an SMS-based automatic question answering service deployed experimentally under the disposable brand name "myNuggets.net": https://www.prweb.com/pdfdownload/203601.pdf Venture capitalists/UK business angels did not share our vision that the Internet's future would be mobile in 2004/5 - well before the advent of the iPhone.

I had the idea for an all-automatic SMS info service when I jumped in a taxi in Edinburgh to attend a conference overseas and had left my hotel address on the kitchen table. I phoned a friend and said "Google that hotel for me, please" - and when I thanked him and hang up, I realized a human wasn't needed for many tasks like that, as they were well within the capabilities of Natural Language Processing (Information Extraction, Question Answering) even then.

We were proud that the prototype engineered had a 2 s round-trip time, including Web-meta search, answer extraction and SMS-HTTP gateway calls (very expensive back then).

most (all?) cell service providers also had built-in email/sms gateways... so you could build your own services that did this just by building simple email interfaces.
My grandfather used SMS to get weather & sports updates for years. He still isn't on the Internet and honestly would love to still use SMS.
> You could get useful services sent to your phone and not get sucked in endless feed scrolling.

Technology as it should be! Do you think the browser UI dominance was marketing, convenience, something more sinister…?

In 2014, I had a similar problem so I created Cosmos Browser, an Android based internet browser which allowed people to connect to the internet via SMS. It's pretty much dead now, but wouldn't take a lot of work to revive it if you really wanted to.

https://github.com/ColdSauce/CosmosBrowserAndroid

This is incredible - I remember seeing this project at a hackathon back when I was in college and thinking it was so cool! So funny to see the actual author of it posting about it on HN now :). Really such a cool project - would love to see this become more mature.

Without actually looking through the code, I have a few questions:

1. How slow is it loading webpages? I think SMS would be a little sluggish since each message can only contain 160 characters.

2. How do you guys manage out of order text messages? Is there some sort of metadata that governs the order of a multi-part SMS?

Thanks so much for posting this - really a blast from the past.

Thanks! Yeah it was fairly slow but we did some work to try to make it faster.

Our process was

1. Remove all JS and CSS from the HTML file

2. Compress the file into a gzip stream

3. Base64 encode the file

4. Send it as a stream of text messages with some metadata on sequence numbers, etc

SMS uses the GSM 03.38 encoding which is a 7 bit encoding. I think we were working on building a custom encoding scheme for it rather than using Base64's 6-bit encoding, but never got around to it.

I think reddit.com (back in 2014 when it wasn't so fancy as it is now) took about 20 text messages to load, so you can imagine it would take less than a minute.

This is crazy that I stumbled upon this post, I just learned about HackerNews today and saw this on the front page! I've been working on making a sort of revival project of Cosmos browser for a couple months now using a custom encoding and better compression. With the GSM 03.38 spec, I found there are 125 usable characters that I could use as a custom base, but I found out that for some reason the 0x10 column of the character set is mostly non-functional using any SMS API like Twilio. The characters from row 0x00 to 0x0A just show up as "?" instead besides the underscore. I contacted support for multiple API providers (Twilio and Plivo) and found that this is an issue on the operator level, which is quite surprising. I doubt this will ever be fixed because the problem runs so deep. This limits the usable characters to 115, which still has surprisingly good improvements in encoding efficiency compared to base64. I also used the (relatively) new Google brotli compression algorithm which allows me to compress even more efficiently. I'm still finishing a proof of concept so I don't have a GitHub repo up yet but I will soon (I'm a first-year CS student so I need to make my code somewhat presentable before it draws the internet's scrutiny, haha). Right now the server uses Python and the client app began as a fork of Cosmos browser. It turns out that getting code from the KitKat era to work on Android 11 isn't the best solution so I'm looking into rewriting the app. Regardless, thank you so much for your work! I'm super excited to finish the proof of concept and I hope to be able to implement the peer-to-peer system you briefly mentioned in the repo by having a "server" option you could turn on in the app that leverages a user's phone number and internet connectivity to allow other users to connect to that number.

Edit: I also want to add that I've looked into UCS-2 encoding (here: https://www.twilio.com/docs/glossary/what-is-ucs-2-character... ) but I'm not sure if the decrease in characters per message (only 70 instead of 160) is worth the greater amount of characters (theoretically 36,864 but probably includes many non-usable characters). It would also require a more complicated encoding algorithm, and I'm not sure how well supported this is by carriers internationally.

This is a great, ambitious, but doable project for a first year CS student.

You should put up a github repo when you're done, regardless of how you feel about the way the code looks. It will absolutely help during a job search.

I appreciate the comment - at first I wasn't sure if it was too ambitious, but once I realized that Android has libraries for parsing HTML and a documented way to send and receive texts, it was more manageable. It was also nice that ColdSauce had created something that I could use as a reference so I wasn't going in blind. I definitely plan on putting up a repo, probably within the next couple weeks. Going into this project I realized there's a lot more potential and the open source community would be beneficial to help expand the scope of this project!
That's awesome - feel free to email me (should be on my website) if you want to talk more. Can share some tips and tricks or answer questions you might have.
Thanks, I'll be in touch.
I dunno... reddit seems the same as it's ever been to me :-D

https://old.reddit.com

Did this comment just remind you to update the readme? All 7 years old, and then 35 minutes ago, I love it lol. Very cool though
"Oh man I knew someone in college who made a project EXACTLY for this purpose!" ... "Oh wow this project seems familiar..." ... "Oh wait that's the same person."
I have a second SIM card that T-Mobile gave me for free (no idea why). I have it installed in an Android phone running Tasker with a bunch of jobs I created to do various things. Android phone stays at home while my primary (flip phone) comes with me. I get specific Matrix (https://matrix.org) messages forwarded to my flip phone, I can query the weather, I have a couple RSS feeds forwarding, and I can enable/disable any of these tasker profiles by sending custom commands from the flip phone back to the android. Obviously this requires having a second SIM card, but you could probably find a super cheap talk/text (or text-only?) prepaid plan temporarily and set up something similar. Tasker is extremely powerful and could conceivably do most if not all of what you're asking.
you could also use Twilio to build an SMS inbox API and do it without any hardware.
That's so cool!

Q: How do you get Tasker to read Matrix messages?

The main issue with SMS is that it's unencrypted and often intentionally being piped to third party firms for advertising and whatnot, so whatever you do it probably isn't advisable to send anything you wouldn't want people seeing (eg. I wouldn't suggest doing email via it). If you have even the smallest data cap, https://lite.cnn.com can be used for your news and https://mail.google.com/mail/u/0/h/ (/h/ at the end) will load the mostly pure HTML version of Gmail, or even just imap (without automated push/pull) is pretty lightweight on data usage.
If this is the case, why do so many apps use SMS for 2FA and sending unique links? Are MITM attacks over SMS common?
Well… it’s not necessarily a good idea to do 2FA with SMS. Additionally, the codes sent by SMS are usually very time-sensitive, like 5 minutes.

And it means someone has to have compromised both your computer and your SMS in order to defeat the 2FA. Which doesn’t make it impossible. But it’s not trivial to coordinate those things.

But, to add, sim swap attacks are a known issue and anything of value becomes a target. The main issue is that retail employees in 'authorized reseller' locations are allowed to make changes to accounts with the PIN of the account holder, but that is often easy to guess or is easy to figure out by anyone that does enough digging into someone's life.

https://www.cnn.com/2020/03/13/tech/sim-hack-million-dollars...

https://youtu.be/caVEiitI2vg?t=145 (tldr he got cold called to set up 'extra security', gave the attacker a PIN number, and the attacker used that to impersonate them within a T-Mobile store and swap the sim card from the phone into a new phone, thus receiving SMS 2fa codes for their accounts).

On the level of individual accounts, SMS has proven to be vulnerable to compromise. These attacks are pretty labor-intensive though. On the level of an app or service, SMS 2FA is still a big net gain in blocking account compromise though. Individual users, especially anyone who is at a particular risk for targeted attacks, would be wise to seek out more secure solutions.
MITM isn’t common, but the big problem with SMS for 2FA is that mobile numbers are portable. If your number gets ported without your consent then your 2FA codes gets sent to a device you don’t control.[1] NIST stopped recommending SMS 2FA half a decade ago for this reason.[2]

[1] https://en.wikipedia.org/wiki/SIM_swap_scam

[2] https://www.schneier.com/blog/archives/2016/08/nist_is_no_lo...

Most companies suck at security. Most users suck at security. Convenience > Security. It is sad that SMS as 2FA account recovery actually adds an attack vector. It is less bad as an out-of-band check if you have a password authentication from a known and finger printed computer.
because SMS already has near-universal adoption. As much as I love my yubikey I don't know anyone (in the real, not HERE) who uses one for a personal account.
End user convenience.
Rather, adminstrative convenience. Mind that SMS-based 2FA replaced one-time pads (TANs), which required physical handling.
What you want if your comms layer supports it is this:

https://en.wikipedia.org/wiki/Unstructured_Supplementary_Ser...

It works on dumb phones and is extremely lightweight. Think of it as connection based SMS. Very popular in places with low connectivity.

Telcos and Mobile Money services where I come from (Malawi, Africa) use USSD extensively and it works well. So much so that even though some Telcos have Android applications for some of those services - people still mostly rely on USSD menu-driven applications to perform tasks like buying airtime, and sending and withdrawing money.
Yes, that's how I know about them (M-Pesa, specifically, not in Malawi I believe, but in Kenya and Nigeria).
You can’t use it for your own applications willy nilly, though. You have to talk to the sms center of your comms operator, and that comes with costs and infrastructure to set up.
Yes, this is similar to having an application server hookup from the Videotext days, or for a more recent example, to have a point-of-presence in someone else's datacenter.

I'm not sure if there are gateways to the internet available for the server side, that would seem to be a logical development.

This presentation by an engineer from Wave (African fintech) shows how they used SMS and other tricks for zones without internet:

https://www.youtube.com/watch?v=EAxnA9L5rS8

This is interesting - thanks! Two of my CS lecturers at university were involved in setting up/improving networks across Africa and they had great stories to tell about that.

A LOT of stuff happens via USSD codes and SMS.

Far from state of the art, but…

I used to have a cheap Huawei dongle connected to my desktop that I'd interact with via awful scripting against gnokii¹. If you're the type of person that likes hacking up your own solutions it can be quite fun to work with.

After a lot of trial and error^wimprovement I found it useful to use gnokii's SMS mailbox export, and run a job to iterate over the exported mailbox periodically. The simple reason being most scripting languages ship with mbox support out of the box, and there are heaps of tools for handling them from a shell script.

¹ http://gnokii.org

Most providers let you email phone numbers to send an SMS. I don't know if your LEO phone would. However, when I attempted it every "from" was a different random provider phone number (fewer digits than normal)

Keep in mind SMSs are pretty rate/bandwidth limited in your use case. SMSs originally (and probably still in your case) were based on having 140 bytes of freeish data in the keep-alive style pings between tower and phone. So you only get/send one SMs per (on regular devices I believe this is no longer the case).

Can you program the device you will be using, or does it need to be human readable?

One solution might be to run a cloud SMS service. You can set up an SMS endpoint on AWS with bidirectional communication. It would let you write as complex code as you would like to generate/parse the SMSs, and probably falls into almost free at a personal scale.

As a warning as someone who built a little SMS autosender (as I said earlier based on email), be careful you don't accidentally DoS yourself. Consider some way to turn it off. Constantly getting texts on a device without the ability to assign a specific ringtone because the event you was sure was rare happened more frequently was no fun until I changed the code.

I've never had the email/MMS gateways work. Personally I prefer JMP.chat which gives you a nice XMPP/MMS gateway and is much easier to work with.
Note that the OP must use SMS, not MMS.

In the US it wasn't an issue. What was the trouble? Keep in mind I was sending it to one or two people. I have no doubt it doesn't work on a mass scale.

JMP.chat does pure SMS by default, you have to ask to be part of the MMS beta.

I've only really tried AT&Ts gateways in the US from gmail, maybe something has changed but it never worked for me.

AT&Ts gateway worked for me around 2019. I was sending it from a domain that was set up with all the anti-spam things you have to set up to be a good sender (whatever rules so GMail etc don't dump all your messages right to spam, they are recorded but I don't recall them). It's possible that GMail was blacklisted because a lot of spammers had a ton of Gmail accounts.

Edit: Super important. You can turn that feature off per phone number. You (or your recipients) may have told att not to send them

I was part of a project at Oxford where we installed sms transmitters on waterpump handles in Kenya, which sent sms signals giving us data about the pumphandle's movement (and therefore water consumption, and state of the pump).

It was amazing how much we could do with SMS. It really is a great medium.

If I remember correctly, we used FrontlineSMS https://www.frontlinesms.com/ It worked very well. I can't remember the exact details now, but I think the messages were sent to a modem, connected to a PC which ran frontlinesms, which automatically triggered actions depending on the nature of the incoming sms.

Later on I think we switched to a completely managed solution, which stored the data for us and allowed us to download from the 'cloud'. The "modem connected to a computer" thing sounds more like what you're after, but conceivably with the right scripts you could also make use of a cloud solution.

SMS is stateless, so you’d have to add sessions on top of it. The simplest probably would be to have a single endless session tied to your IMEI or phone number.

For UI, I would look half a century back. ed (maybe with slightly more verbose prompts. Sending a single character is as ‘fast’ and ’cheap’ as sending 100) may well be the editor of choice, for example.

Alternatively, look at speech interface systems, and adjust them for text input. Those typically are more constrained, though.

For what it's worth, I built a service that allows you to use Google Maps and a dictionary over SMS: https://gistsms.com

I've stopped working on the project but would be curious to hear if there's still interest!

I think it's fabulous. Just signed up to be notified when it's ready. ;-)

Anyway, you now have my email.

Not exactly what the OP asks, but still surprised that no one mentioned M-Pesa yet:

> M-Pesa (M for mobile, pesa is Swahili for money) is a mobile phone-based money transfer service, payments and micro-financing service, launched in 2007 by Vodafone and Safaricom, the largest mobile network operator in Kenya.

> The service allows users to deposit money into an account stored on their cell phones, to send balances using PIN-secured SMS text messages to other users, including sellers of goods and services, and to redeem deposits for regular money. Users are charged a small fee for sending and withdrawing money using the service.

> M-Pesa is a branchless banking service; M-Pesa customers can deposit and withdraw money from a network of agents that includes airtime resellers and retail outlets acting as banking agents.

> M-Pesa spread quickly, and by 2010 had become the most successful mobile-phone-based financial service in the developing world. By 2012, a stock of about 17 million M-Pesa accounts had been registered in Kenya. By June 2016, a total of 7 million M-Pesa accounts had been opened in Tanzania by Vodacom. The service has been lauded for giving millions of people access to the formal financial system and for reducing crime in otherwise largely cash-based societies.

https://en.wikipedia.org/wiki/M-Pesa

This doesn't directly answer your question, but there's a nice SMS interface framework available for Django called RapidSMS[0]. It's been a few years since I've played with it, and never got around to testing "in the wild" / with a real phone, but, it makes the Request/Response <-> SMS gateway mapping pretty easy to navigate

[0] https://github.com/rapidsms/rapidsms

There's a free software android app called Silence that lets you send encrypted SMS. The functionality was originally in Signal, but at some point that project decided to remove it. So "Silence" is the fork of Signal that was made specifically to retain that feature. as a result, it uses the Signal encryption protocol. (but it can't federate with Signal)

https://silence.im

FYI, Iridium Go plans include an unlimited data plan.

Very slow, but people have actually used ssh over it.

With this you’d actually be able to achieve your use case goals.

This is the right answer. Prefixed with a "No, SMS won't work for that in 2022."
IMVHO: you can base64-encode anything so any "REPL-alike system" (classic CLI included) can run over SMS BUT it would be probably less expensive buying a satellite connection for boats (C or Ka band) and relevant hw...

Just to check news a classic radio, or again in many area of the world a satellite dish for C or Ku bands works far better, emails might be more problematic for html messages, having at home a small server that pipe a classic mail (1) UI over SMS is easy but html2text converted mails are generally not good. Status check I do not know how much can be useful: you can know that's something goes wrong but you can't do almost anything so...

I wrote a trilingual one (Chinese, Korean, English) circa 2005 which allowed fuzzy search and directory services.

The main issues are expense, per-message character limit (which is based on your character encoding; note Unicode UCS-2 is super-wasteful vs. other alternatives), latency, and questionable inter-network reliability.

If you're in Alaska, honestly, if you're not really hard up for money just get a satellite deal like the sailors use, they're getting way cheaper.

Don't even begin to dream about forcing IP down SMS. You could do a batched shell service if really desperate, but it would verge on unusable and you'd likely get rate limited at some point.

Could you elaborate on why UCS-2 is so wasteful? I think that makes sense on the surface level, but if you encoded a message using all the characters available in the BMP that UCS-2 provides then each character has tens of thousands of options rather than <125 with GSM-7. Considering the difference is a little less than half (70 chars per message vs 160), with the right encoding, shouldn't UCS-2 be much more efficient? Or is it not possible to encode data like that?
Can't recall specifics but I think I compared some languages (maybe an abugida like Thai) with UCS-2 vs native encodings and found UCS-2 was smackdown terrible. iconv is your friend for this. If you want efficiency skip charsets and use a binary PDU. Most phones with AT command sets used to support this. All GSM modems support this. These days, I am unsure if you can get a low enough level API to a smartphone to send and receive binary PDUs. I guess probably somehow, at least on Android, at least with root, but it's almost certainly a hassle.
Good point. I was looking into a way to maximize efficiency on Android without low-level access (no root necessary), so I'm pretty much limited to the charset that I can receive from the Android APIs for encoding binary data into (36864 chars). I was wondering if even the limited character set offered by an Android SMS receiver would still be magnitudes more efficient than the standard GSM-7 character set for encoding binary data, even though the amount of characters is less for each SMS. I'm having a hard time understanding if I'm oversimplifying things by just looking at the ratios 160/128 to 36864/70, in which case I would assume there would be huge benefits to encode data with UCS-2 instead? I haven't the slightest idea in how to accomplish that, maybe iconv would be useful as you mentioned? That is something interesting to consider though, dedicated hardware could easily take advantage of UCS-2 and encode binary PDUs to the point where you could achieve a somewhat respectable speed for TCP over SMS. Though by that point, I would assume SMS throttling would be a much larger concern so any benefits are mostly theoretical.
I'm pretty skeptical that there's any area in the world with reliable SMS and no mobile data, not even GPRS.
Maybe they just can't afford data in their location, but can afford SMS (or are on somebody else's plan etc)
For consuming information I feel like it's pretty realistic to roll one (I don't know if one actually exists) but for any data modification (like replying to emails) isn't any sort of Authentication going to be 100% infeasible due to the weaknesses of SMS?

You might be able to get by it with some sort of SMS signing system but you really don't have a lot of room to work with and it'd likely make it unreasonable to handcraft any of these messages.

I update my own site/blog/journal with a sms-only service I set up: https://textpost.me
SMS-only? How are you adding the photos if not MMS?
wow! Can I send text from India?
Hmm. No idea, actually. Incoming texts run through Twilio.
When SMS was first introduced it type UK, it was free at least for some carriers (Orange). Data was a traditional mobile phone call and therefore very expensive (we are talking even pre-GPRS, it was WAP or nothing so far as I recall). There were some IP-over SMS projects.
Depending on how important this is to you there is always the option of getting yourself a VOIP number and a softphone on one of your computers and hooking a small script into it to do whatever things you want to acchieve.

Never done anything like this but I imagine that it might not be too hard since the infrastructure is pretty much there already. However building a "protocol" on top of SMS might be somewhat tricky. You might want to write an APP or something for that.

As for "fire and forget" solutions ... Well, there are email to SMS gateways if i remember correctly.

Back in the days of the growing spread of mobile comms, there was a convenience of email-SMS gateways. One could send an email, which would then be delivered as SMS messages onto the mobile.

If that's the case for you, then at least the delivery to your mobile may be simplified. Your remote systems may just schedule the sending/forwarding of the whatever textual data via email corresp. to your mobile address.

As for the reverse direction, there needs to be some gateway on your remote end to proces the incoming SMS and forward these correspondingly.

This reminds of Google's SMS-based search that was shut down a few years ago

- https://slate.com/technology/2013/05/google-sms-search-shutd...

It was extremely handy in the pre- smart-phone days.

There’s always these guys, who made quite a splash on this here message board:

https://news.ycombinator.com/item?id=9087819

https://news.ycombinator.com/item?id=9107658

My mate created kind of SMS dialup a few months ago, but (in my opinion) it's poorly implemented (if anyone would like to implement it in a better way I don't think he'd mind)

https://github.com/acejr1337/smsdialup

A while back a buddy of mine wrote a Python framework that does pretty much exactly this! It has several demo modules already, such as fetching a weather report and requesting an Uber.

https://github.com/hunterirving/phoneHome

You're basically talking about building a modem over SMS. I wouldn't use Twilio. The costs will be insane. Now what you could do, is get yourself a rooted phone stateside with custom software to receive requests for webpages via SMS. Then it sends back all of the data via SMS.
you might have an easier time splitting up send and receive into separate managed things instead of looking for one system to do it all over SMS

_SEND_

You can send an email over SMS I believe by texting the email address.

So you should be able to set up a server to process emails you send to a specific address and trigger commands in response to it. the triggers would need to be set up in advance, but other than that you should be able to do anything normal

_RECEIVE_

For receiving SMS - I am not sure tbh. You could use Twilio, but it might be overkill. I would jsut make sure whatever solution you use doesn't get automatically blocked by the ISP. I am not sure the proper way to flag something as wanted / intended

You could definitely create it with Twilio, you might be able to do most of it without even writing any code by using Twilio Studio.

https://www.twilio.com/studio

Reminds me of this talk but I have never used anything like that myself: https://www.youtube.com/watch?v=ZsBAkSxwU5c
I think Arist a YC company is an SMS education platform.

https://www.linkedin.com/company/aristlearning/

I made something similar Running terminal commands over sms

https://github.com/mtdevss/server-text

SMS may be unlimited but are you sure it's not rate limited?
Which part of the world?
Alaska. It is possible to get LEO phone / data, but it is more cost prohibitive. Unlimited SMS plans on LEO satellite services are relatively cheap.
Have you tried using these services? It can take anywhere from 5-60 minutes just to send a message. It's a reason they often go from 10-20 messages included in the monthly cost to unlimited for only a few bucks more. You're not going to be sending many. All sending and receiving happens through their proprietary application.
I assume we're talking a deep Bush situation, as all but the tiniest villages have regular Internet service nowadays.

Might be worth looking into Starlink, if you haven't already. I know it does have coverage in at least some regions of the state now.

Source: have lived in Alaska for many years.

Some of these projects kinda remind me of the http tunnel over icmp/ping to bypass in-flight wifi restrictions. That was an interesting hacker news post a while back.
Your best bet is to set up something like FreeSWITCH that you can text with keywords or your own custom arguments, and have custom scripts craft a response.
This isn't a new concept. When I was at Uber I heard of some places in the world we did data over SMS, using it as a secure transport layer.
there is no such thing as unlimited, you will still have a bandwidth cap or "responsible use policy" which your IP-to-SMS protocol will easily overflow. I believe translating even a basic set of http request responses into and from IP/SMS will cause lots of SMS jam. but interesting proposition nevertheless :)
I'd love to see remote shell over SMS. Seems a pretty fitting mapping. Not very secure, though.
Why not hire a remote personal assistant and command him or her by SMS to do stuff for you?
not aware of anything universal. There are SMS-based services for lots of things, but less in the context of "UI for my own things".

in lots of ways, it's console UI with additional length limits I guess? Or chatbot-UI.

Https://textit.com
Which country will you be in? Can you send international SMS for free?
Starlink sounds like a better deal if you really need connectivity.
I intend to build one, eventually. We'll try.
capsule does a great job with SMS based UI, my girl doesn't even have the app on her phone just texts with them
there was http://cel.ly, they are no longer available.
SMS No-Code Tools

A ssh-through-sms tunnel would be fun

Sounds like the IP-over-pigeon protocol https://datatracker.ietf.org/doc/html/rfc2549