The man behind SiriProxy, Pete Lamonica, has taken Siri and shown Apple what it looks like to think outside the box. If enthusiastic geeks have the technical knowledge, the possibilities of SiriProxy are nearly endless.
Pete has let iDB in on the development process for SiriProxy and explained what his motivation was for putting the proxy together. This is his first official interview since SiriProxy went viral…
iDB: What made you think of SiriProxy? What hole were you trying to fill?
Ever since Siri came out, I’ve been clambering to hack it. You can see from my frustrated post to our local Hackerspace board, I wasn’t having a lot of luck.
That was almost a month ago. When I heard of Applidium’s success in cracking the protocol, I immediately downloaded their tools and took a look. I didn’t know Ruby (the language their tools were written in), so I saw this as a chance to learn Ruby by organizing the logic they had discovered into a more formal and useful program.
Originally, I planned to create a more ambiguous video where I’m ostensibly demoing Siri, but halfway through the demo, she experiences an emotional breakdown (think: “Why doesn’t anyone ever ask what *I* want?!”). That turned out to be more work than I had imagined, and College Humor executed a similar idea with far more talented actors. So I thought about doing something else. I already had a thermostat that could be controlled remotely over Wi-Fi, so I thought it would be fun to make Siri control it. From that, I came up with the idea of making the thermostat a “plugin” and allow others to also extend the functionality of Siri in their own way.
So, to answer the question, the hole I was filling was my lack of knowledge regarding Siri and Ruby. Everything else flowed from that. As a hacker/maker/tinkerer, I’m always interested in learning about how things work and making them work in new and interesting ways to delight and amaze people and further my own skills.
iDB: Something like this can’t be easy to create from scratch. How much work was involved?
To be honest, the biggest hurdle was learning Ruby. I’ve written network applications before, and Applidium’s technical information was invaluable. In total, I spent probably 20-30 hours writing SiriProxy before releasing my demo video. Since then, I’ve spent another 20-30 hours working with others improving it.
iDB: Where do you see SiriProxy going from here, what plugins are in the works?
Well, we just threw everyone a bit of a curve-ball by changing how plugins are written. Since this was my first Ruby program, it violated a lot of common practices and missed out on a lot of features of the Ruby language. Luckily, the publicity that the software has received brought in a few very talented Ruby developers who have been helping me sort everything out. Plugins are now much easier to create, manage, and integrate. But everyone is in “re-write” mode at the moment updating existing plugins for the new interface.
The future of SiriProxy itself is very much up to Apple. I’m learning a lot, and I’ve been absolutely amazed with some of the things people have done with SiriProxy (especially the guy who made it start his car). But this project (or at least my part in it) lives and dies by the word of Apple.
Everyone who is working on this project is a huge fan of Apple. If they tell us to stop, I will certainly comply. I would love to work for them one day, I think they create amazing things, so I don’t want to do anything to hurt them. But as it is, I’m having a great time, and I don’t think that we’re really hurting anything by playing around.
iDB: What is the end-game? Do you see Siri eventually being able to control anything with the right API?
I really hope the “end-game” is an official API blessed by Apple. Our system is very much a hack, and isn’t suited for wide deployment. I think what we’re getting right now is a hint of what to expect if/when Apple releases an official API.
With our new plugin interface, it’s very easy to interface with Siri, and I’m extremely excited to see what comes with our “lowering the barrier to entry” on writing plugins. I really do think that we’ll see dozens of great plugins that control everything — including the kitchen sink!
iDB: What does this mean for the average user, one who doesn’t have the tech know-how to run their own SiriProxy?
As I said, I hope that it offers a glimpse into what can be expected from an official API. While there has been a great deal of talk about “public” SiriProxy servers, I have to warn people not to participate in that sort of system. The method we use for decrypting the communication between Siri and Apple would also allow the administrator of a public SiriProxy server complete control over a user’s phone (the ability to steal private data, track users’ locations, decrypt encrypted communications, send text messages, etc). By using someone else’s SiriProxy server, you’re basically handing them the keys to the kingdom for your phone. So widespread use should not ever be an option using this method.
Maybe once there are jailbreaks available for the iPhone 4S, we can provide a more convenient, accessible, and secure method for using SiriProxy (possibly even running it on the device itself). I would say that if you are comfortable jailbreaking your phone, you’ll probably be able to use SiriProxy at some point (assuming Apple doesn’t shut us down).
iDB: Are there plans to make ‘SiriProxy for dummies?’
Unfortunately, we are deliberately keeping the learning curve too steep for laypeople at this time. This is for reasons having to do with security (as I noted above), because we really don’t know what Apple thinks of all this, and because the tool just isn’t ready for mainstream. This project has a life of its own and grew up very quickly and unexpectedly. The tools required to even begin development of this tool are less than 2 weeks old. It’s really far too early to say much about where the project is going long-term.
iDB: Do you think Apple will open Siri up to this kind of thing officially, without the need for a proxy?
I sure hope so. It won’t be easy for them. Apple may not always be the first to do things, but they strive to do things right the first time. Completely opening up Siri to third parties the way SiriProxy does will not work for Apple. It gives apps far too much power over the device. Apple’s controlled, collected approach will certainly mean we see a more “neutered” version of a Siri API than offered by SiriProxy. But hopefully we’ll see some of the same sorts of amazing interfaces that we see with SiriProxy now.
iDB: Who are you when you’re not creating awesome proxies?
I live with my fiancée in St. Louis, MO, where I’m a professional Java developer.
I’m also a part-time graduate student in computer science at SIU Edwardsville, and a founding member of the ArchReactor hackerspace here in St. Louis (where I waste a couple nights a week geeking-out with my friends).
I’m a perpetual learner and I love to take any opportunity I can to learn something new (especially about computers or technology). I’m also a total Apple fanboy — the kind that hops in a chatroom with his friends and watches live-blogs of apple events. I also enjoy watching professional Starcraft II. So, yeah, I’m a pretty huge nerd.
Thanks to Pete for taking the time to answer our questions, and thanks to both Jack Chen (from Australia) and Dominick D’Aniello (from New York) for joining Pete to help make the project so useful for everyone. The iOS community as a whole is appreciative of the efforts put into making SiriProxy the tool that it is.
I’m sure Pete will be lurking in the comments section below, so if you have any more questions, ask away. We’d also love to hear what plugins you would like to see made for SiriProxy, and why.
You can also follow Pete on Twitter.