Skip to main content

System Requirements

Before installing Esprit, ensure you have:

Python 3.12+

Required for running the Esprit agent runtime

Docker (Optional)

Only needed for local mode with your own LLM provider. Not required for Esprit Cloud.
Using Esprit Cloud? You can skip Docker installation entirely. Esprit Cloud runs scans in managed sandboxes.

Installation Methods

Choose the installation method that best fits your workflow:

Docker Setup (Local Mode Only)

If you plan to use local mode with your own LLM provider (instead of Esprit Cloud), you need Docker:
1

Install Docker

Download Docker Desktop from docker.comOr on Linux, install Docker Engine:
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
After adding yourself to the docker group, log out and back in for changes to take effect.
2

Verify Docker is Running

docker info
You should see output showing Docker is running. If not, start Docker Desktop or:
sudo systemctl start docker
3

Pre-Pull the Sandbox Image (Optional)

Download the Esprit sandbox image to speed up your first scan:
docker pull improdead/esprit-sandbox:latest
The image is ~2GB and contains all security testing tools.
Apple Silicon (M1/M2/M3)? The sandbox image uses linux/amd64 emulation on ARM Macs. Performance is excellent thanks to Rosetta 2.

Platform-Specific Notes

If you’re running Alpine or another musl-based distribution, install build tools before running the installer:
apk add --no-cache build-base linux-headers rust cargo python3-dev
Some Python dependencies (like cryptography) compile from source on musl systems.
Esprit runs on Windows via WSL2:
  1. Install WSL2
  2. Install Ubuntu or Debian from the Microsoft Store
  3. Inside WSL, follow the curl installation instructions
  4. Install Docker Desktop for Windows with WSL2 backend
Esprit Cloud works on WSL2 without Docker.
If you’re behind a corporate proxy, configure environment variables:
export HTTP_PROXY=http://proxy.corp.com:8080
export HTTPS_PROXY=http://proxy.corp.com:8080
export NO_PROXY=localhost,127.0.0.1
For Docker:
mkdir -p ~/.docker
cat > ~/.docker/config.json <<EOF
{
  "proxies": {
    "default": {
      "httpProxy": "http://proxy.corp.com:8080",
      "httpsProxy": "http://proxy.corp.com:8080",
      "noProxy": "localhost,127.0.0.1"
    }
  }
}
EOF
For offline environments:
  1. Download the repository as a tarball on a machine with internet
  2. Transfer to the air-gapped system
  3. Extract and install:
tar -xzf Esprit-main.tar.gz
cd Esprit-main
pip install poetry
poetry install --no-interaction
You’ll also need to manually transfer the Docker sandbox image:
# On internet-connected machine:
docker pull improdead/esprit-sandbox:latest
docker save improdead/esprit-sandbox:latest | gzip > esprit-sandbox.tar.gz

# On air-gapped machine:
docker load < esprit-sandbox.tar.gz

Troubleshooting

The installation path isn’t in your shell’s PATH. Add it manually:
echo 'export PATH="$HOME/.esprit/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Esprit requires Python 3.12+. Install a newer version:
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.12 python3.12-venv
Then re-run the installer.
If you see permission denied while trying to connect to the Docker daemon:
sudo usermod -aG docker $USER
newgrp docker
Or on macOS, ensure Docker Desktop is running.
If dependency compilation fails on M1/M2/M3 Macs:
# Install Rosetta 2 if not already installed
softwareupdate --install-rosetta

# Install Homebrew dependencies
brew install rust openssl

# Retry installation
curl -fsSL https://raw.githubusercontent.com/esprit-cli/Esprit/main/scripts/install.sh | bash

Updating Esprit

To update to the latest version:
esprit --self-update
The --self-update flag automatically downloads and installs the latest version of Esprit.

Uninstalling

To completely remove Esprit:
rm -rf ~/.esprit
# Remove PATH export from your shell config file
Scan results in esprit_runs/ are preserved during uninstallation. Delete manually if needed.

Next Steps

Quick Start

Now that Esprit is installed, run your first security scan

Build docs developers (and LLMs) love