Your first scenario
Write, validate, and run a complete scenario in five minutes.
Tales ships as a single static Go binary. Linux and macOS are supported on both amd64 and arm64. There are four installation paths; pick the one that fits where you are running Tales.
The fastest path on a developer machine. The tales-testing/homebrew-tap repository hosts the cask.
brew install --cask tales-testing/tap/talesTo upgrade later:
brew updatebrew upgrade --cask talesThe cask installs the same release archive published on GitHub, so what you get locally is byte-identical to what runs in CI. On macOS the cask also runs a postflight hook that strips the com.apple.quarantine attribute from the binary, so the first tales --version does not trip Gatekeeper’s “developer cannot be verified” prompt.
Use the tales-testing/setup-tales-action GitHub Action to pin and install Tales on a runner.
- name: Install Tales uses: tales-testing/setup-tales-action@v1 with: version: latest # or a pinned tag like v0.1.0
- name: Run scenarios run: tales test ./e2e/pass --seed 1234 --parallel 8The action caches the binary across runs and exposes tales --version to subsequent steps. See CI integration for full workflow recipes.
Download the release archive for your platform from GitHub Releases and drop it into PATH. The GoReleaser archive name is tales_<version>_<os>_<arch>.tar.gz, so set VERSION to a published tag from the releases page (without the leading v) before running the snippet.
VERSION=0.1.0 # check the releases page for the latest tagcurl -fsSL -o tales.tar.gz \ "https://github.com/tales-testing/tales/releases/download/v${VERSION}/tales_${VERSION}_linux_x86_64.tar.gz"tar -xzf tales.tar.gzsudo install -m 0755 tales /usr/local/bin/talestales --versionVERSION=0.1.0 # check the releases page for the latest tagcurl -fsSL -o tales.tar.gz \ "https://github.com/tales-testing/tales/releases/download/v${VERSION}/tales_${VERSION}_linux_arm64.tar.gz"tar -xzf tales.tar.gzsudo install -m 0755 tales /usr/local/bin/talestales --versionVERSION=0.1.0 # check the releases page for the latest tagcurl -fsSL -o tales.tar.gz \ "https://github.com/tales-testing/tales/releases/download/v${VERSION}/tales_${VERSION}_darwin_arm64.tar.gz"tar -xzf tales.tar.gzsudo install -m 0755 tales /usr/local/bin/tales# Optional, only needed if Gatekeeper quarantines the archive:xattr -d com.apple.quarantine tales 2>/dev/null || truetales --versionGo 1.26+ and a working git are required.
git clone https://github.com/tales-testing/talescd talesmake install # installs to $GOBIN, falls back to $GOPATH/binFor a one-shot install without a clone:
go install github.com/tales-testing/tales/cmd/tales@latestYour first scenario
Write, validate, and run a complete scenario in five minutes.
CLI essentials
Every flag, every exit code, every environment variable.