This release is a pre-release and may not be stable for production use.
Kiso
Describe your experiment in a YAML file — Kiso handles provisioning, software setup, execution, and result collection.
Why Kiso
Setting up experiments across cloud and edge testbeds typically means writing custom provisioning scripts, manually installing software on remote nodes, and stitching together execution logic for each new environment. This work is repetitive, error-prone, and hard to reproduce.
Kiso replaces that with a single declarative configuration file. The same experiment definition runs on Chameleon Cloud, FABRIC, or a local Vagrant VM — no changes to your experiment code required.
Quick Start
Install Kiso with the extra for your testbed:
pip install kiso[vagrant] # local VMs — good for development
pip install kiso[fabric] # FABRIC testbed
pip install kiso[chameleon] # Chameleon Cloud and Chameleon Edge (same package, different OpenRC files)
pip install kiso[all] # all testbeds
Then run your experiment:
# 1. Validate the config
kiso check experiment.yml
# 2. Provision and configure
kiso up experiment.yml
# 3. Run experiments
kiso run experiment.yml
# 4. Collect results, then tear down
kiso down experiment.yml
See the Your first experiment tutorial for a complete walkthrough, or use the experiment template to scaffold a new experiment.
What's Supported
| Category | Options |
|---|---|
| Testbeds | Vagrant, FABRIC, Chameleon Cloud, Chameleon Edge |
| Software | Docker, Apptainer, Ollama |
| Deployment | HTCondor |
| Experiments | Pegasus workflows, Shell scripts |
New testbeds, software, and experiment types can be added as plugins via Python entry points. See Extending Kiso.
Documentation
- Your first experiment — install Kiso and run a working experiment end-to-end
- Multi-testbed experiment — span FABRIC and Chameleon simultaneously
- Concepts — understand sites, labels, software, deployments, and experiments
- Config file reference — every supported configuration key
- Extending Kiso — add custom testbeds, software, and experiment types
- Full documentation
Contributing
Contributions are welcome. To get started:
git clone https://github.com/pegasus-isi/kiso.git
cd kiso
pip install -e ".[all]"
pre-commit install
Please follow conventional commits for commit messages. Open an issue before submitting large changes.
References
- Pegasus Workflow Management System — scientific workflow engine used to define and execute experiments in Kiso
- EnOSlib — infrastructure management library that Kiso builds on for provisioning and remote execution
- Chameleon Cloud — NSF-funded cloud testbed supported by Kiso; includes both bare-metal nodes (CHI@UC, CHI@TACC) and edge devices (CHI@Edge) under the same project allocation, each with its own OpenRC credentials file
- FABRIC — nationwide programmable research infrastructure supported by Kiso
- Vagrant — tool for managing local VMs; used by Kiso for local development without a cloud account
- VirtualBox — virtualization platform used as the default Vagrant backend
Funding
Kiso is funded by the National Science Foundation (NSF) under award 2403051.
License
Apache 2.0 © Pegasus ISI
Metadata
Release files for kiso 0.1.0b1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| kiso-0.1.0b1.tar.gz | 89.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kiso-0.1.0b1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 194.0 kB
Release files / kiso-0.1.0b1.tar.gz
| Download URL | kiso-0.1.0b1.tar.gz |
|---|---|
| Size | 89.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d85de37db975e03afefc1eafe4a09ea78fc5b0c667a012b3c475854103e6c58a
|
|
BLAKE2b-256 checksum How to use checksums |
fc03d94bea41da2b80c3cf58ef74408f87acc0f0b17c0eee14f65fcc5419fd2f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 2, 2026.
Transparency logRelease files / kiso-0.1.0b1-py3-none-any.whl
| Download URL | kiso-0.1.0b1-py3-none-any.whl |
|---|---|
| Size | 104.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
294f40d66c4d7eb911c4248cbd8a42025eede9487730e6aaaed471a89aca77a6
|
|
BLAKE2b-256 checksum How to use checksums |
e49ebd31da96081abec93de0ba1a6c31200df6d348a748acc30bdece5bbe6830
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 2, 2026.
Transparency log