Built-in commands

Command launcher built-in commands

config

Get or set the Command Launcher configuration.

Use cola config to list all configuration entries.

Use cola config [key] to get one configuration entry.

Use cola config [key] [value] to set one configuration entry.

completion

Set up auto completion. See help to get instructions:

cola completion --help

login

Store your credentials securely and pass them to managed commands when requested and under your agreements. For more details see: Managed resources

update

Check updates for the Command Launcher and any managed commands.

version

Return Command Launcher version information.

package

A collection of commands to manage installed packages and commands

package list

List installed packages and commands.

# list all local and dropin packages (default)
cola package list

# list local installed packages
cola package list --local

# list local installed packages and commands
cola package list --local --include-cmd

# list dropin packages
cola package list --dropin

# list local dropin packages and commands
cola package list --dropin --include-cmd

# list workspace packages (available in 1.15+)
cola package list --workspace

# list remote packages
cola package list --remote

package install

Install a dropin package from a git repo or from a zip file.

# install a dropin package from git repository
cola package install --git https://github.com/criteo/command-launcher-package-example

# install a dropin package from zip file
cola package install --file https://github.com/criteo/command-launcher/raw/main/examples/remote-repo/command-launcher-demo-1.0.0.pkg

package delete

Remove a dropin package from the package name defined in the manifest.

cola package delete command-launcher-example-package

package inspect

available in 1.15+

Show detailed information about an installed package, including its source, version, local path, pause status, and commands.

cola package inspect my-package

The output includes:

  • Full name (<package>@<source>)
  • Version
  • Source (dropin, managed, workspace, etc.)
  • Whether the package is managed
  • Remote URL, registry, and sync policy (for managed packages)
  • Local path
  • Update pause status and expiration (for managed packages)
  • List of commands in the package

package pause

available in 1.15+

Pause automatic updates for a managed package. This prevents the package from being updated during auto-update cycles. The pause lasts 24 hours by default. After the pause expires, the package will resume normal auto-update behavior.

A package is also automatically paused when its update fails, to avoid repeated failures.

cola package pause my-package

You can check whether a package is paused (and when the pause expires) with package inspect.

package setup

Manually trigger the package setup hook.

cola package setup command-launcher-example-package

remote

A collection of commands to manage extra remote registries. A registry is a URI that hosts multiple packages. The list of available packages of the registry is defined in its /index.json endpoint.

remote list

List remote registries.

cola remote list

remote add

Add a new remote registry. Command launcher will synchronize from this remote registry once added.

cola remote add myregistry https://raw.githubusercontent.com/criteo/command-launcher/main/examples/remote-repo

# optionally specify a sync policy (defaults to "always")
cola remote add myregistry https://example.com/repo --sync-policy daily

remote set

available in 1.15+

Update settings for an existing remote registry. Currently supports updating the sync policy.

# update the sync policy of a remote
cola remote set myregistry --sync-policy daily

Valid sync policies: never, always, hourly, daily, weekly, monthly.

Note: the default remote cannot be modified with this command.

remote delete

Delete a remote registry by its name.

cola remote delete myregistry

rename

rename

Rename a command into a different name.

To avoid command conflicts, each command has a unique full name in the form of [name]@[group]@[package]@[repository]. For group commands and root level commands, their group is empty. For example: hello@@my-package@dropin is the full name of the command hello in my-package package, which can be found in the dropin repository.

Usually, such command is launched through: cola [group] [name]. You can rename the group and the name of the command to a different name, so that you can call it through: cola [new group] [new name]

To rename a command to a different name, use the following commands:

# To change the group name:
cola rename [group]@@[package]@[repository] [new group]

# To change the command name:
cola rename [name]@[group]@[package]@[repository] [new name]

For example, you can rename the hello command to bonjour using following rename command:

cola rename hello@@my-package@dropin bonjour

# now calling it from cola will trigger the original hello command
cola bonjour

rename –list

available in 1.10.0+

List all renamed commands.

The Command Launcher keeps track of all renamed commands. You can list all renamed commands using the following command:

cola rename --list

rename –delete

Delete a renamed command name, reverting back to the original name.

cola rename --delete [command full name]

Now you have to use its original name to call the command.