One of Python's strengths is that it can be used interactively. In this talk I will describe recent developments in the IPython project (http://ipython.scipy.org) that extend Python's and IPython's interactive capabilites into the realm of parallel and distributed computing. The architecture we have developed allows parallel and distributed applications to be developed, debugged, tested, executed and monitored in a fully interactive manner. Many styles of parallelism and concurrency are supported including traditional message passing (using MPI), task farming, shared memory and custom approaches as well. This flexibility makes it easy to incorporate existing parallel codes and libraries as well as quickly design novel parallel approaches and algorithms. I will talk about the design and implementation of the architecture, detail its basic usage and provide examples of more sophisticated usage scenarios.