These are the main products offered by ST.
There are other opensource versions found online, especially for commandline usage.
ST-LINK utility has been replaced/superseded by STM32CubeProgrammer
STM32 ST-LINK Utility (STSW-LINK004) is a full-featured software interface for programming STM32 microcontrollers.
It provides an easy-to-use and efficient environment for reading, writing and verifying a memory device.
The tool offers a wide range of features to program STM32 internal memories (Flash, RAM, OTP and others), external memories, to verify the programming content (checksum, verify during and after programming, compare with file) and to automate STM32 programming.
STM32 ST-LINK Utility is delivered as a graphical user interface (GUI) with a command line interface (CLI).
STM32CubeProgrammer (STM32CubeProg) is an all-in-one multi-OS software tool for programming STM32 products.
It provides an easy-to-use and efficient environment for reading, writing and verifying device memory through both the debug interface (JTAG and SWD) and the bootloader interface (UART, USB DFU, I2C, SPI, and CAN).
STM32CubeProgrammer offers a wide range of features to program STM32 internal memories (such as Flash, RAM, and OTP) as well as external memories.
STM32CubeProgrammer also allows option programming and upload, programming content verification, and programming automation through scripting.
STM32CubeProgrammer is delivered in GUI (graphical user interface) and CLI (command-line interface) versions.