Craig Schwartz (John Cusack) es un titiritero callejero talentoso pero sin mucho éxito, de carácter tímido e introvertido, que está casado con la parlanchina y algo extravagante Lotte (Cameron Diaz).