Most home and office appliances contain microprocessors. All these appliances have some user interface, but many users become frustrated with their appliances' difficult, complex functions. However, a new framework, the personal universal controller (PUC), lets users interact with appliances through a separate user interface device that they carry. Smart phones are good candidates for providing interfaces because they're common, their communication capabilities connect users to appliances, and they're already being used for a wide range of applications. The framework includes an abstract specification language for describing appliances, a two-way communication protocol, and automatic interface generation software that customizes user interfaces. This article overviews the PUC system and describes in detail the design and implementation of automatic interface generation for Microsoft's Smartphone platform.