Skip to main content
skill CX Codex

antithesis-launch — Claude Code skill: launch Antithesis runs

This skill finds an Antithesis setup, builds its container images, validates the config, then submits a run with snouty.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add antithesishq/antithesis-skills --skill antithesis-launch -a claude-code
Open on GitHub

What antithesis-launch does

The skill locates the docker-compose.yaml intended for Antithesis, builds its images, and runs snouty validate. It submits the run only after validation passes, then reads the JSON response and reports the run_id for later triage.

You need Docker Compose v2, a docker or podman container engine, and snouty version 0.8.0 or newer. A run also needs a duration in minutes; using a config rather than pre-built images requires ANTITHESIS_REPOSITORY. Failed builds or validation stop the submission. If several configs look plausible, the skill asks you to choose instead of guessing.

What it helps with

  • locate the Antithesis config in a repository
  • build images from the selected Compose file
  • validate a setup before submitting a run
  • launch a run with explicit duration and metadata
  • retrieve the run_id for run triage

Example prompts for the agent

  • Find the Antithesis config in this repo and launch a run for 30 minutes.
  • Build the images, validate the Antithesis setup, then submit a 15-minute run.
  • Launch Antithesis for 20 minutes using the pre-built image registry.example/app:latest.

How to install antithesis-launch

1Skills CLI (Vercel)

npx skills add antithesishq/antithesis-skills --skill antithesis-launch -a claude-code

2Manually: put the files in place

~/.claude/skills/antithesis-launch/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/antithesis-launch/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about antithesis-launch

How do I install antithesis-launch in Claude Code?

Run npx skills add antithesishq/antithesis-skills --skill antithesis-launch -a claude-code. The skill file is at ~/.claude/skills/antithesis-launch/SKILL.md.

What does antithesis-launch do?

It finds an Antithesis config, builds the container images, and checks the setup with snouty validate. Once validation passes, it submits the run and reports its run_id.

What does antithesis-launch need to submit a run?

It requires Docker Compose v2, either docker or podman, snouty version 0.8.0 or newer, and a duration in minutes. Launching from a config also requires ANTITHESIS_REPOSITORY.

Source text

SKILL.md · Apache-2.0
---
name: antithesis-launch
description: >
  Launch an Antithesis run with snouty by discovering the harness layout,
  building the right Docker Compose config, running `snouty validate`,
  bailing on validation failure, and then submitting `snouty launch` with sane
  metadata. Use when the user wants to send, submit, or launch an Antithesis
  run. This skill takes duration in minutes as input.
