# Getting Started

## Prerequisites

* **SeaLights Account**: Active SeaLights account with access credentials
* **Authentication Token**: Valid SeaLights Agent token
* **Supported C++ Compiler**: GCC/G++ - versions 9.4 through 13.3, Clang - versions 20 through 21
* **Operating System:** Ubuntu 20.04 and newer, Debian 11 and newer or compatible Linux distributions
* **C++ Agent Binary**: Downloaded `SL.Agent.Cpp` binary placed in your project directory
* **Network Access**: Ability to connect to SeaLights servers (check firewall/proxy settings if needed)

## **Downloading the C++ Agent**

The latest SeaLights C++ Agent file can be downloaded from:

* `https://${SL_DOMAIN}/slcpp/latest/sealights-cpp-agent-linux-self-contained.tar.gz`
* `https://${SL_DOMAIN}/slcpp/latest/sealights-cpp-agent-linux-self-contained.zip`

Where `${SL_DOMAIN}` should be replaced with either:

* Your account-specific domain endpoint:\
  `<your_custom_domain>.sealights.co`
* The generic SeaLights agents endpoint:\
  `agents.sealights.co`

For example:

```bash
https://agents.sealights.co/slcpp/latest/sealights-cpp-agent-linux-self-contained.tar.gz
```

### Sample Scripts for Downloading the C++ Agent

#### Downloading and extracting the latest version:

{% code overflow="wrap" lineNumbers="true" %}

```sh
SL_DOMAIN=agents.sealights.co

# Download and extract Sealights C++ Agent (self-contained Linux package)
echo "[Sealights] Downloading Sealights C++ Agent..."

wget -nv -O sealights-cpp-agent-linux-self-contained.tar.gz \
    https://${SL_DOMAIN}/slcpp/latest/sealights-cpp-agent-linux-self-contained.tar.gz \
    && tar -xvf sealights-cpp-agent-linux-self-contained.tar.gz \
    && rm sealights-cpp-agent-linux-self-contained.tar.gz

# Verify installation (prints version)
./sealights-cpp-agent --version 2> /dev/null
```

{% endcode %}

#### Downloading a specific version <a href="#downloading-a-specific-version" id="downloading-a-specific-version"></a>

Replace “latest” with the desired version when downloading a specific version. Please note the format of the specific version URL that includes the `v` prefix.

**Example script:**

{% code overflow="wrap" lineNumbers="true" %}

```bash
# SeaLights domain (replace with your custom domain if needed)
SL_DOMAIN=agents.sealights.co

# Specific version to download (must include the "v" prefix)
SL_CPP_AGENT_VERSION=v0.3.0.1

echo "[Sealights] Downloading Sealights C++ Agent..."

wget -nv -O sealights-cpp-agent-linux-self-contained.tar.gz \
  https://${SL_DOMAIN}/slcpp/${SL_CPP_AGENT_VERSION}/sealights-cpp-agent-linux-self-contained.tar.gz

# Extract the agent and clean up the archive
tar -xvf sealights-cpp-agent-linux-self-contained.tar.gz
rm sealights-cpp-agent-linux-self-contained.tar.gz

# Verify installation (prints version)
./sealights-cpp-agent --version 2> /dev/null
```

{% endcode %}
