Calliope Studio
Calliope Studio is a web-based user interface for the Calliope energy system modelling framework.
It lets you define, edit, validate, run, and analyse Calliope models, all in a single tool.
It runs in a browser directly on your computer.
Installation
With uv:
# One-time setup for uv on macOS and Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# One-time setup for uv on Windows
# powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
uv tool install calliope-studio
conda create -n calliope-studio -c conda-forge calliope-studio
conda activate calliope-studio
Then:
calliope-studio my-model # a model folder containing model.yaml or a solved results .nc
calliope-studio # no argument opens Calliope Studio with a model picker
To quit Calliope Studio, close its terminal window or press Ctrl+C inside it.
Development builds
To install a development build based on the latest main branch commit:
uv tool install --reinstall --prerelease allow \
--find-links https://github.com/sjpfenninger/calliope-studio/releases/expanded_assets/dev \
calliope-studio
The same command updates an existing install to the newest development build. To go back to the stable (released) version:
uv tool install --reinstall calliope-studio
FAQ
- Why does "Run" fail with a solver error? Calliope needs a solver to run a model. Calliope 0.7 bundles the HiGHS solver, but some models may refer to other solvers such as CBC or Gurobi. Refer to the Calliope documentation for the different solver options.
- Why is the list of models wrong or outdated? The list of models you have opened lives in a small registry file, separate from the models themselves. Its location is reported as
registry_pathbyhttp://127.0.0.1:8000/api/healthwhile Calliope Studio is running. Deleting it resets the list without actually touching any of your models. - Where are model results stored? When running a model from inside Calliope Studio, results are saved in a
calliope-studio/folder next to themodel.yamlfile. This folder is created automatically when running a model for the first time and comes with its own.gitignorefile.
Development
Requires pixi. Try pixi task list to see all the available development tasks.
pixi run serve # API on port 8000 with auto-reload
pixi run web-dev # Vite dev server, proxying /api to port 8000
serve opens ./example-model, scaffolding it from Calliope's national_scale template on first use.
The frontend tests run from web/:
cd web
pnpm test
Pixi is configured with a gurobi environment to test with Gurobi (needs a license):
pixi run -e gurobi calliope-studio my-model # Gurobi available as a solver
Release
Pushing a v* tag builds the wheel and sdist and publishes them:
git tag v0.2.0 && git push --tags
A release tag with exactly three numeric components (v0.2.0) goes to PyPI. Anything else (e.g. v0.2.0rc1 or a typo) goes to TestPyPI instead.
On release, the conda-forge autotick bot should open a pull request on the feedstock.
Architecture
The frontend is a Vue 3 single-page TypeScript app served by a FastAPI backend.
The backend consists of four Python packages with a one-way import rule: server may import the others, while they import neither server nor each other:
server: FastAPI app and HTTP routesmodeldef: YAML and CSV model definitions on diskruns: Builds and solves models in a separate processresults: Reads.ncfiles and streams them as Apache Arrow batches for charts and tables
License
AGPL-3.0-or-later. See LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file calliope_studio-0.2.0.tar.gz.
File metadata
- Download URL: calliope_studio-0.2.0.tar.gz
- Upload date:
- Size: 5.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5568bdb4002c2f8417e773a82fc2ddb2886cdb63f55e537b29e191bb4fc4debe
|
|
| MD5 |
04c13b8a7946528f87b40b99f99be715
|
|
| BLAKE2b-256 |
8a5eb91bb5dc245f04709972d347ff6fb7f366cfb0d680166e09dac286a3ddfc
|
Provenance
The following attestation bundles were made for calliope_studio-0.2.0.tar.gz:
Publisher:
release.yml on sjpfenninger/calliope-studio
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
calliope_studio-0.2.0.tar.gz -
Subject digest:
5568bdb4002c2f8417e773a82fc2ddb2886cdb63f55e537b29e191bb4fc4debe - Sigstore transparency entry: 2747964953
- Sigstore integration time:
-
Permalink:
sjpfenninger/calliope-studio@dbd9f1f03c59ee8e010ece5f353ab6d47e25ee4e -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/sjpfenninger
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dbd9f1f03c59ee8e010ece5f353ab6d47e25ee4e -
Trigger Event:
push
-
Statement type:
File details
Details for the file calliope_studio-0.2.0-py3-none-any.whl.
File metadata
- Download URL: calliope_studio-0.2.0-py3-none-any.whl
- Upload date:
- Size: 4.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a66aa67998c13de538fd25c83bf2331b8d6aee41449fd3158c7f12a9a11ac8d5
|
|
| MD5 |
842683327df1ac4bd0cd02177554f3b3
|
|
| BLAKE2b-256 |
1b66260936fb411252fa66168e1b2e559f461be21c0e79dd0b56936f6986c008
|
Provenance
The following attestation bundles were made for calliope_studio-0.2.0-py3-none-any.whl:
Publisher:
release.yml on sjpfenninger/calliope-studio
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
calliope_studio-0.2.0-py3-none-any.whl -
Subject digest:
a66aa67998c13de538fd25c83bf2331b8d6aee41449fd3158c7f12a9a11ac8d5 - Sigstore transparency entry: 2747964965
- Sigstore integration time:
-
Permalink:
sjpfenninger/calliope-studio@dbd9f1f03c59ee8e010ece5f353ab6d47e25ee4e -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/sjpfenninger
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@dbd9f1f03c59ee8e010ece5f353ab6d47e25ee4e -
Trigger Event:
push
-
Statement type: