Agi-container

Installation

Windows (PowerShell)

irm https://agilitest.app/resources/tools/agi-container/install.ps1 | iex

Linux / macOS (Bash)

curl -fsSL https://agilitest.app/resources/tools/agi-container/install.sh | bash

Direct download

  • Windows

https://agilitest.app/resources/tools/agi-container/windows/agi-container.exe

  • Linux

https://agilitest.app/resources/tools/agi-container/linux/agi-container

After downloading, run agi-container install to finalize the installation.

What install does

  1. Copies binaries (agi-container + agi-containerd) to ~/.agilitest/tools/
  2. Adds that folder to PATH (Windows registry or .bashrc/.zshrc on Linux)
  3. Windows: imports the WSL distribution, configures containerd, registers the daemon for auto-start (registry HKCU\...\Run)
  4. Linux: installs the nerdctl runtime, creates a user systemd service agi-containerd.service

Architecture

The daemon (agi-containerd) listens on 127.0.0.1:21523 and manages the container lifecycle. The CLI communicates with the daemon over HTTP.

The cache is automatically refreshed every 15 seconds.

Usage

System commands

# Check installation
agi-container --version

# Full status (daemon, images, containers, supported OS)
agi-container status

# Clean all containers and images
agi-container clean

# Full uninstall
agi-container uninstall

Container commands (nerdctl passthrough)

# List images
agi-container list-images

# Pull an image
agi-container pull actiontestscript/linux:latest

# List running containers
agi-container ps

# Run a container
agi-container run --rm -d actiontestscript/linux

# Stop a container
agi-container stop <container_id>

Any standard nerdctl command is supported (run, pull, ps, exec, stop, rm, images, build, etc.).

Test execution (CI mode)

CI mode is automatically activated when arguments contain key=value pairs.

Agilitest execution philosophy

Sequential inside, parallel outside.In Agilitest, a suite contains an ordered list of tests that run sequentially, in the defined order. Order matters: each test may depend on the state left by the previous one.

However, multiple suites are independent from each other and can be executed in parallel — each in its own container.

Simple execution

# Run a test script
agi-container script=MyScript

# Run a suite (sequential by default)
agi-container suite=Regression --tag latest

# Suite with options
agi-container suite=Regression \
  ats-report=3 \
  time-zone=Europe/Paris \
  language=fr_FR \
  dashboard=true \
  --tag latest

Parallel suite execution

With --parallel, each suite is launched in a separate container and runs concurrently with the others. Tests inside each suite remain sequential and ordered.

# 2 suites in parallel → 2 simultaneous containers
agi-container suites=Smoke,Regression --parallel --tag latest

Variable-based parallelization

Variable-based parallelization allows you to run the same suite multiple times in parallel, each instance receiving a different value for a given variable. This is useful for testing across multiple browsers, environments, or configurations in a single command.

Two options are used together:

  • --parallel-var NAME — the name of the variable to inject into each container
  • --parallel-value val1,val2,val3 — comma-separated values; each value spawns a separate container

The --browsers shortcut is an alias for --parallel-var browser --parallel-value ...:

# Equivalent to the example above
agi-container suite=CrossBrowser --browsers chrome,firefox,safari --tag latest
Inside each container, the variable is accessible as an environment variable. The suite runs sequentially as usual — only the variable value differs from one container to another.

ATS parameters

These parameters are passed directly to AtsLauncher.java inside the container:

CLI options (CI mode)

Agilitest editor integration

The editor looks for agi-container in this order:

  1. Next to the editor executable
  2. tools/ subfolder of the editor
  3. ~/.agilitest/tools/
  4. C:\Program Files\Agilitest\ WIN
  5. %LOCALAPPDATA%\Programs\Agilitest\ WIN
  6. Custom path (user settings)
  7. /usr/local/bin/ LNX

Command generated by the "Command line" popup

agi-container ats-report=3 \
  time-zone=Europe/Paris \
  language=fr_FR \
  [dashboard=true] \
  [hide-duration=true] \
  [other options...] \
  suite=MySuite \
  [--parallel] \
  --tag latest

Launching a container from the editor

agi-container run \
  --shm-size=2g \
  -d --rm \
  -e TZ=Europe/Paris \
  -e LANGUAGE=fr_FR \
  -e AGILITEST_INSTANCE=1 \
  -e AGILITEST_PROJECT=MyProject \
  -p 8080:8080 \
  --name=project-uuid.1 \
  -v /path/to/project:/home/ats-user/ats-project \
  actiontestscript/linux:latest

Mount paths inside containers

Results structure (parallel execution)

project/
├── target/
│   ├── parallel/
│   │   ├── suite1-linux/
│   │   │   ├── ats-output/
│   │   │   └── container.log
│   │   └── suite2-win/
│   │       ├── ats-output/
│   │       └── container.log
│   └── ats-output/          ← merged report

Windows specifics

  • Uses a WSL2 distribution named agi-container for Linux containers
  • Also supports native Windows containers via the containerd-agilitest service (named pipe \\.\pipe\containerd-agilitest)
  • TCP proxy for port forwarding (works around WSL iptables limitations)
  • Automatic Windows → WSL path translation (C:\path/mnt/c/path)
  • Automatic Windows Containers detection via sc query vmcompute

Linux specifics

  • Direct execution via nerdctl (no WSL layer)
  • Linux containers only
  • User systemd service for the daemon

On this page

// TOC MANAGEMENT