horus-runtime is the command-line engine for the Horus platform, a free, multi-platform workflow manager designed for developers and scientists. It enables the creation, management, and execution of complex workflows, especially scientific computing, without any GUI dependencies.
- No GUI: This package is the runtime/engine only. For the full graphical experience, see the main Horus project.
- Modular & Extensible: Designed for integration, automation, and extension via Python.
- Open & Free: Developed by the Barcelona Supercomputing Center.
- Workflow Execution: Run and manage scientific workflows from the terminal.
- Modular Blocks: Compose workflows from reusable, autonomous blocks.
- Remote Execution: Configure SSH remotes to offload calculations.
- Extensible: Build and share your own blocks and extensions using the Python API.
- Reproducibility: Share and version your workflows, including all state and configuration.
- Python 3.10–3.14 (recommended: 3.14)
- micromamba (for environment management, optional but recommended)
# Create and activate environment (recommended)
micromamba create -y -n horus_runtime python=3.14
micromamba activate horus_runtimeInstall the package in editable (development) mode to enable local development alongside dependencies:
pip install -e .[dev]- Run all tests:
make test - Lint and type-check:
make lint make type-check
- Format code:
make format
See make help for all available commands.
Horus Runtime supports multiple languages through a comprehensive i18n system. Translations are managed using Babel and GNU gettext.
Import the translation function in your plugins:
from horus_runtime.i18n import tr as _
# Use it in your code
message = _("Hello, world!")
# Supports plurals and text substitution
message = _("{n} notification", "{n} notifications", n=2)If you need to regenerate the main messages.po file:
- Ensure the
src/horus_runtime/locale/directory exists:
mkdir -p src/horus_runtime/locale/- Extract translatable strings:
make babel-extract-
Create language files:
make babel-add LANG=es # Replace 'es' with your language code -
Edit translations: Edit the generated
.pofile atsrc/horus_runtime/locale/LANG/LC_MESSAGES/horus_runtime.po -
Validate translations:
make babel-check
When translatable strings change in the source code:
-
Extract and update:
make babel-refresh
-
Review changes: Look for "fuzzy" and new strings in
.pofiles and update them -
Compile:
make babel-check
make babel-stats- Show translation completion statisticsmake babel-check- Verify translations are up to datemake babel-extract- Extract translatable strings onlymake babel-compile- Compile.pofiles to.mofiles only
- Developed by the Barcelona Supercomputing Center
- © BSC. All rights reserved.
horus-runtime is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
See the LICENSE file for details.
For commercial licensing and support, please contact us at christian.dominguez@templecompute.com
