A platform for packaging and launching blockchain infra. Think docker compose for blockchain
$ npx -y skills add kurtosis-tech/kurtosis --agent claude-code
Repo: kurtosis-tech/kurtosis
What's inside
Have you ever tried to build on top of a colleague's work, or contribute to an open source project, just to get stuck on the first steps of spinning up a stack to play with? Kurtosis handles the complexity of spinning up ephemeral dev or test stacks so you can focus on developing, not configuring.
Kurtosis is formed of:
Kurtosis is best for:
Kurtosis operates at a level higher than Docker Compose or Helm, and produces stacks running on either of the underlying engines (the Docker engine, or Kubernetes). Because of this additional layer of abstraction, we are able to introduce several features to improve the experience of spinning up ephemeral stacks:
NOTE: we do NOT recommend using Kurtosis to deploy long term production environments at this moment. Any issues/Discords related to production usage will be closed.
To see Kurtosis in action, first install it using the instructions here.
Then, run the Redis voting app Kurtosis package:
kurtosis run github.com/kurtosis-tech/awesome-kurtosis/redis-voting-app
Finally, open the http link printed in the last line in your browser.
If you have an issue or feature request, we'd love to hear about it through one of the following:
kurtosis feedback --bug or kurtosis feedback --feature)To try more Kurtosis packages just like this one, check out the [awesome-kurtosis repo][awesome-kurtosis]!
To learn about how to write Kurtosis packages, check out our [quickstart][quickstart-reference].
To read about how Kurtosis works, see [our documentation][docs].
To see where we're going with the product, check out the roadmap here.
Got more questions? Drop them in our Github Discussions where we, or other community members, can help answer.
This repository includes Claude Code skills that teach Claude how to work with Kurtosis. Skills are structured prompts in the skills/ directory that give Claude operational knowledge about building, debugging, deploying, and managing Kurtosis enclaves.
| Skill | Description |
|---|---|
clean | Clean up enclaves and artifacts |
cli-local-build | Build the CLI from source |
cluster-manage | Manage Kurtosis clusters |
context-manage | Manage Kurtosis contexts |
docker-debug | Debug Docker-based enclaves |
docker-local-build | Build and load Docker images locally |
dump | Dump enclave state for debugging |
enclave-inspect | Inspect running enclaves |
engine-manage | Start, stop, and restart the engine |
files-inspect | Inspect files artifacts |
gateway | Manage the Kurtosis gateway |
grafloki | Query Grafana and Loki observability |
import-compose | Import Docker Compose files |
k8s-clean-cluster | Clean Kurtosis resources from K8s |
k8s-debug-pods | Debug pods on Kubernetes |
k8s-dev-deploy | Build and deploy dev images to K8s |
lint | Lint the codebase |
port-forward | Forward ports from enclaves |
portal | Manage the Kurtosis portal |
run-package | Run Starlark packages |
service-manage | Manage services within enclaves |
starlark-dev | Develop Starlark packages |
Skills are auto-discovered by Claude Code when present in a project's skills/ directory. There are several ways to install them:
If you're contributing to Kurtosis, skills are already included:
git clone https://github.com/kurtosis-tech/kurtosis.git
cd kurtosis
Claude Code will automatically discover the skills when you open a conversation in this directory.
Copy the skills/ directory into any project where you want Claude to have Kurtosis knowledge:
# From the kurtosis repo, copy skills into your project
cp -r /path/to/kurtosis/skills /path/to/your-project/skills
If you want to keep skills in sync with the Kurtosis repo without copying:
# Symlink the entire skills directory
ln -s /path/to/kurtosis/skills /path/to/your-project/skills
# Or symlink individual skills
mkdir -p /path/to/your-project/skills
ln -s /path/to/kurtosis/skills/run-package /path/to/your-project/skills/run-package
To make Kurtosis skills available across all your Claude Code projects, add them to your global Claude configuration:
# Copy skills to your global Claude config
cp -r /path/to/kurtosis/skills ~/.claude/skills
Once installed, skills are invoked as slash commands in Claude Code:
/clean # Clean up enclaves
/run-package # Run a Starlark package
/docker-debug # Debug Docker containers
/k8s-debug-pods # Debug Kubernetes pods
You can also reference skills naturally in conversation — Claude will use the relevant skill context automatically when discussing Kurtosis topics.
See our CONTRIBUTING file.
This repository is structured as a monorepo, containing the following projects:
container-engine-lib: Library used to abstract away container engine being used by the [enclave][enclave].core: Container launched inside an [enclave][enclave] to coordinate its stateengine: Container launched to coordinate [enclaves][enclave]api: Defines the API of the Kurtosis platform (engine and core)cli: Produces CLI binary, allowing interaction with the Kurtosis systemdocs: Documentation that is published to docs.kurtosis.cominternal_testsuites: End to end testsInstall the Nix package manager.
sh <(curl -L https://nixos.org/nix/install)
And enable some Nix flags (alternatively you can add --extra-experimental-features 'nix-command flakes' every time calling the nix command):
mkdir -p ~/.config/nix
echo "experimental-features = nix-command flakes" >> ~/.config/nix/nix.conf
And to bring the environment up, just open a new shell terminal, go to the root folder of the repo and run:
nix develop
This will download all dev deps and setup the environment accordingly.
You can also use the direnv to automatically load the environment when entering the main folder or using a plugin in your preferred IDE:
vscode: mkhl.direnvjet brains: Direnv integrationDirenv can also be easily installed with Nix (or HomeBrew if you prefer):
nix-env -f '<nixpkgs>' -iA direnv
Now you just to add the direnv hook to your shell:
echo 'eval "$(direnv hook bash)"' >> ~/.bashrc
# or for ZSH
echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc
Now next time you open a new shell terminal and go to repo's folder you environment will update and load automatically.
The commands below assume that the env variable BREW_PREFIX contains the brew prefix.
BREW_PREFIX="$(brew --prefix)"
On MacOS:
# Install modern version of bash, the one that ships on MacOS is too old
brew install bash
# Allow bash as shell
echo "${BREW_PREFIX}/bin/bash" | sudo tee -a /etc/shells
# Optional: make bash your default shell
chsh -s "${BREW_PREFIX}/bin/bash"
On MacOS:
# Install modern version of git, the one that ships on MacOS can be too old
brew install git
On MacOS:
brew install docker
On MacOS:
brew install go@1.23
# Add the Go binary dir to your PATH
PATH="${BREW_PREFIX}/opt/go@1.23/bin:$PATH"
# Add the GOPATH bin dir to your PATH
PATH="${HOME}/go/bin:$PATH"
On Ubuntu:
wget https://go.dev/dl/go1.23.7.linux-amd64.tar.gz
tar -C /usr/local -zxf go1.23.7.linux-amd64.tar.gz
# Add the following to your bashrc or equivalent.
export PATH=$PATH:/usr/local/go/bin
On MacOS:
brew install goreleaser/tap/goreleaser
On Ubuntu:
echo 'deb [trusted=yes] https://repo.goreleaser.com/apt/ /' | sudo tee /etc/apt/sources.list.d/goreleaser.list
sudo apt update
sudo apt install goreleaser
On MacOS, using NVM:
brew install nvm
mkdir ~/.nvm
nvm install 20.11.0
npm install -g yarn
On Ubuntu, using NVM:
curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash
source ~/.bashrc
nvm install 20.11.0
npm install -g yarn
On MacOS, Ubuntu:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
On MacOS:
brew install protoc-gen-go
brew install protoc-gen-go-grpc
go install connectrpc.com/connect/cmd/protoc-gen-connect-go@latest
yarn global add ts-protoc-gen
yarn global add grpc-tools
On Ubuntu:
Showing a partial view of a very large repo.
FAQ
kurtosis is a Claude Code plugin with 22 hand-picked skills for operations work, indexed on Flowy. Install it with the command on its page. It includes clean, cli-local-build, cluster-manage. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it