diff --git a/script/fvp-launcher.sh b/script/fvp-launcher.sh
new file mode 100755
index 0000000..f5a728b
--- /dev/null
+++ b/script/fvp-launcher.sh
@@ -0,0 +1,135 @@
+#!/usr/bin/env bash
+#
+# Copyright (c) 2021 Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: BSD-3-Clause
+#
+
+# Given the name of the release (e.g., 18.04), this script downloads all
+# Linaro release archives to the current directory, verifies, extracts, and
+# finally removes the archive files.
+
+# FVP launcher: Script that generates docker and baremetal commands based on LAVA
+# log stored at [TF Open CI](http://ci.trustedfirmware.org/)
+#
+# Usage:
+# Run the `fvp-launcher.sh` script, providing a https://ci.trustedfirmware.org/view/TF-A/job/tf-a-builder/
+# job as parameter, for example
+#
+# $ ./fvp-launcher.sh https://ci.trustedfirmware.org/job/tf-a-builder/252606/
+#
+# executon will fetch all artefacts locally and finally generating the two commands: docker and baremetal commands,
+# any can be run depending on the scenario.
+
+
+# safe execution
+set -ue
+
+function r_curl(){
+    local target="$1"
+    local source="$2"
+    curl --connect-timeout 5 --retry 5 --retry-delay 1 -fsSLo "$1" "$2"
+}
+
+declare -A saveas
+declare -A urls
+
+## Must params
+JENKINS_URL="${1:?}"
+
+
+## Optional params passed through env variables
+USE_LOCAL_IMAGE="${USE_LOCAL_IMAGE:-false}"
+NO_ARM_LICENSE="${NO_ARM_LICENSE:-true}"
+NO_TTY="${NO_TTY:-true}"
+LAVA_LOG="${LAVA_LOG:-./lava.log}"
+DOCKER_CMDS_FILE="${DOCKER_CMDS_FILE:-./docker.txt}"
+BM_CMDS_FILE="${BM_CMDS_FILE:-./bm.txt}"
+
+JENKINS_URL="${JENKINS_URL}/artifact/lava.log"
+
+
+# Fetch the LAVA log
+r_curl "${LAVA_LOG}" "${JENKINS_URL}"
+
+# Get download directories from the lava log
+i=1
+for sa in $(awk '/saving as/ {print $4}' $LAVA_LOG); do
+    # NOTE the leading dot, which modifies original LAVA paths
+    saveas[$i]=".$sa"
+    i=$((i + 1))
+done
+
+i=1
+# Get the artefacts from the lava log
+for url in $(awk '/downloading/ {print $3}' $LAVA_LOG); do
+    urls[$i]="$url"
+    i=$((i + 1))
+done
+
+total=$((i -1))
+
+# Fetch artefacts and place it under top dir
+mkdir -p $PWD/lava
+i=1
+for i in $(seq $total); do
+    u=${urls[$i]}
+    o=${saveas[$i]}
+
+    mkdir -p $(dirname $o)
+
+    # Just fetch in case artefact is not present
+    if [ ! -f $o ]; then
+       r_curl "$o" "$u"
+    fi
+    cp -f $o $PWD/lava
+done
+
+# allow docker to use local X windows
+xhost + > /dev/null
+
+rm -f ${DOCKER_CMDS_FILE} ${BM_CMDS_FILE}
+
+grep -o -E 'docker run .*' $LAVA_LOG | tail -1 | while read line; do
+    cmd="$line"
+    cmd="$(echo $cmd | sed -e 's;docker run;docker run --env="DISPLAY" --net=host ;g')"
+
+    if [[ "${NO_TTY}" == "true" ]]; then
+        cmd="$(echo $cmd | sed 's/--tty//g')"
+    fi
+
+    if [[ "${NO_ARM_LICENSE}" == "true" ]]; then
+        cmd="$(echo $cmd | sed 's/-e ARMLMD_LICENSE_FILE=27000@ci.trustedfirmware.org//g')"
+    fi
+
+    if [[ "${USE_LOCAL_IMAGE}" == "true" ]]; then
+        cmd="$(echo $cmd | sed 's/987685672616.dkr.ecr.us-east-1.amazonaws.com\///g')"
+    fi
+
+    docker_cmd="$(echo $cmd | sed "s;--volume /;--volume $PWD/;g")"
+
+    # Point model parameters to local lava folder
+    bm_cmd=""
+    for token in $docker_cmd; do
+        bm_token="$(echo $token | sed "s;=/lava.*/;=$PWD/lava/;g")"
+        bm_cmd="$bm_cmd $bm_token "
+    done
+
+    # trim the docker leading code
+    bm_cmd="$(echo "${bm_cmd}" | sed 's;.* /opt/model;/opt/model;g')"
+
+    echo "$docker_cmd" >> $DOCKER_CMDS_FILE
+    echo "$bm_cmd" >> $BM_CMDS_FILE
+
+done
+
+echo "Docker command"
+echo
+cat $DOCKER_CMDS_FILE
+echo
+
+echo "Baremetal command"
+echo
+cat $BM_CMDS_FILE
+echo
+
