© 2017 Elsevier B.V. We introduce atomate, an open-source Python framework for computational materials science simulation, analysis, and design with an emphasis on automation and extensibility. Built on top of open source Python packages already in use by the materials community such as pymatgen, FireWorks, and custodian, atomate provides well-tested workflow templates to compute various materials properties such as electronic bandstructure, elastic properties, and piezoelectric, dielectric, and ferroelectric properties. Atomate also enables the computational characterization of materials by providing workflows that calculate X-ray absorption (XAS), Electron energy loss (EELS) and Raman spectra. One of the major features of atomate is that it provides both fully functional workflows as well as reusable components that enable one to compose complex materials science workflows that use a diverse set of computational tools. Additionally, atomate creates output databases that organize the results from individual calculations and contains a builder framework that creates summary reports for each computed material based on multiple simulations.