Eight years ago, I spent a weekend integrating my Tesla Model S with Amazon's Echo, enabling me to summon my car from the garage using a voice command. This endeavor involved reverse-engineering Tesla's unofficial API and developing a Golang library to facilitate communication between the Echo and the vehicle. The result was a seamless interaction where saying, "Alexa, ask KITT to pull the car out of the garage" would open the garage door, and then prompt the vehicle to autonomously navigate out of the garage. This project garnered significant attention, highlighting the potential of voice-controlled automotive functions.
Tesla Now Has a Supported API
Fast forward to today, and Tesla has officially released its Fleet API for third-party developers. This move signifies a substantial shift from the days when hackers like myself had to rely on unofficial methods to integrate and innovate. The official API provides developers with structured access to vehicle data and commands, paving the way for a more robust and secure ecosystem of applications and services.
Now Tesla has been open sourcing various tools and making those available to developers. An example of these is teslamotors/fleet-telemetry and teslamotors/vehicle-command on Github, both written in Golang.
However, this advancement comes with its own set of challenges. Tesla's API pricing model has raised concerns among developers. For instance, the developer of the Tessie app estimated that under the new pricing structure, operating costs could escalate to around $60 million per year, a figure that is unsustainable for many third-party applications. This development has led to apprehensions about the viability of existing services and the potential stifling of innovation within the Tesla developer community.
Looking Back
Looking back at this weekend hack from eight years ago, I'm struck by how it crystallized a fundamental truth about modern products: programmability isn't just a feature, it's the foundation of innovation. When I rigged up that Tesla and Alexa integration, I wasn't just building a cool party trick - I was making a statement about what products should be in our interconnected world. The fact that I had to reverse engineer unofficial APIs to make it work only underscored my point: the best platforms are the ones that acknowledge developers as co-creators, not just consumers.
When I called for Tesla to release a supported API eight years ago, it wasn't just about making life easier for developers - it was about recognizing that in today's world, a product's potential is directly tied to its programmability. The most transformative platforms aren't just the ones with the best features - they're the ones that become true platforms for developers and create an ecosystem of applications. I am glad that Tesla has acknowledge this and now embraced developers.
Here is the video I created from that time: