SMS the new command line.
The idea: to reverse engeneer Twitter — a port of the SMS culture into the social websphere — to operate web services via SMS.
People, and particularly teenagers, have developed a peculiar way to chit-chat via SMS due to the inherent constraints of poorly usable keypads and the necessity to write concisely. This SMS lingo uses a lot of abbreviations and shortcuts that, while highly questionable in terms of belles lettres, is higly efficient, light and quite fun too.
This weird lingo is close in its form with command lines scripting, although the syntax is purely human and not structured at all. There are also a lot of variations depending on the real language it derives from, and on the tribe the user belongs to.
As strange as it may seem, with between 1.5 or 2 trillions SMS sent worldwide in 2006, it’s obvious that users are considering SMS as a perfect communication tool for their needs, despite its primitive aspect.
I recently worked for a media company that offers a nice way to get any web and personal content on your cell phone via a personal repository called the “Locker”. From you computer, you can grab stuff and put it in your locker; from your cellphone you browse your locker’s content and use it as you wish (wallpapers, ringtones, videotones, etc.).
In this context, I just sketched out what a SMS dialog could be with such a service. I transcript it “as is”, it’s pretty rough, but I would be definitely interested to get your feedback.
Let’s say I am a Stuff2Phone.com user, my locker name is “guillaume”. In my Locker I have different default directories containing my medias (videos, ringtones and images) and my friends. My locker is RSS enabled, a friend can subscribe to it and get my news, or my listings, etc.
To communicate with the service, I just text commands to a specific number, say 1-123-456-7890, this number is the root. The number I’m calling from (my cell phone) is my ID, so there’s no need for login.
From the root, to access my locker, I just send the following SMS to number 1-123-456-7890:
guillaume
In reply, I get a SMS reading:
Locker content: 1-recent | 2-videos | 4-ringtones | 5-images | 0-more
OK, this is pretty poor.
But what if we use a set of basic commands and abbreviation anyone can learn and store into their cellphone’s dictionary ? Let’s say I want to browse my videos:
guillaume.video
…that returns something like:
video content: 1-videoName | 2-videoName | 3-videoName | 4-videoName (…) | 0-next
… to get video #4 on my phone:
guillaume.video.4:get
or simply:
4:get (because the user is already in directory root/guillaume/video/)
OK, now let’s get wild. I want to send an image from y locker to a friend of mine, I type:
send guillaume.image.5 to myFriendNickname
or, if I’m already into my image folder:
5:send 2 myFriendName
… my friend receives a SMS with a weblink to download the image on his phone.
If I want to drop an image from my cameraphone in my friend’s locker, I would just select an image, click “send”, choose the service’s number and write:
send to myFriendNickname.image text=bla bla bla
(I also added a short text description to the file)
Now I want to keep updated of my friend’s new images (i.e. subscribe to RSS)
subscribe 2 myFriendNickname.images
Request friendship
request newFriendNickname
or newFriendNickname B my friend
Send a note to all my friends
write to guillaume.friends.all text=bla bla bla bla
Simple requests:
recent?
myFriendNickname.video.rank=top
myFriendNickname.ringtones.tag=rap
myFriendNickname.images.search=britney
subscribe 2 myFriendNickname.ringtones.rank=top (subscription to my query)
Etc. Etc.
It could be fun too with, say, a wine store. Let’s say you have an account at your local wine store, you have registered your mobile phone number plus your home address (for proximity). You are invited for a supper at your friends’, the menu is foie gras, osso bucco and pear pie.
You send a SMS to your store:
foie gras osso bucco pear pie 2 bottles max 40$
Reply from your store’s SMS service:
Our advice: 1 white Sauterne, 1 red Buzet. 36,98$. Type: 1-buy+take away | 2-buy+deliver | 0-more choices
You send: 1
You get the reply: Your command will be ready in 15min at your local store. Type: 1-change store | 00-cancel
Any comments and alternate ideas are MUCH welcome.





I love using SMS as a command line. There’s a longer history of using chatbots over IM and in IRC.
I coded my own little chatbot one week-end after trying a couple others. The menu paradigm gets really old for power users. I want a consistent CLI with simple words, and I think it can be extremely concise.
“help”, “h”, “?” — lists most common commands
“cal?” gets help for the calendar, or a list of matching commands if there is ambiguity.
As much as possible, I’d make elements implicit, and shorten the rest.
write to guillaume.friends.all text=bla bla bla bla
would become
msg all is there a cool 5 a 7 friday in Montreal?
I should get back to that project once I’m done studying adwords and freebase. I’d love your feedback. Is my approach doomed to only appeal to nerds?