pianod Launch pianod web remote


Recent Changes

  • 02 Jan 2015—r167 Add check for getprogname/setprogname, which are apparently BSDisms.
    Provide implementations where not functions are not natively available.
  • 15 Dec 2014—r166 Move function definition from private to public for libpiano.
    Football parser: range limits for double fill-ins now stored in doubles.
    Football parser: Fix unchecked null pointer crash from missing fill-ins.
  • 01 Jul 2014—r165 Update libpiano/libwaitress. Fixes segmentation faults that started June 19.
Multiuser pandora play
Shared Pandora player
with web-based remote
Share stations
Share stations with housemates
Customize user privileges
Customizable user privileges
Revise stations
Edit stations & Music
QuickMix station picker
Pick your own stations, or...
Rate stations for autotune
Rate stations & autotune based on who's listening
Schedulable station changes
Make an automated DJ by scheduling stations
Socket interface
Integrate via a socket,
HTML Websockets, or...
Shell script interface
With a shell script if you prefer.
/ : Slide time:


pianod is an open-source Pandora client with line-oriented and Websocket TCP/IP control interfaces. A simple protocol makes for easy clients, mix scripting, integration with a home automation system, or use as multiple-user music system. pianod has a full-featured web-based interface that allows multiple listeners to view status and share control.

In English? Install pianod on your stereo-connected computer, and you and your family can remote control the house music from any web browser: your phones, tablets, laptops.


  • Stable releases (r167): Download latestView all
  • Outdated editions: View all.
    Versions r164 and earlier are deprecated due to a protocol change that crashes libpiano. Fixes are discussed on the mailing list for those interested.
  • SVN access (includes XCode project files). Building from SVN requires GNU autotools (autoconf, automake).


  • Use the web remote off the Web, or download and install it (you will need to use pianod’s -c option to set the client location). The web client is rich with features for the Pandora power user: unlove a song with the neutral button (☯), toggle song or artist seeds with one click ( 種), or add a song or artist that played as a seed to another one of your stations (+).
  • Michael Hines is developing a mobile client for the Titanium cross-platform SDK.
  • node-pianod is a node.js library for controlling pianod

Documentation & Support

Similar Projects

  • Pandora’s official clients are available from Pandora.
  • pianobar is a terminal-mode Pandora client (and the origin of libpiano). It is interactive, with keystroke commands instead of full statements, but has event support which runs a shell script or whatnot to do scrobbling or other things.
  • Elpis is a Windows client
  • Pithos is a Linux client
  • mserv is a similar-style jukebox for local media

Thanks to all the open-source developers who provide our dependencies, Fletcher Penny for multimarkdown, Dimitri van Heesch for Doxygen, Liz Aragon for the piano and football/soccer ball, and Zennaware for making a decent Mac SVN client, Matthias Miller for Javascript Lint, Mihai Bazon for UglifyJS2, and everyone at MacPorts for making package management manageable.