Array-based vapour-sensing devices are used to detect and differentiate between chemically diverse analytes. These systems--based on cross-responsive sensor elements--aim to mimic the mammalian olfactory system by producing composite responses unique to each odorant. Previous work has concentrated on a variety of non-specific chemical interactions to detect non-coordinating organic vapours. But the most odiferous, toxic compounds often bind readily to metal ions. Here we report a simple optical chemical sensing method that utilizes the colour change induced in an array of metalloporphyrin dyes upon ligand binding while minimizing the need for extensive signal transduction hardware. The chemoselective response of a library of immobilized vapour-sensing metalloporphyrin dyes permits the visual identification of a wide range of ligating (alcohols, amines, ethers, phosphines, phosphites, thioethers and thiols) and even weakly ligating (arenes, halocarbons and ketones) vapours. Water vapour does not affect the performance of the device, which shows a good linear response to single analytes, and interpretable responses to analyte mixtures. Unique colour fingerprints can be obtained at analyte concentrations below 2 parts per million, and responses to below 100 parts per billion have been observed. We expect that this type of sensing array will be of practical importance for general-purpose vapour dosimeters and analyte-specific detectors (for insecticides, drugs or neurotoxins, for example).