whzbox is a Go CLI for Whizlabs cloud sandboxes. It creates, caches, lists, and destroys AWS, Azure, and GCP sandboxes.
AWS includes programmatic credentials for whzbox exec. Azure and GCP provide browser-console credentials only. Azure console login also requires a short-lived MFA code from whzbox mfa azure.
Install from GitHub Releases, Homebrew, Scoop, or from source.
# Homebrew (macOS/Linux)
brew install meigma/tap/whzbox
# Scoop (Windows)
scoop bucket add meigma https://github.com/meigma/scoop-bucket
scoop install whzbox
# ghd (macOS/Linux releases produced by the current pipeline)
ghd install meigma/whzbox/whzbox
# Go
go install github.com/meigma/whzbox/cmd/whzbox@latestBuild from a checkout:
go build -o whzbox ./cmd/whzbox
./whzbox --helpwhzbox login
whzbox create aws
whzbox exec aws -- aws sts get-caller-identity
whzbox destroy --yesFor a GCP console sandbox:
whzbox create gcp
# Open the displayed console URL and sign in with the displayed username and password.
whzbox destroy --yesFor an Azure console sandbox:
whzbox create azure
# Open the displayed console URL and sign in with the username and password.
# At the MFA prompt, select "Use a verification code".
whzbox mfa azure
# Enter the displayed MFA code.
whzbox destroy --yesCommon commands:
whzbox create awscreates an AWS sandbox with console and programmatic credentials.whzbox create azurecreates an Azure sandbox with console credentials and resource groups.whzbox create gcpcreates a GCP sandbox with console credentials and project metadata.whzbox mfa azureprints a fresh Azure console MFA code without caching it.whzbox listshows cached sandboxes from local state.whzbox exec aws -- <command>runs a command with sandbox credentials injected.whzbox statusshows the cached session.whzbox destroytears down the active sandbox.
Run whzbox <command> --help for per-command flags.
The root README stays intentionally short. The rendered site is at
whzbox.meigma.dev, with source under docs/docs/:
- Documentation overview
- AI agent skill
- Tutorial: create, use, and destroy your first AWS sandbox
- How-to guides
- Command reference
- Explanation
A repo-local SKILL.md is available for AI agents that need a concise, task-oriented guide to using the CLI before drilling into the full docs.
A few behaviors that are easy to miss are documented in detail there:
create aws,create azure, andcreate gcpcan reuse an unexpired cached sandbox.- Whizlabs permits one active sandbox, so destroy the current provider before creating another.
execsupports AWS only.exec azureandexec gcpexplain the console-only limitation.exec,list, andstatusread local state; they do not talk to Whizlabs.--jsonis implemented bycreateandlist.
Preview the docs site locally:
cd docs
mise exec -- uv sync --locked
mise exec -- uv run --locked mkdocs servePrerequisites:
- mise for the repository's locked toolchain
Common tasks:
mise install
mise exec -- moon run root:checkRepository settings are declared in .github/repository-settings.toml. Preview
supported GitHub changes before applying them:
mise exec -- uv run .github/scripts/configure_github_repo.py plan --repo meigma/whzboxRun the Whizlabs integration tests only when you have real credentials in a repo-local .env:
go test -tags integration -timeout 5m ./internal/adapters/whizlabs/...Those tests read USERNAME and PASSWORD from .env.
Dual-licensed under Apache-2.0 or MIT.