  In this work we present 21cmFirstCLASS, a modified version of 21cmFAST, the
most popular code in the literature for computing the anisotropies of the 21-cm
signal. Our code uses the public cosmic microwave background (CMB) Boltzmann
code CLASS, to establish consistent initial conditions at recombination for any
set of cosmological parameters and evolves them throughout the dark ages,
cosmic dawn, the epoch of heating and reionization. We account for
inhomogeneity in the temperature and ionization fields throughout the
evolution, crucial for a robust calculation of both the global 21-cm signal and
its fluctuations. We demonstrate how future measurements of the CMB and the
21-cm signal can be combined and analyzed with 21cmFirstCLASS to obtain
constraints on both cosmological and astrophysical parameters and examine
degeneracies between them. As an example application, we show how
21cmFirstCLASS can be used to study cosmological models that exhibit
non-linearities already at the dark ages, such as scattering dark matter (SDM).
For the first time, we present self-consistent calculations of the 21-cm power
spectrum in the presence of SDM during the non-linear epoch of cosmic dawn. The
code is publicly available at https://github.com/jordanflitter/21cmFirstCLASS.
