A Shell For Twitter: Shhh
I wrote this idea up a few years ago in a Posterous blog I no longer use. I got email today about the final shutdown of Posterous, so I am posting here to a/ not lose it and b/ because maybe the folks at Twitter might implement all or part of it.
A Shell For Twitter: Shhh
This is a sketch of some ideas surrounding the premise of a shell — a command line interface with some Unix shell-like capabilities — for Twitter.
The Case For A Command Line
There are a lot of things within Twitter that are difficult to do via the Twitter UI, or even through the somewhat better interface that clients support.
For example, updating the location field in Twitter is too annoying, so no one does it much. And the provisioning of lists takes a bunch of clicks to add one person to a list. And the opportunities of doing things dynamically are completely blocked in a very static Twitter world, which I will touch on last.
First, imagine that the Shhh would be based on a command line premise of ‘!application {argument}’, using ‘!’ as microsyntax to indicate the tweet is a call to one of the defined apps:
!follow @username @username2
This would generate whatever series of Twitter api calls would lead to the two accounts being followed.
!list @username @username2 /listname /listname2
This would lead each of the two accounts being placed in both the named lists.
!location San Franciso, CA
Would set the user’s location appropriately.
Group DMs
It would be nice to be able to send the same direct message to more than one person:
!dm @user @user2 @user3 when do you want to have the conference call?
which would create multiple messages, one to each of the users listed
!dm /listname when do you want to have the conference call?
which would use the members of a list as the users to send direct messages to.
Dynamics: Shaped Lists
Users don’t change their configurations in a dramatic fashion in Twitter, but if tools did the work, they might. If I could easily manipulate lists, and follow and unfollow all the people on lists, that might change.
!follow @w2e/twitterers
This would lead to following all the people in the @w2e/twitterers list, perhaps a group of the most interesting commenters at the conference. This would also allow the unfollowing at the end of the conference, too.
!unfollow @w2e/twitterers
Now, I might have been following some of those people from other lists, so Shhh can see if that’s the case. We could also do this like so:
!unfollow @w2e/twitterers -follow
Which can be read as ‘unfollow all the people in the @w2etwitters list, except those that I am following independently of that list. To perform this sort of thing, Shhh has to manage a history of who is being followed independently or by lists.
One last sort of dynamics: dynamic lists. Imagine I would like to define a list that is totally controlled by Shhh, and where those in the list can change based on other factors. For example, imagine a list associated with the news around some breaking event, like the killings at Fort Hood, or a manhattan earthquake (/NYCeq). Such a list could be manually curated, but we could look for retweetings, hashtags, and geolocational information, too. For this we would use the ‘shape’ command:
!shape @stoweboyd/NYCeq -open -location ‘New York, NY’ ‘10 miles’ -watch #nyceq #quake #manhattanquake -size 50
This command reads ‘shape a dynamic list called @stoweboyd/NYCeq, keep it refreshed based on new information, focus on tweets geolocated within 10 miles of NYC, watch for tags #nyceq #quake #manhattanquake, and select the best 50 to be in the list. Every cycle that this shape command reassesses what it has access to, the list of @usernames would change. The shape command would have some adaptive technique — like following retweets and the best twitterers, to build ratings for what are the best sources.
Sources might be manually added to a shaped list, too.
Obviously, this could be directly implemented by Twitter. Optionally it could be an external service that eavesdrops (benignly) to users’ Twitter streams, and undertakes the commands via the Twitter API.
I did float these ideas by a VC in a haphazard way, but I never pursued actively. My blessings on anyone who wants to run with it. Keep me informed if you do.





