TreeCorr efficiently computes two-point correlation functions. It can compute correlations of regular number counts, weak lensing shears, or scalar quantities such as convergence or CMB temperature fluctuations. Two-point correlations may be auto-correlations or cross-correlations, including any combination of shear, kappa, and counts. Two-point functions can be done with correct curved-sky calculation using RA, Dec coordinates, on a Euclidean tangent plane, or in 3D using RA, Dec and a distance. The front end is written in Python, which can be used as a Python module or as a standalone executable using configuration files; the actual computation of the correlation functions is done in C++ using ball trees (similar to kd trees), making the calculation extremely efficient, and when available, OpenMP is used to run in parallel on multi-core machines.