Commands Overview
Butler Sheet Icons provides commands for Qlik Sense Cloud, Qlik Sense Enterprise on Windows (QSEoW), and browser management utilities.
Command Structure
butler-sheet-icons <platform> <command> [options]<platform>:qscloud,qseow,browser, ordoctor<command>: Specific action to perform[options]: Command-specific parameters
Quick Reference
| Platform | Command | Purpose | Alias |
|---|---|---|---|
qscloud | create-sheet-thumbnails | Create thumbnails for QS Cloud apps | create-sheet-icons |
qscloud | remove-sheet-icons | Remove thumbnails from QS Cloud apps | remove-sheet-thumbnails |
qscloud | list-collections | List available collections | — |
qseow | create-sheet-thumbnails | Create thumbnails for QSEoW apps | create-sheet-icons |
browser | check | Check this machine can take screenshots | — |
browser | install | Install browser for BSI | — |
browser | list-installed | Show installed browsers | — |
browser | list-available | Show available browsers for download | — |
browser | uninstall | Remove specific browser | — |
browser | uninstall-all | Remove all browsers | — |
doctor | check | Diagnose what would stop BSI working | — |
No remove-sheet-icons on QSEoW
Removing sheet icons is available for Qlik Sense Cloud only. There is no qseow remove-sheet-icons command — create-sheet-thumbnails is the only qseow command.
Global Options
These options are available for most commands:
| Option | Description | Default |
|---|---|---|
--loglevel | Logging verbosity | info |
--help | Show command help | - |
--version | Show version information | - |
Log Levels
error- Only errorswarn- Warnings and errorsinfo- General information (default)verbose- Detailed operation infodebug- Debug informationsilly- Everything including websocket traffic
Exit codes
Requires BSI 4.0.0 or later
Earlier versions always exited with 0, whatever happened during the run.
Every command reports its outcome in the process exit code:
| Exit code | Meaning |
|---|---|
0 | The command completed, and everything it was asked to do succeeded. |
1 | The command failed, or finished with one or more apps it could not process. |
130 | The run was stopped with Ctrl-C (SIGINT) — see Stopping a run. |
141 | The command's output pipe closed before it finished writing — see below. |
143 | The run was stopped with SIGTERM (docker stop, kubectl delete pod) — see Stopping a run. |
129 | The terminal was closed or the connection dropped (SIGHUP) — see Stopping a run. |
Exit code 141: the output pipe closed
Requires BSI 5.0.0 or later
In earlier versions this situation produced a crash report and exit code 1.
A run whose output goes into a pipe that stops reading — | head, a pager you quit, grep -m1 — ends with 141. That is the usual convention on Linux and macOS for a program stopped by a closed pipe, 128 + 13, where 13 is the SIGPIPE signal number. ls | head and most other tools report the same, and Butler Sheet Icons uses 141 on Windows too, for consistency.
It is deliberately not 0. Piping to head usually cuts a run short rather than letting it finish, and the exit code is meant to tell a scheduler whether the run did its job. Reporting success for work that was abandoned would be misleading.
In practice this affects almost nobody:
- Running a command by hand — you will never see it. The shell reports the exit code of the last command in the pipeline, which is
head, not Butler Sheet Icons. - In a script using
set -o pipefail— the pipeline is reported as failed, exactly as it would be forls | headin the same script. If you want the script to carry on, check for 141 specifically, or do not usepipefailon that line. - In a scheduled task — no change. A scheduled run writes to a log file or the console, not into a pipe that closes early.
No crash dump is written for this, and nothing is printed about it — see Crash Dump Files.
What counts as a failure
- An app that could not be processed. Other apps in the same run are still attempted — one bad app does not stop the rest — but the run reports failure at the end.
- A connection that could not be established to the Qlik Sense server or Qlik Sense Cloud tenant.
- A selection that matched no apps at all, for example a
--collectionidthat exists but contains no apps, or a--qliksensetagthat no app carries. Work was requested and none happened, so this is a failure rather than a silent no-op. - A sheet that could not be updated, or whose icon could not be removed. The remaining sheets in that app are still attempted; the app is reported as failed at the end.
- A Qlik Sense Cloud connection test that returns a response containing no user.
If you run Butler Sheet Icons from a scheduled task, CI pipeline or shell script, read Exit codes and job status before upgrading — a job that always reported success may start reporting failure.
For the log messages that accompany a non-zero exit code, see Run failures and exit codes in Troubleshooting.
Detailed command references
Use these pages for complete, per-platform command details:
- QS Cloud: see the detailed reference at /reference/qscloud
- QSEoW: see the detailed reference at /reference/qseow
- Browser: see the detailed reference at /reference/browser
- Doctor: see the detailed reference at /reference/doctor
For browser cache locations, troubleshooting, and full browser command docs, see the dedicated Browser Commands page.
For environment variables, see Environment variables. For security and platform signing details, see Security.
Getting Help
For any command, use --help to see detailed options:
butler-sheet-icons --help
butler-sheet-icons qscloud --help
butler-sheet-icons qscloud create-sheet-icons --help
butler-sheet-icons qseow create-sheet-thumbnails --help
butler-sheet-icons browser --helpWhen you report a problem, include the version. butler-sheet-icons --version prints it, and a run names it in its header, except that at --log-level warn or error the create-sheet-thumbnails and remove-sheet-icons commands print no header and so show no version; see Log levels. From BSI 5.4.0, a run refused before it starts, because of a missing or misspelled option or a value BSI does not accept, prints it on the line above the error; see When a run stops before the header.