compatibility: Requires Docker Compose v2, a container engine (docker or podman), and snouty (https://github.com/antithesishq/snouty).
metadata:
  version: "2026-10-21 4f8d80b"
---

# Antithesis Launch

**Skill version:** `2026-10-21 4f8d80b`

## Prerequisites

- DO NOT PROCEED if `snouty` is not installed. See `https://raw.githubusercontent.com/antithesishq/snouty/refs/heads/main/README.md` for installation options.
- DO NOT PROCEED if `snouty` is older than 0.8.0. Use `snouty --version` to find the version. Use `snouty update` to update.
- Run `snouty doctor`. It checks the container runtime and the compose CLI. Report both to the user and build with that same pair. This skill writes `docker compose`; use `docker-compose` instead when that is the CLI snouty names.

## Goal

Launch an Antithesis run in this order only:

1. `docker compose build` (skip if directed to use pre-built images)
2. `snouty validate`
3. if validation fails, stop and report the error
4. `snouty launch`

## Required Input

- `duration` in minutes is required. If the user did not provide it, ask before submitting the run.

## Discovery

- Start from any user-provided path, command, or Antithesis directory name.
- Otherwise, inspect the repo to understand how the harness is wired. Check nearby `AGENTS.md`, `README*`, `Makefile*`, and Antithesis-specific scripts before choosing commands.
- Find the config directory by locating the `docker-compose.yaml` intended for Antithesis. Prefer directories like `antithesis/config`, but support non-standard layouts.
- Treat these as strong Antithesis signals: nearby `scratchbook/` or `test/` directories, compose content mentioning `/opt/antithesis`, `ANTITHESIS_` env vars, `setup_complete`, or existing `snouty` examples.
- If multiple compose files look plausible, prefer the one referenced by repo docs or existing `snouty launch` examples. If the choice is still ambiguous, ask the user instead of guessing.
- Use the directory containing `docker-compose.yaml` as the `snouty validate <CONFIG>` and `snouty launch --config <CONFIG>` argument.
- Build against that exact file: `docker compose -f <CONFIG>/docker-compose.yaml build`.
- snouty never builds or pulls images, so every image must already be in the store of the engine snouty selects. snouty prefers podman when both engines are installed.
  - Use `SNOUTY_CONTAINER_ENGINE=docker` to force snouty to use docker's store.
- When using podman, build with `podman compose -f <CONFIG>/docker-compose.yaml build`. That wrapper execs Docker Compose v2 against podman's API socket, so the image lands in podman's store. Check the provider first: `podman compose version` must print `Docker Compose version ...`, because podman falls back to the `podman-compose` Python tool when it finds no Compose v2 binary.

## Run Arguments

- Determine the launcher in this order: explicit user input, existing repo docs/scripts/examples, otherwise default to `basic_test` when using a docker-compose.yaml file and to `basic_k8s_test` when using a kubernetes setup.
- If explicitly directed to launch a run against a pre-built image, run `snouty launch --config-image <CONFIG_IMAGE>` with the user-supplied image reference.
- Otherwise, use `snouty launch --config <CONFIG>`, which requires `ANTITHESIS_REPOSITORY`. Reuse the current environment if it is already set. If not, stop and ask the user for it.
- Always set all of these explicitly:
  - `--duration`: the user-provided duration
  - `--source`: repo name
  - `--test-name`: repo name plus branch or config name
  - `--description`: short, readable description of the run, including details such as the branch name, current goal, or what you changed since the last run.

- Allow overrides: When the user or another skill invoking this one specifies a launch parameter, use what they
gave you instead of the defaults described above.

## Execution

- These commands can take a long time. Prefer background execution or generous timeouts instead of assuming quick completion.
- Do not run `snouty launch` unless the build succeeded and `snouty validate` exited successfully.

```sh
docker compose -f "$CONFIG_DIR/docker-compose.yaml" build
snouty validate "$CONFIG_DIR"
snouty launch \
  --json \
  --launcher "$LAUNCHER" \
  --config "$CONFIG_DIR" \
  --duration "$DURATION" \
  --source "$SOURCE" \
  --test-name "$TEST_NAME" \
  --description "$DESCRIPTION"
```

## Output

- Report the config directory, compose build command, validate command, and final `snouty launch` command shape before submission.
- If validation fails, stop immediately and show the failing command plus the key error.
- The `--json` flag makes `snouty launch` emit machine-readable output containing a `run_id`. Parse and report the run_id — it's needed to triage the run when it is done.

## Self-Review

- The chosen config directory is the one that actually contains the Antithesis `docker-compose.yaml`.
- The build, validate, and run steps all point at the same config.
- `snouty validate` succeeded before `snouty launch` was invoked.
- The run set `source`, `test-name`, `description`, and `duration` explicitly, using any caller-supplied values in preference to the defaults as well as any caller-supplied additional parameters.
- The build used the compose CLI and container engine `snouty doctor` reported.
- Missing blockers such as `duration`, `ANTITHESIS_REPOSITORY`, or an ambiguous config location caused a stop instead of a bad submission.

© antithesishq · Apache-2.0 · antithesishq/antithesis-skills

Similar skills

All skills for Testing and QA →

From the same set9

antithesis-research Reads a codebase and produces the artifacts Antithesis testing needs: a system map, a catalog of testable properties, and a container topology. CX Codex +1 622installs antithesis-documentation Equips coding agents to query Antithesis documentation via the snouty CLI or raw markdown. Handy for setting up deterministic testing and SDKs. CX Codex +1 594installs antithesis-triage Reads Antithesis run reports: status, failed properties, logs, events across every timeline. Load it after a run finishes or when a failure needs digging into. CX Codex +1 590installs antithesis-workload Turns the property catalog and evidence files into Antithesis SDK assertions and test commands. Helps implement test workloads property by property. CX Codex +1 581installs antithesis-setup Scaffolds the antithesis/ harness with Dockerfiles and docker-compose.yaml so your system comes up in Antithesis in a mostly idle state. CX Codex +1 566installs antithesis-debug Executes bash scripts inside an Antithesis run at exact moments using the snouty CLI. Helps debug failed properties, inspect container files, and attach gdb without a browser. CX Codex +1 557installs antithesis-skills-feedback Builds a pre-filled GitHub issue URL for problems with any Antithesis skill: which skill broke, its version, the agent and a short summary. CX Codex +1 464installs test:triage A rehearsal harness for the antithesis-triage skill: sub-agents triage live Antithesis runs, then the orchestrator audits their traces for bugs and protocol slips. CX Codex +1 352installs

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor