Computational chemistry is a broad term. Included in this definition is the study of both molecular and periodic (i.e,, crystalline) systems, using techniques such as quantum chemistry (QC), molecular mechanics (MM), molecular dynamics (MD), mixed QC/MM methods, Monte Carlo 68 simulations and, increasingly, machine learning (ML). While some concepts are common to multiple different branches of computational chemistry, the way in which each type of calculation is performed, and the results obtained, can differ substantially. In Digichem, we have chosen to focus on the application of quantum chemistry to molecular systems. This includes common wavefunction methods (HF, MP, CC) as well as DFT, using atomic-orbital type basis sets. We do not explicitly include or exclude certain methods (e.g., different functionals), but rather interface with the functionality that is already presented in each computational engine. Currently, the program supports interfacing with the Gaussian, Turbomole, and ORCA 71 programs. All common molecular calculations are supported, including single-point energies, geometry optimisations (including of excited states), vibrational frequencies, excited states (via both linear-response type methods and ΔSCF for the first triplet state), and nuclear magnetic resonance chemical shifts and coupling constants. The exact feature set supported varies from program to program, and naturally depends on the functionality of the underlying computational engine. The program does not currently support calculations involving multiple structures, most noticeably transition state (saddle point) type calculations, but we look forward to incorporating these in the future. Digichem is split into several sub-modules, each designed to handle a separate aspect of computational chemistry. All the sub-modules are accessed from a single command on the commandline, which is digichem, followed by a keyword to identify the sub-module. Each of the sub-modules can be accessed entirely on the command-line, which is quicker for power-users, while the most important sub-modules also support a pseudo-graphical interactive interface, which can be accessed by specifying the '-I' (interactive) option after the sub-module name. The interactive interface can also be launched directly by specifying the 'digichem interactive' command (Figure ), from which all major facets of the program can be accessed. For novice users, this is the only command they are required to learn. The graphical interface formats text and other non-alphanumeric characters, such as the Unicode box drawing characters, to appear like graphical widgets such as buttons, checkboxes, text-entry fields, and scrollable windows. These interactive elements are more familiar to users of traditional GUIs than the opaque command-line. Because the library powering this interface only uses the functionality already available in the text console, 66 this interface does not require a full graphical software stack (e.g., X-server) on the remote cluster. All access to Digichem is provided via the secure-shell (SSH) protocol, which is already the default way users interact with their calculation servers, and it is therefore equally accessible from client machines running Windows, MacOS, or Linux. Digichem is written in Python, is simple to install, contains all its required dependencies internally (even including Python itself), and does not require elevated privileges (neither through sudo nor a super-user account) to install or run. It does not require any firewall ports to be opened, except for SSH port 21, which is already required to provide access to the cluster, in contrast to web-server designs. The currently supported sub-modules are: digichem submit, for calculation submission; digichem convert, for managing input data types, digichem result, for parsing and analysing completed calculation results; digichem report, for generating portable document format (PDF) reports of completed results; digichem image, for generating graphical data from completed calculations; and digichem database, for managing historical calculation data. These are described in more detail below. Conceptually, each computational chemistry calculation consists of two parts: the method, which describes the level of theory (the DFT functional, the basis set, the solvent model, etc.); and the coordinates, which describes the geometry of the molecule of interest. In most computational engines these components are combined within a single input file, but in Digichem we made the conscious decision to separate them. This confers a number of advantages, but in particular it makes it easy to reuse a computational methodology across multiple molecules, as is required in a large-scale computational screen. Both the method and coordinate files are written in the non-binary YAML format, which can be edited using any text editor and is more intuitive than many of the calculation engine native formats. In addition to the molecular geometry, the coordinate file also specifies the overall charge and spin multiplicity of the system, something which is missing from many popular cheminformatics formats (XYZ, for example), and this is preserved across Digichem calculations.