README.md
The package manager for OpenFOAM
Simplify your OpenFOAM workflows with easy package installation, management, and distribution
✨ Why styro?
styro brings modern package management to the OpenFOAM ecosystem, making it easy to discover, install, and manage community-contributed packages. Whether you're a researcher, engineer, and/or developer, styro streamlines your workflow by eliminating manual compilation and dependency management.
🎯 Key benefits
- 🚀 One-command installation - Install OpenFOAM packages with a single command
- 🌎 Community-driven - Access packages from the OpenFOAM Package Index (OPI)
- 🧩 Broad compatibility - Works seamlessly with OpenFOAM from openfoam.com and openfoam.org
- 📦 Multiple sources - Install from OPI, local directories, or Git repositories
- 🔄 Easy updates - Upgrade packages with automatic dependency resolution
- 🛠️ Developer-friendly - Simple package testing, definition and distribution
▶️ Demo

📋 Requirements
Before using styro, ensure you have:
- OpenFOAM (from openfoam.com or openfoam.org)
- Git
⏬ Installation
Choose any of the following methods:
-
With pip (requires Python 3.9 or later):
pip install styro -
With conda:
conda install -c conda-forge styro -
With Homebrew:
brew install gerlero/openfoam/styro -
Standalone binary (installs to
$FOAM_USER_APPBIN):/bin/bash -c "$(curl https://raw.githubusercontent.com/gerlero/styro/main/install.sh)" -
Docker image:
docker pull microfluidica/styro
🧑💻 Command reference
| Command | Description | Example |
|---|---|---|
⏬ styro install <packages> | Install one or more packages | styro install cfmesh |
⬆️ styro install --upgrade <packages> | Upgrade already installed packages | styro install --upgrade cfmesh |
🗑️ styro uninstall <packages> | Remove installed packages | styro uninstall cfmesh |
🔍 styro freeze | List all installed packages | styro freeze |
🔄 styro install --upgrade styro | Upgrade styro itself (only for standalone installs) | styro install --upgrade styro |
📦 Package sources
✨ OpenFOAM Package Index (OPI)
styro automatically discovers packages from the community-maintained OpenFOAM Package Index.
styro install cfmesh
🖥️ Local packages
Install packages from your local filesystem:
styro install /path/to/my-custom-package
Pro tip: Add a metadata.json file to the package directory to customize installation behavior.
🌎 Git repositories
Install directly from any Git repository:
styro install https://github.com/username/my-openfoam-package.git
Just like local packages, add a metadata.json file to the repository root for custom installation settings.
🤝 Contributing
We welcome contributions! Here's how you can help:
- 📦 Add packages to the OpenFOAM Package Index
- 🐛 Report bugs or request features via GitHub Issues
- 🔧 Submit pull requests to improve styro itself