P4 is a Python package that does maximum likelihood and Bayesian phylogenetic analyses on molecular sequences. Its specialty is that you can use heterogeneous models, where the model parameters can differ in different parts of the tree, or over different parts of the data. P4 was written by Peter G. Foster, The Natural History Museum, London. It is distributed under the GPL.
The user interface for p4 is the Python language. That means that p4 comes with all the abilities of a high-level object-oriented programing language. This is a Good Thing, but it means that to use p4 you should know Python first. (There are tutorials at Python.) P4 does not have a graphic user interface; if you are looking for a program with buttons and menus, then p4 is not what you want.
P4 can be used as a phylogenetic toolkit, the elements of which you can string together in different ways depending on the job at hand. It is useful for programmatic manipulation of phylogenetic data and trees.
P4 needs a modern Python, preferably built with readline. P4 also needs the GSL (Gnu Scientific Library) and the numpy Python module installed.
It is in active development. The latest version of P4 is available on the BMNH website.