EQcorrscan is an open-source Python package for the detection and analysis of repeating and near-repeating seismicity. The project is focused on reliable, well-tested, system-agnostic deployments of effective large-scale earthquake detection and analysis routines. At the heart of EQcorrscan are efficient matched-filter and subspace detection routines. Detection can be carried out on machines of widely varying architectures, ranging from workstations and servers to super-computers and distributed computing environments. As the package is written in Python and extensively leverages ObsPy, EQcorrscan can be run on all major operating systems and can read in most commonly-used seismological data formats for waveforms, events and stations. In addition to the core detection routines, EQcorrscan includes functions for template creation, stacking (including phase-weighted stacking), magnitude calculation (including singular-value decomposition derived relative moments), and event clustering. The package has been developed in Python to provide readable and user-friendly code accompanied by comprehensive and continuously updated documentation. Numerically intensive routines are written in C to improve efficiency.