Unique CLI, wrapping the most common actions needed by Uniques clients into a single command line tool.
Note
The Unique CLI is incubating. Until version 1.0.0 also minor versions can contain breaking changes 💥
See the contributing guide for more information.
$ npm install -g @unique-ag/cli
$ qcli COMMAND
running command...
$ qcli (--version)
@unique-ag/cli/0.6.0 darwin-arm64 node-v25.1.0
$ qcli --help [COMMAND]
USAGE
$ qcli COMMAND
...qcli az acr importqcli help [COMMAND]qcli mirror chartsqcli mirror imagesqcli pluginsqcli plugins:inspect PLUGIN...qcli plugins:install PLUGIN...qcli plugins:link PLUGINqcli plugins:uninstall PLUGIN...qcli plugins updateqcli util probe DOMAIN
Instructs the Azure CLI to import multiple images to an Azure Container Registry.
USAGE
$ qcli az acr import -f <value> -w -p <value> -u <value> [-b <value>]
FLAGS
-b, --batch-size=<value> [default: 4] Number of images to transfer in a single batch in parallel. The higher the
number, the more resources will be consumed.
-f, --image-list-file=<value> (required) [default: examples/az-acr-import.schema.yaml] Path to file that contains a
list of images to import.
-p, --source-password=<value> (required) ⚠ Do not pass plaintext values but use an environment variable instead.
Password for the source registry.
-u, --source-username=<value> (required) Username of the source registry.
-w, --no-wait (required) By default all imports are awaited. If you want to trigger the import in the
background, set this flag.
DESCRIPTION
Instructs the Azure CLI to import multiple images to an Azure Container Registry.
If you do not use Azure Container Registry, you might want to use the included mirror:images command which supports
any target registry.
The "image-list-file" flag specifies which images to import. You can find an example config file in
https://github.com/Unique-AG/cli/tree/main/examples.
You must have the azure-cli installed and the active session must be preemptively logged in to the matching azure
subscription.
⚠ The Azure CLI command needs the password supplied as a flag. The CLI itself does never print the flag but you should
still take care of the logs and the command history.
⚠ Do set an environment variable for the password to avoid it being passed as text, see the example.
⚠ Most systems pass secrets as environment variables, so normally no explicit password is needed in the command.
ALIASES
$ qcli a a i
EXAMPLES
export SOURCE_PASSWORD=<SENSITIVE_VALUE>
$ qcli az acr import
See code: src/commands/az/acr/import.ts
Display help for qcli.
USAGE
$ qcli help [COMMAND...] [-n]
ARGUMENTS
COMMAND... Command to show help for.
FLAGS
-n, --nested-commands Include all nested commands in the output.
DESCRIPTION
Display help for qcli.
See code: @oclif/plugin-help
Pulls charts from a source and pushes them to a new registry.
USAGE
$ qcli mirror charts -f <value> [-k] [-p <value>] [-s <value>] [-t <value>]
FLAGS
-f, --chart-list-file=<value> (required) [default: examples/mirror-charts.schema.yaml] Path to file that contains a
list of charts to mirror.
-k, --keep If true, keeps the downloaded tarballs.
-p, --push-plugin=<value> [default: push] Which plugin will be used to "push" charts to the target.
Defaults to native helm push but could be set to e.g. "cm-push" (for ChartMuseum).
Note: The plugin must be pre-installed using "helm plugin install".
-s, --source-repository=<value> Source repository from where the charts will be pulled, this overrides the value
specified in the chart-list-file.
-t, --target-repository=<value> Target repository where the charts will go, this overrides the value specified in the
chart-list-file.
DESCRIPTION
Pulls charts from a source and pushes them to a new registry.
The "chart-list-file" flag specifies which charts to mirror. You can find an example config file in
https://github.com/Unique-AG/cli/tree/main/examples.
For security reasons, the active session must be preemptively logged in to both OCI registries.
ALIASES
$ qcli m c
EXAMPLES
export SOURCE_OCI_REGISTRY: <VALUE>
export SOURCE_OCI_USERNAME: <SENSITIVE_VALUE>
export SOURCE_OCI_PASSWORD: <SENSITIVE_VALUE>
export TARGET_OCI_REGISTRY: <VALUE>
export TARGET_OCI_USERNAME: <SENSITIVE_VALUE>
export TARGET_OCI_PASSWORD: <SENSITIVE_VALUE>
docker login $SOURCE_OCI_REGISTRY -u $SOURCE_OCI_USERNAME -p $SOURCE_OCI_PASSWORD
docker login $TARGET_OCI_REGISTRY -u $TARGET_OCI_USERNAME -p $TARGET_OCI_PASSWORD
$ qcli mirror charts
export SOURCE_OCI_REGISTRY: <VALUE>
export SOURCE_OCI_USERNAME: <SENSITIVE_VALUE>
export SOURCE_OCI_PASSWORD: <SENSITIVE_VALUE>
docker login $SOURCE_OCI_REGISTRY -u $SOURCE_OCI_USERNAME -p $SOURCE_OCI_PASSWORD
az acr login --name <REGISTRY_NAME>
$ qcli mirror charts
See code: src/commands/mirror/charts.ts
Pulls images from a source, retags them, and pushes them to a new registry.
USAGE
$ qcli mirror images -f <value> [-b <value>] [-s <value>] [-t <value>]
FLAGS
-b, --batch-size=<value> [default: 2] Number of images to transfer in a single batch in parallel. The higher the
number, the more resources will be consumed.
-f, --image-list-file=<value> (required) [default: examples/mirror-images.schema.yaml] Path to file that contains a
list of images to mirror.
-s, --source-registry=<value> Source registry from where the images will be pulled, this overrides the value
specified in the image-list-file.
-t, --target-registry=<value> Target registry where the images will go, this overrides the value specified in the
image-list-file.
DESCRIPTION
Pulls images from a source, retags them, and pushes them to a new registry.
If you use an Azure Container Registry as target, you might want to use the included az acr import sub-command as it
offers significant performance improvements.
The "image-list-file" flag specifies which images to mirror. You can find an example config file in
https://github.com/Unique-AG/cli/tree/main/examples.
This command can also mirror images from public registries like Docker Hub or Quay.
For security reasons, the active session must be preemptively logged in to both OCI registries.
ALIASES
$ qcli m i
EXAMPLES
export SOURCE_OCI_REGISTRY: <VALUE>
export SOURCE_OCI_USERNAME: <SENSITIVE_VALUE>
export SOURCE_OCI_PASSWORD: <SENSITIVE_VALUE>
export TARGET_OCI_REGISTRY: <VALUE>
export TARGET_OCI_USERNAME: <SENSITIVE_VALUE>
export TARGET_OCI_PASSWORD: <SENSITIVE_VALUE>
docker login $SOURCE_OCI_REGISTRY -u $SOURCE_OCI_USERNAME -p $SOURCE_OCI_PASSWORD
docker login $TARGET_OCI_REGISTRY -u $TARGET_OCI_USERNAME -p $TARGET_OCI_PASSWORD
$ qcli mirror images
export SOURCE_OCI_REGISTRY: <VALUE>
export SOURCE_OCI_USERNAME: <SENSITIVE_VALUE>
export SOURCE_OCI_PASSWORD: <SENSITIVE_VALUE>
docker login $SOURCE_OCI_REGISTRY -u $SOURCE_OCI_USERNAME -p $SOURCE_OCI_PASSWORD
az acr login --name <REGISTRY_NAME>
$ qcli mirror images
See code: src/commands/mirror/images.ts
List installed plugins.
USAGE
$ qcli plugins [--json] [--core]
FLAGS
--core Show core plugins.
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
List installed plugins.
EXAMPLES
$ qcli plugins
See code: @oclif/plugin-plugins
Displays installation properties of a plugin.
USAGE
$ qcli plugins inspect PLUGIN...
ARGUMENTS
PLUGIN... [default: .] Plugin to inspect.
FLAGS
-h, --help Show CLI help.
-v, --verbose
GLOBAL FLAGS
--json Format output as json.
DESCRIPTION
Displays installation properties of a plugin.
EXAMPLES
$ qcli plugins:inspect myplugin
See code: @oclif/plugin-plugins
Installs a plugin into the CLI.
USAGE
$ qcli plugins install PLUGIN...
ARGUMENTS
PLUGIN... Plugin to install.
FLAGS
-f, --force Run yarn install with force flag.
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Installs a plugin into the CLI.
Can be installed from npm or a git url.
Installation of a user-installed plugin will override a core plugin.
e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command
will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in
the CLI without the need to patch and update the whole CLI.
ALIASES
$ qcli plugins add
EXAMPLES
$ qcli plugins:install myplugin
$ qcli plugins:install https://github.com/someuser/someplugin
$ qcli plugins:install someuser/someplugin
See code: @oclif/plugin-plugins
Links a plugin into the CLI for development.
USAGE
$ qcli plugins link PLUGIN
ARGUMENTS
PATH [default: .] path to plugin
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Links a plugin into the CLI for development.
Installation of a linked plugin will override a user-installed or core plugin.
e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello'
command will override the user-installed or core plugin implementation. This is useful for development work.
EXAMPLES
$ qcli plugins:link myplugin
See code: @oclif/plugin-plugins
Removes a plugin from the CLI.
USAGE
$ qcli plugins uninstall PLUGIN...
ARGUMENTS
PLUGIN plugin to uninstall
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Removes a plugin from the CLI.
ALIASES
$ qcli plugins unlink
$ qcli plugins remove
See code: @oclif/plugin-plugins
Update installed plugins.
USAGE
$ qcli plugins update [-h] [-v]
FLAGS
-h, --help Show CLI help.
-v, --verbose
DESCRIPTION
Update installed plugins.
See code: @oclif/plugin-plugins
Checks health probes for a Unique deployment.
USAGE
$ qcli util probe DOMAIN [-a <value>] [-c chat|record...] [-f <value>] [-t <value>]
ARGUMENTS
DOMAIN The domain to check health probes for.
Examples:
- test.unique.app
- uat.unique.app
- customer.unique.app
FLAGS
-a, --api-host=<value> [default: api] The API host prefix to use for API endpoints (e.g. "api" or "gateway").
-c, --component=<option>... Component(s) to check health probes for. Can be specified multiple times. If not
specified, all components are checked.
<options: chat|record>
-f, --config=<value> [default: examples/util-probe.schema.yaml] Path to the YAML config file containing health
check definitions.
-t, --timeout=<value> [default: 10000] Timeout in milliseconds for each HTTP request.
DESCRIPTION
Checks health probes for a Unique deployment.
Verifies that all critical endpoints are responding with the expected HTTP status codes.
This command performs HTTP GET requests to all known health endpoints and reports their status.
If any endpoint fails to respond with the expected status code, the command exits with code 1.
ALIASES
$ qcli u p
EXAMPLES
Check health probes for the default domain (uat1.unique.app)
$ qcli util probe
Check health probes for a production domain
$ qcli util probe prod.unique.app
Check health probes with a custom API host
$ qcli util probe customer.unique.app --api-host gateway
Check only chat-related health probes
$ qcli util probe prod.unique.app -c chat
Check both chat and record health probes
$ qcli util probe prod.unique.app -c chat -c record
Use a custom config file for health probes
$ qcli util probe prod.unique.app -f custom-probes.yaml
See code: src/commands/util/probe.ts
For some commands, you find example files in examples folder. Most commands with example files also have a default example file that is used if no file is specified.