Kurtosis run-package
Run Starlark scripts and packages with kurtosis run. Covers all flags including dry-run, args-file, parallel execution, image download modes, verbosity levels, and production mode. Use when executing Kurtosis packages locally or from GitHub.
install
source · Clone the upstream repo
git clone https://github.com/kurtosis-tech/kurtosis
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/kurtosis-tech/kurtosis "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/run-package" ~/.claude/skills/kurtosis-tech-kurtosis-run-package && rm -rf "$T"
manifest:
skills/run-package/SKILL.mdsource content
Run Package
Execute Starlark scripts and packages with
kurtosis run.
Basic usage
# Run a local package kurtosis run ./my-package # Run a local .star script kurtosis run ./script.star # Run a remote package from GitHub kurtosis run github.com/ethpandaops/ethereum-package # Run with inline args kurtosis run github.com/ethpandaops/ethereum-package '{"participants": [{"el_type": "geth", "cl_type": "lighthouse"}]}' # Run with args from a file (JSON or YAML) kurtosis run github.com/ethpandaops/ethereum-package --args-file config.yaml
Named enclaves
# Run in a specific enclave (created if it doesn't exist) kurtosis run --enclave my-testnet github.com/ethpandaops/ethereum-package # Re-run in an existing enclave (adds to it) kurtosis run --enclave my-testnet ./additional-services.star
Dry run
Preview what will execute without making changes:
kurtosis run --dry-run github.com/ethpandaops/ethereum-package --args-file config.yaml
Verbosity levels
# Default — concise description of what happens kurtosis run ./my-package # Brief — concise but explicit kurtosis run -v brief ./my-package # Detailed — all arguments for each instruction kurtosis run -v detailed ./my-package # Executable — generates copy-pasteable Starlark kurtosis run -v executable ./my-package # Output only — just the return value kurtosis run -v output_only ./my-package
Image handling
# Default: only pull if image doesn't exist locally kurtosis run ./my-package # Always pull latest image tags kurtosis run --image-download always ./my-package
Parallel execution
# Run instructions in parallel (as soon as dependencies resolve) kurtosis run --parallel ./my-package # Set parallelism level kurtosis run --parallel --parallelism 8 ./my-package
Advanced options
# Production mode — services auto-restart on failure kurtosis run -p ./my-package # Custom entry point file kurtosis run --main-file deploy.star ./my-package # Custom main function kurtosis run --main-function-name setup ./my-package # Don't forward ports locally kurtosis run --no-connect ./my-package # Show dependency graph kurtosis run --output-graph ./my-package # List image and package dependencies kurtosis run --dependencies ./my-package # Pull all dependencies locally kurtosis run --pull --dependencies ./my-package # Skip enclave inspect output kurtosis run --show-enclave-inspect=false ./my-package
Safe deployment workflow
Preview, execute, then verify:
# 1. Dry run — validate the plan without making changes kurtosis run --dry-run --enclave my-testnet github.com/ethpandaops/ethereum-package --args-file config.yaml # 2. Execute — run the package for real kurtosis run --enclave my-testnet github.com/ethpandaops/ethereum-package --args-file config.yaml # 3. Verify — confirm services are running correctly kurtosis enclave inspect my-testnet
Debug mode
# Run with debug engine images kurtosis --debug-mode run ./my-package # Increase CLI log verbosity kurtosis --cli-log-level debug run ./my-package