Welcome to Album’s documentation!¶
Album is an open-source framework that turns scientific routines into executable building blocks — and organizes them into a shareable, versioned, executable library of research software.
Album is built around two minimal primitives:
a solution — a single Python entry point that bundles metadata, arguments, an environment specification, and lifecycle hooks (
install/run/test) for a scientific routine;a catalog — a decentralized, git-native collection of solutions with an indexed search and an optional rendered website for discovery, provenance, and governance.
A solution is language-agnostic in practice: it can wrap tools implemented in Python, C++, R, Java, Kotlin, ImageJ/Fiji, napari, Blender, and more. Each solution declares its own micromamba environment and gets that environment provisioned in isolation at install time, so routines with conflicting dependencies coexist on one machine. Crucially, the optional post-environment install hook lets a solution download model weights, compile components, fetch external assets, or wire up GUI tools — capturing setup steps that a plain conda-style environment file cannot express. Together, these features are what make heterogeneous tools usable as building blocks of an executable library.
Solutions are reproducible, composable, and easy to evolve through an iterative Search → Implement → Share & Scale → Finalize cycle.
Album supports an iterative, collaboration-driven research-software cycle: discover existing routines, adapt and validate them, share and scale them with collaborators, then finalize them for long-term reuse (from arXiv:2110.00601, Fig. 1).¶
Album is FAIR-aligned by design — solutions are Findable through
catalog indexes and (optionally) Zenodo DOIs, Accessible via a single
album install regardless of the underlying tool stack,
Interoperable through typed arguments and parent/child solution reuse,
and Reusable thanks to versioned, environment-pinned, executable
artifacts. Album complements — rather than replaces — package managers,
workflow engines, and container runtimes. It is released under the MIT
license.
Because each solution is a single Python file with a machine-readable
manifest, it is also amenable to LLM-assisted authoring: an LLM can
draft a solution.py from natural-language requirements, and you validate
it with album test before deploying. See
Developing solutions for details.
Get Album¶
Double-click installers for Windows, macOS and Linux set up micromamba,
Album and the graphical interface in ~/.album. Download them from
Installing Album.
Recommended for the command line, also installs git:
micromamba create -n album album -c conda-forge
micromamba activate album
Package page: anaconda.org/conda-forge/album
The image runs the album command:
docker run --rm albumsolutions/album index
Images of every release: hub.docker.com/r/albumsolutions/album
Where to go next¶
New here? Start with Quick Start — CLI Reference and Installing Album.
Want to use solutions and catalogs? See Usage instructions for Album.
Prefer clicking to typing? See Graphical interface.
Want to write a solution? See Developing solutions.
Want to publish solutions for others? See Catalog management and Setting up Zenodo DOI minting for a request catalog (GitLab CI).
Want to package, containerize, or batch-run solutions? See Album Ecosystem, Album Docker, Album Package, Album Distributed.
Want to use solutions as steps of a workflow engine? See Using solutions in data workflows.
Want to run solutions on an HPC cluster or a cloud VM? See Running solutions on clusters and in the cloud.
Curious where Album has been used in practice? See Case studies.
Album on the web¶
GitLab
album.solutions
Python package
conda package
Container images
Software directory
CONNECT
arXiv:2110.00601
Citing Album¶
If you use Album in academic work, please cite the project paper:
Albrecht, J. P., Schmidt, D., Rieckert, L., Otto, M. & Harrington, K. Album: executable building blocks for scientific imaging routines, from sharing to LLM-assisted orchestration. arXiv:2110.00601.
Citing Album has a BibTeX entry, explains how to cite individual solutions and lists publications that used Album.
Contents:
- Quick Start — CLI Reference
- Installing Album
- Frequently Asked Questions / Troubleshooting
- Usage instructions for Album
- Graphical interface
- Album Ecosystem
- Developing solutions
- Catalog management
- Three ways to share a solution
- Catalog types
- How to automatically share solutions to GitLab / GitHub
- How to create and use a local catalog
- How to deploy a solution that installs the same everywhere
- How to manually share a local catalog on GitLab / GitHub
- How to track solution development [within the catalog repository]
- How to create a catalog with a website representation
- Rapid prototyping
- DOI support for solutions
- Setting up Zenodo DOI minting for a request catalog (GitLab CI)
- Python API
- Album Package
- Album Docker
- Album Distributed
- Using solutions in data workflows
- Running solutions on clusters and in the cloud
- Album MCP
- Case studies
- Citing Album
- Contributing to Album