Skip to content

Legion2/open-cue-cli

Repository files navigation

Open CUE CLI Build

Command Line Interface (CLI) to change iCUE profiles from the command line and play multiple profiles at once. This CLI uses the iCUE Game SDK via the Open CUE Service. You can use all your customized iCUE profiles.

Getting Started

Download and start the Open CUE Service. Download the latest release of Open CUE CLI and extract the archive. Call the cli tool open-cue-cli.bat or open-cue-cli from a command prompt with the option --help.

Usage: open-cue-cli [OPTIONS] COMMAND [ARGS]...

Options:
  -p, --port <port>        Port of the Open CUE Service
  -H, --host <host or ip>  Hostname or ip address of the Open CUE Service
  --version                Show the version and exit
  -h, --help               Show this message and exit

Commands:
  sdk
  profile

Examples

Activates the profile Fire

> open-cue-cli profile activate Fire

Lists all profiles

> open-cue-cli profile list

Plays the profile Wave as event for a short time

> open-cue-cli profile trigger Wave

Profiles

All profiles that you want to use with the Open CUE CLI must be in the iCUE GameSdkEffects directory. On Windows this is C:\ProgramData\Corsair\CUE4\GameSdkEffects for iCUE 4. These profiles are just the exported files when you export a profile in iCUE. When export profiles from iCUE only select "Lighting Effects" in the export settings.

Profiles are grouped into directories, which normally belong to games because the SDK was designed for iCUE Game integration. Each subdirectory of GameSdkEffects is a group of profiles and contains a priorities.cfg file.

Use own profiles/effects

The subdirectories of GameSdkEffects normally correspond to games, but you can also create own subdirectories. If you want to add your own profiles/effects, create a new directory in the GameSdkEffects directory called profiles. Create a new text file named priorities.cfg in the profiles directory.

In Windows Administrator permissions are required to create new files in the directory, so you may create the file in another directory and then move it in the profiles directory.

The file must contain all profile names one per line with a unique priority value.

MyProfile=3
Other_Profile=8
Test=245

Profile names MUST only contain normal characters "a-z", "A-Z" and "_". Also don't use language specific characters such as ä and é. You must set the name of the profile before exporting it from iCUE, you can't change it later, because it is stored inside the profile file. The priorities comes into play when you activate two profiles, then the profile with the higher priority is shown on top of the other.

Troubleshooting

See Open CUE Service Troubleshooting

Packaging of this application

This package is provided as zip containing optimized executable runtime image. Just download the zip archive for your platform, extract it where you want and then execute one of the executable scripts from the extracted archive.

You can also build the project yourself: ./gradlew runtimeZip The output can be found in the build directory.

Why not provide native executable

Native executables require curl or other native implementations to do http calls. The linking in kotlin is very complex and dynamic linking is uncommon on Windows. I didn't find a way to statically link curl into to the windows native executable produced by kotlin.