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
- Copies binaries (
agi-container+agi-containerd) to~/.agilitest/tools/ - Adds that folder to
PATH(Windows registry or.bashrc/.zshrcon Linux) - Windows: imports the WSL distribution, configures containerd, registers the daemon for auto-start (registry
HKCU\...\Run) - 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 latestInside 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:
- Next to the editor executable
tools/subfolder of the editor~/.agilitest/tools/C:\Program Files\Agilitest\WIN%LOCALAPPDATA%\Programs\Agilitest\WIN- Custom path (user settings)
/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-containerfor Linux containers - Also supports native Windows containers via the
containerd-agilitestservice (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

