Home
Calkit helps you manage and automate research projects like a software engineer.
Define computational environments, steps that process your data, create figures, presentations, and publications, connect to external tools, then iterate quickly and painlessly until your research questions are answered, tracking changes to all files along the way. At the end, deliver your entire project as a self-contained, self-documenting, version-controlled, and single button reproducible "calculation kit" so you and others can easily verify and build upon the results.
Guiding principles
- Quality comes from iteration. Automation reduces the time and effort needed to iterate, thereby increasing iteration and quality.
- Automating a step can and should take roughly the same amount of time as doing it once manually, therefore it's almost always worth it.
- Working in a "quick and dirty" way can easily become not quick when the dirtiness results in mistakes and/or discourages working in small steps.
Features
- A simplified version control interface that unifies Git and DVC (Data Version Control), so all materials can be kept in the same project repository. This way, code doesn't need to be siloed away from other important artifacts like datasets, models, figures, or article PDFs, allowing you to work on all parts of a project without hopping around to different tools.
- Computational environment management with support for many languages and environment managers: Conda, Docker, uv, Julia, Renv, and more. No need to create and update environments on your own. Calkit will handle them as needed.
- An environment-aware build system or pipeline with
a simple declarative syntax and
output caching so you don't need to think about which steps or stages
need to be rerun after changing any part of the project.
Simply call
calkit run. Compose your pipeline from many different kinds of stages, including simple scripts, commands, Jupyter Notebooks, LaTeX, and more. - A complementary self-hostable and GitHub-integrated cloud platform to facilitate backup, collaboration, and sharing throughout the entire research lifecycle.
- Overleaf integration, so analysis, visualization, and writing can all stay in sync (no more manual uploads!)
- Support for running on high performance computing (HPC) systems that use SLURM schedulers.
- Support for running with GitHub Actions.
- Extensions for doing all of the above graphically in JupyterLab and VS Code.