PLUTO is a modular, Godunov-type code intended mainly for astrophysical applications. Written in C, it currently supports classical, relativistic and magneto fluid dynamics modules in curvilinear coordinates in 1, 2 and 3 dimensions. Implementation of the relativistic MHD equations has been recently added. The code is particularly suitable for treating hypersonic flows with strong discontinuities, and several numerical algorithms (TVD, PPM) are available for testing. Source terms include gravity, rotations and optically thin radiative losses. PLUTO works on non-uniform grids and runs either on a single processor or on parallel architectures (using MPI libraries), and has been extensively used on Beowulf clusters (16 and 32 nodes) for 3D relativistic jet applications, accretion on compact objects and accretion disks problems.