Here we describe a phage strategy for the selection of ligands based on bicyclic or linear peptides attached covalently to an organic core. We designed peptide repertoires with three reactive cysteine residues, each spaced apart by several random amino acid residues, and we fused the repertoires to the phage gene-3-protein. Conjugation with tris-(bromomethyl)benzene via the reactive cysteines generated repertoires of peptide conjugates with two peptide loops anchored to a mesitylene core. Iterative affinity selections yielded several enzyme inhibitors; after further mutagenesis and selection, we were able to chemically synthesize a lead inhibitor (PK15; K(i) = 1.5 nM) specific to human plasma kallikrein that efficiently interrupted the intrinsic coagulation pathway in human plasma tested ex vivo. This approach offers a powerful means of generating and selecting bicyclic macrocycles (or if cleaved, linear derivatives thereof) as ligands poised at the interface of small-molecule drugs and biologics.