Overwolf CLI
The Overwolf CLI is a tool to help you manage your Overwolf applications.
Installation
Install the Overwolf CLI using the following command:
npm i -g @overwolf/ow-cli
Usage
The Overwolf CLI can be used from a terminal or from a node.js script.
Terminal
Use the following commands from a terminal:
config
—configures the CLI. You will be prompted to enter your email (your Dev Console login) and your API key. Deprecates thedev config
command.opk pack
—packs a folder into an OPK file.opk sign
—signs an OPK. The app for this OPK must exist in the Dev Console and you must have permissions for it. Deprecates thedev sign-opk
command.opk upload
—uploads an OPK file to the Dev Console. The OPK must be valid, the app this OPK must exist in the Dev Console, and you must have permissions for it. You can also upload to a test channel. When the command finishes successfully, it returns the version's ID. Use thewait flag (-w, --wait)
to make the CLI exit only after the OPK's processing is complete and it's ready to be released.opk release
—increments the percentage of users who have availability to the app. The version must exist in the Dev Console, it must be in a draft state or rollout state, you must have permissions for it, and the percentage you specify must be greater than its current rollout percentage. You can also use this command in a test channel.client calc-uid
—calculates an app's UID using its name and author.versions promote-to-prod
—promotes a version from a test channel to the production channel. You must have the correct permissions for it.electron upload
—uploads an electron setup file to the Dev Console. The setup file must be valid, you must provide the app id for this setup file, and you must have permissions for it. You can also upload to a test channel. When the command finishes successfully, it returns the version's ID. You can use the wait flag (-w, --wait) to make the CLI exit only after the setup file's processing is complete and it's ready to be released.
From the command line, run ow help
for a list of all available commands.
If you're using a linux-based terminal (e.g git bash
), use <tab><tab>
to autocomplete the command. You may need to restart your terminal for the autocomplete to take effect.
From a Node.JS script
Install @overwolf/ow-cli
as a dependency in your node.js app. Insert the following at your application's entry point:
import 'reflect-metadata';
import { OwCliContainer } from '@overwolf/ow-cli/bin';
OwCliContainer.init();
All of the available commands and their arguments can be found in @overwolf/ow-cli/bin
as well. To get a command, use OwCliContainer
:
const signOpkCmd = OwCliContainer.resolve(SignOpkCommand);
Then, call the command's handler
method:
signOpkCmd.handler({ ... });
API key
You can obtain your API key from the Dev Console. In the left menu, press Settings => Profile
, then revoke and regenerate your API key.
Revoking your API key means that the previous key will stop working immediately. Similar to a password, we aren't able to recover your API key for you.
Credentials
Some actions in the CLI may require you to provide credentials. Your credentials are the email you use to sign in to the Dev Console, and your API key.
There are 2 ways to provide your credentials:
- The
config
command—runningow config
(instead of the deprecatedow dev config
) will prompt you for your email and API key, and will store them locally in your user's root folder. - Environment variables—whenever you run a command, you can specify
OW_CLI_EMAIL
andOW_CLI_API_KEY
using your operating system's syntax. Using this method will not store the credentials on your machine.
Use cases
Here are some common use cases for the CLI.
Releasing an OPK from a pipeline
You can use the CLI to release an OPK. When you have a valid and packed OPK file (opk pack
command) use the opk upload
and opk release
commands to start rolling it out to your users. For example:
$ ow opk upload ./path/to/your/version.opk -w | xargs ow opk release -p 25
Using the opk upload
command with the -w
flag, will upload your OPK to the Dev Console, wait for it to finish processing, and print out the version's ID. The | xargs
command will take that version ID and pass it as an argument to the opk release
command. The -p 25
argument in the opk release
command specifies the percentage of users who will receive the new version. These commands also work with test channels. You can also specify which version to release using your application ID and the version number. See opk release --help
for more details.
Releasing an Electron setup file from a pipeline
You can use the CLI to release an Electron setup file. When you have a valid setup file, use the electron upload
and versions release
commands to start rolling it out to your users. For example:
$ ow electron upload ./path/to/your/version.opk -aid aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -w | xargs ow versions release -p 25
The electron upload
command with the -w
flag, will upload your OPK to the Dev Console, wait for it to finish processing, and print out the version's ID. The | xargs
command, will take that version ID and pass it as an argument to the versions release
command. The -p 25
argument in the versions release
command specifies the percentage of users who will receive the new version. These commands also work with test channels. You can also specify which version to release using your application ID and the version number. See versions release --help
for more details.
Test Channel IDs
Several commands work with test channels. Use the channel ID as the argument. You can find the channel's ID in the page URL of the channel in the Dev Console.
Promoting a version to production
You can use the CLI to promote a version to production from a given test channel. Use the versions promote-to-prod
command to promote the version to production. This will create it as a draft. For example:
$ ow versions promote-to-prod -aid aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -sc my-test-channel -v 1.2.3
The -sc
flag represents your test channel name. The -v
flag represents your version number.
For the NPM repository, see Overwolf CLI.