The ability to recognize tRNA identities is essential to the function of the genetic coding system. In translation aminoacyl-tRNA synthetases (ARSs) recognize the identities of tRNAs and charge them with their cognate amino acids. We show that an in vitro-evolved ribozyme can also discriminate between specific tRNAs, and can transfer amino acids to the 3' ends of cognate tRNAs. The ribozyme interacts with both the CCA-3 terminus and the anticodon loop of tRNA(fMet), and its tRNA specificity is controlled by these interactions. This feature allows us to program the selectivity of the ribozyme toward specific tRNAs, and therefore to tailor effective aminoacyl-transfer catalysts. This method potentially provides a means of generating aminoacyl tRNAs that are charged with non-natural amino acids, which could be incorporated into proteins through cell-free translation.