DNA is an excellent medium for data archival. Recent efforts have illustrated the potential for information storage in DNA using synthesized oligonucleotides assembled in vitro1–6. A relatively unexplored avenue of information storage in DNA is the ability to write information into the genome of a living cell by the addition of nucleotides over time. Using the Cas1-Cas2 integrase, the CRISPR-Cas microbial immune system stores the nucleotide content of invading viruses to confer adaptive immunity7. Harnessed, this system has the potential to write arbitrary information into the genome8. Here, we use the CRISPR-Cas system to encode images and a short movie into the genomes of a population of living bacteria. In doing so, we push the technical limits of this information storage system and optimize strategies to minimize those limitations. We additionally uncover underlying principles of the CRISPR-Cas adaptation system, including sequence determinants of spacer acquisition relevant for understanding both the basic biology of bacterial adaptation as well as its technological applications. This work demonstrates that this system can capture and stably store practical amounts of real data within the genomes of populations of living cells.