# Helmut4 Client

The purpose of this guide is to assist you in upgrading the Helmut4 client to a newer version.

Updating the client is generally straightforward. On Windows, an uninstaller is available, which removes the client and the Helmut4-related extensions.

**We recommend** [**running the uninstaller**](/helmut4-releases/getting-started/installation-guide/helmut4-client.md#unattended-automated-client-installation) **(Windows) or manually deleting the client (macOS) in the first place, before installing the new one**.\
Please refer as well to: [Optional update script for central client distribution](#optional-update-script-for-central-client-distribution)

Running the new client installer defaults to updating the client and the Adobe-Helmut4 extensions.

It is important to note that when updating Helmut4 and Adobe simultaneously, Adobe applications should be updated first; otherwise, the extensions will not be available.

For further information, please consult the [supported Adobe versions](/helmut4-releases/getting-started/supported-adobe-versions.md) or [Helmut4 client tech specs](/helmut4-releases/getting-started/installation-guide/helmut4-client.md).

### Updating from v4.7 (or earlier) to v4.8 – v4.11

{% hint style="danger" %}
Due to an update of the underlying Java framework, client and server versions are no longer cross-compatible.

* A **4.8 or newer client cannot connect to a 4.7 (or older) server**
* A **4.7 or older client cannot connect to a 4.8 (or newer) server**

Because of this, pre-deploying (pre-populating) the new client before the server update is **not possible**. The server must be updated first, followed by the client rollout.

#### Autologin file

A change in the security key length requires **all existing autologin files to be recreated**.

New autologin files must be generated **after the server has been updated** to the target version (e.g. 4.8.x).\
\&#xNAN;*Previously created files will no longer work.*
{% endhint %}

### Updating from v4.11 (or earlier) to v4.12 (or newer)

{% hint style="warning" %}
With v4.12 another Java runtime upgrade was introduced, again changing client/server compatibility.

* A **4.12 or newer client cannot connect to a 4.11 (or older) server**
* A **4.11 or older client cannot connect to a 4.12 (or newer) server**

\
The upgrade order is therefore mandatory:

1. Update the **Helmut4 server**
2. Afterwards deploy the **Helmut4 client**

Pre-deploying the client before the server update will result in login failures.
{% endhint %}

### Helmut4: Server vs client version

Every stable/snapshot release has a dedicated client. The specific client version for the server can be found on the [admin webpage](/helmut4-releases/getting-started/installation-guide/helmut4-client.md#download-helmut4-client-via-gui) or via API/URL.

For more details, please refer to the following link: [Request Helmut4 client via URL](/helmut4-releases/getting-started/installation-guide/helmut4-client.md#request-helmut4-client-via-url).

If you'd like to obtain it ahead of time, please don't hesitate to submit a [ticket](https://moovit.jitbit.com/helpdesk/).

### Optional update script for central client distribution

When updating the server, it is essential to also update the client application. The dedicated client includes release-related changes as well as panel extensions used within Adobe Premiere Pro and After Effects.

We strongly recommend performing a clean uninstall of the client for both Windows and Mac.

Please refer to [Helmut4 Panel Extensions](/helmut4-releases/support/debug-or-log-collection/helmut4-client/check-installed-helmut-extensions.md#helmut4-panel-extensions) for the names of the latest and deprecated extensions.

Below are two (optional) scripts that might assist you with this procedure when deploying the client with a software deployment system:

<details>

<summary>Windows Script</summary>

This batch script will silently uninstall and then reinstall the Helmut4 client.

***This script requires administrator privileges.***

```batch
@echo off
:: Helmut Client Silent Installation Script
:: Purpose: Automates the uninstallation of previous versions and installation of Helmut Client

:: MoovIT - B. Dimmel
:: Version 4.3
:: Date: Apr 4th 2023

:: Changelog: Mar 20th 2025
:: Major Features Due To Refactoring:
:: - Automatic version detection from server
:: - Silent uninstallation of previous versions
:: - Cleanup of Adobe extensions and temporary files
:: - Installation of new client version
:: - Automatic startup configuration
:: - Adopted URL for client version request

color 1F

:: Configuration Variables
:: ---------------------
:: Local folder path for Helmut4 client installer
set "helmutpath=C:\temp\helmut4"

:: Helmut4 server address (IP or DNS name only, no protocol or slashes)
set "helmut4-server=192.168.122.220"

:: Default client version (will be updated automatically if server is accessible)
set "clientversion=4.12.0.8"

:: Check for existing installer
if exist "%helmutpath%\Helmut_Client_Setup_%clientversion%.exe" (
    echo Found existing Helmut4 client installer
    echo.
    goto terminateH4process
) else (
    echo Helmut4 client installer not found - attempting download
    echo.
    goto downloadClient
)

:downloadClient
:: Auto-detect server version and protocol
:: Tests both HTTP and HTTPS to determine available protocol
set baseUrl=%helmut4-server%/v1/license/client/version

rem Function to test a URL and capture the response
set "protocol=http"
for %%p in (http https) do (
    for /f "tokens=*" %%i in ('powershell -Command "try { (Invoke-WebRequest -Uri '%%p://%baseUrl%' -UseBasicParsing -TimeoutSec 5).StatusCode } catch { '' }"') do (
        if %%i==200 (
            set "protocol=%%p"
            goto :found
        )
    )
)
echo.
echo Error: Unable to detect Helmut4 server version!
exit /b

:found
:: Retrieve current version from server
for /f "usebackq tokens=*" %%i in (`powershell -Command "(Invoke-WebRequest -Uri '%protocol%://%baseUrl%' -UseBasicParsing).Content | ConvertFrom-Json | Select-Object -ExpandProperty version"`) do (
    set clientversion=%%i
)
echo Detected Helmut4 version %clientversion% using %protocol%
echo.

:: Download client installer
set "downloadurl=%protocol%://%helmut4-server%/v1/client/Helmut_Client_Setup_%clientversion%.exe"
if not exist "%helmutpath%" mkdir "%helmutpath%"
::Downloading client installer via bitsadmin
bitsadmin /transfer "Download of Helmut4 client: v%clientversion%" /download /priority foreground "%downloadurl%" "%helmutpath%\Helmut_Client_Setup_%clientversion%.exe"

if not exist "%helmutpath%\Helmut_Client_Setup_%clientversion%.exe" (
    echo Error: Download failed, exiting script!
    exit /b
)
echo Client download completed successfully
echo.

:terminateH4process
:: Stop all running instances of Helmut4
:: Handles both legacy (pre-4.8.0) and current versions
taskkill /F /T /IM "javaw.exe" >nul 2>&1
timeout /t 2 >nul 2>&1
taskkill /F /T /IM "Helmut4.exe" >nul 2>&1
echo Terminated existing Helmut4 processes
echo.

:: Uninstall existing Helmut4 installation
if exist "C:\Program Files\MoovIT GmbH\Helmut4\Uninstall Helmut4.exe" (
    cd /d "C:\Program Files\MoovIT GmbH\Helmut4"
    echo Uninstalling previous Helmut4 version...
    echo.
    start /wait "" "C:\Program Files\MoovIT GmbH\Helmut4\Uninstall Helmut4.exe" /S
    timeout /t 40 /nobreak >nul

    echo Helmut4 client uninstalled.
) else (
    echo No existing Helmut4 installation found
)
rd /s /q "C:\Program Files\MoovIT GmbH\Helmut4"
echo.

:removeExtensions
:: Clean up extension directories and temporary files
echo Removing extension directories and cache...
set "extensions=de.moovit.AME_WS de.moovit.HELMUT de.moovit.HELMUT_ADOBE_INVISIBLE_PANEL de.moovit.HELMUT_ADOBE_WINDOW_EXTENSION de.moovit.PREMIERE_WS Helmut4"
set "extensions_path=C:\Program Files (x86)\Common Files\Adobe\CEP\extensions"
for %%e in (%extensions%) do (
    Rmdir /S /Q "%extensions_path%\%%e" 2>nul
)

:: Clean up user-specific temporary files
for /D %%D in (C:\Users\*) do (
    del "%%D\AppData\Local\Temp\stream-engine-4*.jar" /F /Q 2>nul
    if exist "%%D\AppData\Local\Temp\cep_cache" (
        forfiles /P "%%D\AppData\Local\Temp\cep_cache" /M *_de.moovit.* /C "cmd /c if @isdir==TRUE rmdir /s /q @file" 2>nul
        forfiles /P "%%D\AppData\Local\Temp\cep_cache" /M *Helmut* /C "cmd /c if @isdir==TRUE rmdir /s /q @file" 2>nul
    )
)
echo.
echo Adobe extensions and temporary files have been deleted.
echo.

:: Install new Helmut4 Client
echo Installing Helmut4 client v%clientversion% ...
cd /d "%helmutpath%"
start /wait "" "%helmutpath%\Helmut_Client_Setup_%clientversion%.exe" /S
timeout /t 30 /nobreak >nul

:: Check if client has been installed properly
if exist "C:\Program Files\MoovIT GmbH\Helmut4\Helmut4.exe" (
    echo.
    ) else (
    echo Error during installation - Helmut4.exe is missing!
    exit /b
)

:: Configure auto-start
echo.
echo Configuring automatic startup...
echo.
robocopy "C:\Users\Public\Desktop" "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp" Helmut4.lnk /is >nul 2>&1
del /f "C:\Users\Public\Desktop\Helmut4.lnk" >nul 2>&1

echo.
echo Helmut4 Client has been installed successfully.
echo.

:: Wait for installation to complete
timeout /t 5 /nobreak >nul

exit /b
```

</details>

<details>

<summary>macOS Script</summary>

This shell script is designed to uninstall the Helmut4 application along with its dedicated extensions, followed by the installation of the Helmut4 client.

***This script requires administrator privileges.***

```sh
#!/bin/bash

# Uninstall + Install Helmut Client on macOS

# MoovIT
# Version 1.3
# Date: Apr 4th 2023

# Changelog: Mar 15th 2024
# Minor refactoring
# Verify existence of pkg installer

# Define variables for installer path and client version
helmutpath="/Volumes/MacHD/Users/Shared"
clientversion="4.12.0.8"
installpath="$helmutpath/Helmut_Client_Setup_$clientversion.pkg"

# Check if the installer package file exists
if [ ! -f "$installpath" ]; then
    echo "Error: Installer package file '$installpath' not found. Aborting."
    exit 1
fi

# Terminate running Helmut4 instance
pkill "Helmut4"
echo "Helmut process terminated"

# Delete users' moovIT panel cache
rm -rf "/Users/*/Library/Caches/CSXS/cep_cache/PPRO_*_de.moovit.HELMUT_ADOBE_INVISIBLE_PANEL"
rm -rf "/Users/*/Library/Caches/CSXS/cep_cache/PPRO_*_de.moovit.HELMUT"
rm -rf "/Users/*/Library/Caches/CSXS/cep_cache/AME_*_de.moovit.AME_WS"
# Old extension
rm -rf "/Users/*/Library/Caches/CSXS/cep_cache/PPRO_*_de.moovit.PREMIERE_WS"

# Delete all moovIT panel extensions (safeline version)
rm -rf "/Library/Application Support/Adobe/CEP/extensions/de.moovit.AME_WS"
rm -rf "/Library/Application Support/Adobe/CEP/extensions/de.moovit.HELMUT"
rm -rf "/Library/Application Support/Adobe/CEP/extensions/de.moovit.HELMUT_ADOBE_INVISIBLE_PANEL"
# Old extensions
rm -rf "/Library/Application Support/Adobe/CEP/extensions/de.moovit.PREMIERE_WS"

# Delete old Helmut4 application
rm -rf "/Applications/Helmut4.app"

# Install Helmut4
installer -pkg "$installpath" -target /Applications/

echo "Update finished"

# Display dialog message
osascript -e 'display dialog "Helmut4 client installed!" with title "MoovIT-Helmut4"'
```

</details>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.helmut.de/helmut4-releases/getting-started/upgrade-guide/helmut4-client.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
