CLI
worky ships a standalone CLI for scaffolding workshops. Install it once, use it in any project.
go install github.com/davideimola/worky/cmd/worky@latestworky init <name>
Section titled “worky init <name>”Scaffolds a complete new workshop project in a new directory.
worky init "Kubernetes Workshop"# → creates kubernetes-workshop/| Flag | Description |
|---|---|
--no-install-deps | Skip automatic go mod tidy |
--module <path> | Go module path (default: github.com/example/<slug>) |
-y, --yes | Accept all defaults without prompting |
Created files
Section titled “Created files”kubernetes-workshop/├── main.go # Workshop entrypoint with embed + one example chapter├── site/│ ├── index.html # Home page│ ├── workshop.css│ ├── workshop-progress.js│ └── 00-setup/│ └── index.md # Placeholder chapter content├── Makefile # make serve, make build, make release├── .gitignore├── README.md├── go.mod└── .github/workflows/release.ymlAfter scaffolding:
cd kubernetes-workshopgo mod tidymake serveworky new chapter <id> <name>
Section titled “worky new chapter <id> <name>”Adds a new chapter to an existing workshop.
worky new chapter 02 "Deploying Services"# → creates site/02-deploying-services/index.md# → prints Go snippet to add to main.goExample output:
Chapter created: site/02-deploying-services/index.md
Add the following to your main.go Chapters slice:
worky.Chapter{ ID: "02", Name: "Deploying Services", Slug: "02-deploying-services", Checks: []worky.Check{ // TODO: add checks here }, },worky build
Section titled “worky build”Builds the workshop binary.
worky build# equivalent to: go build -o bin/my-workshop .For cross-compilation, use Go’s standard env vars:
GOOS=linux GOARCH=amd64 go build -o bin/my-workshop-linux-amd64 .GOOS=darwin GOARCH=arm64 go build -o bin/my-workshop-darwin-arm64 .GOOS=windows GOARCH=amd64 go build -o bin/my-workshop-windows-amd64.exe .Distribute the binaries via GitHub Releases. The entire site is embedded in the binary — no additional files needed.
worky report
Section titled “worky report”Opens a pre-filled GitHub issue to report a bug in worky itself.
worky reportThe command asks four questions interactively:
- Describe the problem
- Steps to reproduce
- Expected behavior
- Actual behavior
Once you answer the questions, it automatically collects your environment details (worky version, OS, architecture, Go version) and opens your browser with a pre-filled GitHub issue. If no browser is available (e.g. headless environments), the URL is printed to the terminal instead.
For the commands available inside each workshop binary (serve, check, status, etc.) see Runtime commands.