Skip to main content Skip to complementary content

Argument reference

The tables below list every available argument grouped by category.

Information note

The user interface applies different defaults for some settings. The wizard defaults to fixed canvas mode, reload enabled, and auto-binary enabled. The CLI defaults to dynamic grid mode, reload disabled, and auto-binary disabled. When moving from the wizard to the CLI, specify these flags explicitly to match the wizard behavior.

Input and output

Argument Description Default
--prjPath PATH Path to QV PRJ folder or ZIP file. Also accepts PRJ zip archives.
--qvw PATH Path to QVW or QVF file. Required in single-project mode.
--generatePrj Auto-generate PRJ folders from QVW files before conversion Off
--outputDir FOLDER Output root directory. QV2QS creates a subfolder named after the project automatically. Required.

Batch mode

Argument Description Default
--batchDir FOLDER Scan one or more folders recursively for QVW and PRJ pairs. Separate multiple folders with ;.
--batchWorkers N Maximum concurrent conversions (0 = auto: CPU cores minus 1) 0
--batchFlatOutput Write all output directly under --outputDir instead of preserving the source folder hierarchy Off

Qlik Cloud

Argument Description Default
--unbuildOnly Local only mode. Generate build output and conversion report on disk without connecting to Qlik Cloud. Intended for assessment, review, and offline use. The local output does not include media uploads, background resolution, alternate state creation, or sheet publishing. For details, see How conversion works. Off
--qsAppName NAME Name for the Qlik Sense app in Qlik Cloud QVW file name, PRJ folder name, or output folder name
--appId APP_ID Update an existing Qlik Cloud app instead of creating a new one
--appIdFile PATH Load app ID from a file
--reuseAppId Reuse the app ID from cloud/cloud_state.json if the file exists Off
--preserveTargetAppScript Keep the existing load script in the target app. The converted load script is not applied. Requires --appId or --reuseAppId. Can be combined with --reload to execute the existing script. Off
--preserveTargetAppVariables Keep the existing variables in the target app. The converted variables are not applied. Requires --appId or --reuseAppId. Off
--noBackup Skip the automatic pre-deploy backup when reusing an existing app. By default, QV2QS exports a no-data QVF to cloud/backups/ before modifying the app. Off
--reload Reload the app after building to execute the load script Off
--autoBinary Upload QVW/QVF to Qlik Cloud for binary load, then delete after reload. Requires --reload. In single-project mode, also requires --qvw. In batch mode, QVW files are discovered automatically. Mutually exclusive with --binaryAppId. Off
--binaryAppId APP_ID Use an existing app in Qlik Cloud for the binary load instead of uploading. Mutually exclusive with --autoBinary.
--noPublishSheets Do not publish sheets after building. By default, QV2QS publishes all converted sheets as base sheets so that every app user can see them. Use this flag to keep sheets as personal (unpublished) objects. When reusing an existing app (--reuseAppId or --appId), previously published sheets are restored automatically; this flag applies only to new sheets added in the current conversion. Off
--noData Build without data Off
--exportQvf Export the app as a QVF file, then delete the cloud app Off
--exportQvfNoData Export the QVF without data. Requires --exportQvf. Off
--mediaUploadWorkers N Parallel media upload threads 2
--buildConfig PATH Build config manifest passed to qlik app build. QV2QS auto-generates this file during conversion. Override only if providing a custom manifest. config.yml
--spaceId SPACE_ID Target Qlik Cloud space for app creation Personal space

Authentication

Argument Description Default
--qlikContext NAME qlik-cli context name for authentication
--qlikTenantUrl URL Tenant URL (https://<tenant>.<region>.qlikcloud.com). When combined with --qlikApiKey, authenticates directly without creating a qlik-cli context.
--qlikApiKey KEY API key for authentication. When combined with --qlikTenantUrl, authenticates directly without creating a qlik-cli context. The key is not written to disk.
--qlikCliPath PATH Path to qlik-cli executable Bundled
--qlikContextsFile PATH Override qlik-cli contexts file location
--qlikNoPrompt Fail immediately with exit code 1 if authentication is missing. No interactive prompts. Suitable for CI/CD pipelines. Off
--setupQlikAuth Configure Qlik Cloud authentication and exit. Not required when both --qlikTenantUrl and --qlikApiKey are provided.

Layout and styling

For a detailed explanation of fixed canvas and dynamic grid modes, see Conversion layout settings.

Argument Description Default
--fixedSheetCanvas Enable fixed-size pixel canvas sheets (QlikView-style positioning) Off
--fixedSheetCanvasScale FACTOR Scale canvas dimensions by this factor 1.4
--fixedSheetCanvasObjectScale FACTOR Scale object positions and sizes by this factor 1.4
--fixedSheetCanvasMinWidthPx PX Minimum canvas width in pixels 1200
--fixedSheetCanvasMinHeightPx PX Minimum canvas height in pixels 700
--perSheetCanvasSize Use per-sheet canvas dimensions instead of uniform sizing Off
--noAutoExtendDynamicSheet Disable auto-extending sheet height in dynamic mode Off
--layoutShrinkX STEPS Shrink layout container width by N grid steps (0–23) 0
--layoutShrinkY STEPS Shrink layout container height by N grid steps (0–11) 0
--cropCanvasWidth PX Crop canvas to exact width in pixels. Fixed canvas mode only. Must be specified together with --cropCanvasHeight. Mutually exclusive with --perSheetCanvasSize. 0
--cropCanvasHeight PX Crop canvas to exact height in pixels. Fixed canvas mode only. Must be specified together with --cropCanvasWidth. Mutually exclusive with --perSheetCanvasSize. 0
--maxCanvasWidth PX Maximum canvas width in pixels. 0 disables the limit. Fixed canvas mode only. 0
--maxCanvasHeight PX Maximum canvas height in pixels. 0 disables the limit. Fixed canvas mode only. 0
--appTheme THEME Qlik Sense app theme applied to the converted app. Accepts any built-in theme identifier (sense, horizon, breeze, card) or a custom theme name installed on the tenant. Sense Classic (sense) is the least intrusive theme and produces the highest 1:1 fidelity with QlikView. Non-classic themes may alter object borders, background colors, fonts, and padding. The theme sets the default only; users can switch themes at any time in the Qlik Sense client. sense
--disableSheetBackgrounds Skip sheet background image extraction Off
--noDocBgFallback Do not apply the document background to sheets without one Off
--sheetBackgroundColor COLOR Solid color fill for all sheets (#RRGGBB, #RRGGBB@0.5, or transparent)
--showSheetHeader Show the sheet header region Off
--skipHiddenSheets Omit sheets with constant-false show conditions Off

Conversion report

The console report and Excel report are both enabled by default in CLI mode and in the user interface.

Argument Description Default
--report Enable the console conversion report On
--noReport Disable the console conversion report
--reportXlsx [PATH] Export the report as an Excel file. Accepts a filename (e.g. MyReport) or a full path; .xlsx is added automatically. Relative names are placed in outputDir/reports/. Omit the path to auto-name. Auto
--noReportXlsx Disable Excel export
--reportIncludeBuiltIns Include Current Selections and Search objects in the report Off

Console and logging

Argument Description Default
--console {pretty,plain,silent,ui} Console output mode pretty
--dark Dark console theme On
--light Light console theme Off
--surface Enable background fill for the console On (in pretty mode)
--noSurface Disable background fill
--plain Shortcut for --console plain
--silent Shortcut for --console silent
--logLevel LEVEL Log verbosity: DEBUG, INFO, WARNING, ERROR, CRITICAL INFO
--logDir FOLDER Override the log output folder %LOCALAPPDATA%\QV2QS\logs\ (single-project) or <outputDir>/logs/ (batch)
--cleanLogs Delete log files older than 30 days before the run Off

QV2QS supports four console output modes.

  • Pretty — Rich-formatted output with colors, animated spinners, progress bars, and themed panels. Pretty mode is the default for interactive terminal use. Requires a color-capable terminal (Windows 10+, PowerShell 5+, or Unix-like shells).
  • Plain — Timestamped text output with no ANSI escape codes. Every line is prefixed with an elapsed-time stamp and a phase tag in the format [MM:SS] [phase] message. Headers and tables use ASCII characters. Suitable for CI/CD pipelines, log files, and terminals that do not support ANSI formatting.
  • Silent — Suppresses all standard output. Only errors are displayed. Suitable for automated batch processing and scripted workflows where no console output is needed.
  • UI — Line-oriented output without timestamps or ANSI codes. The user interface sets this mode automatically when launching a conversion subprocess. The format is optimized for the embedded log viewer. Running --console ui from a terminal produces readable but unformatted output; use --plain or --console pretty instead for direct terminal use.

The --dark and --light flags select a color theme. The dark theme (default) uses a deep navy Qlik-inspired palette. The light theme uses a light gray palette. The --surface flag enables a subtle background fill behind each output line. Surface fill is enabled by default in pretty mode. Use --noSurface to disable the background fill.

In single-project mode, log files are written to %LOCALAPPDATA%\QV2QS\logs\ by default. In batch mode, log files are written to the logs/ subfolder in the output directory. Override the location with --logDir. Set --logLevel DEBUG to capture detailed diagnostic output for troubleshooting conversion issues. Use --cleanLogs to delete log files older than 30 days before each run. For a full description of log file locations, rotation, and format, see Logging and diagnostics.

Load script

Argument Description Default
--scriptReplacements PATH JSON file with script replacement rules. When provided, only the rules in the file execute. Built-in defaults do not auto-load. See format below.
--noScriptReplacements Disable all script replacements. No rules execute, regardless of whether a file is provided. Off

By default, QV2QS applies eight built-in rules that normalize Windows backslash paths to forward slashes for Qlik Cloud compatibility. The following table lists each built-in rule.

ID Description Targets
1 Normalize backslashes in lib:// paths lib://DataFiles\subfolder\file.qvd
2 Normalize backslashes in STORE...INTO paths STORE table INTO 'C:\data\file.qvd'
3 Normalize backslashes in FROM paths (quoted) FROM 'C:\data\file.qvd'
4 Normalize backslashes in LET statement paths LET vPath = 'C:\data\files';
5 Normalize backslashes in SET statement paths SET vPath = 'C:\data\files';
6 Normalize backslashes in BINARY statement paths BINARY 'C:\apps\source.qvw'
7 Normalize backslashes in FROM paths (unquoted) FROM C:\data\file.qvd
8 Normalize backslashes in $(Variable=path) expansion $(Must_Includes=C:\lib\file.qvs)

Each rule uses a two-stage matching process. The pattern field is a regex that selects a region of the load script. The search field is then applied only within each matched region. This approach prevents unintended replacements outside the targeted context.

The --scriptReplacements argument accepts a JSON file that becomes the single source of truth for all replacement rules. When a file is provided, built-in defaults do not auto-load. To include built-in rules alongside custom rules, export the full rule set from the wizard and edit the exported file. Rules execute in execution_order order.

Three CLI behaviors are available:

  • No flag — the eight built-in rules execute.
  • --scriptReplacements <file> — only rules in the file execute. Built-in defaults do not auto-load.
  • --noScriptReplacements — no rules execute.
Tip note

To create a custom rules file, open the wizard, click Export in the Script replacements section, and use the exported JSON as a starting point. The exported file contains all eight built-in rules in the correct format. Add, remove, or modify rules as needed, then pass the file with --scriptReplacements.

The --scriptReplacements file is a JSON array of rule objects:

[
  {
    "description": "Replace server path with lib connection",
    "pattern": "FROM\\s+'[^']*'",
    "search": "\\\\\\\\server\\\\share\\\\",
    "replace": "lib://DataFiles/",
    "is_regex": true,
    "case_sensitive": false,
    "enabled": true,
    "execution_order": 1
  }
]

Each rule has the following fields:

Field Description Required
description Human-readable label for the rule Yes
pattern Regex that selects regions of the script to examine Yes
search Text or regex to find within each matched region Yes
replace Replacement text No (default: empty string, which deletes matched text)
is_regex Whether search is a regex (true) or literal string (false) No (default: true)
case_sensitive Whether matching is case-sensitive No (default: false)
enabled Whether the rule is active No (default: true)
id Numeric identifier for UI tracking No
execution_order Numeric value that controls execution order. Lower values execute first. No (default: 0)
Information note

The file also accepts camelCase field names (isRegex, caseSensitive, executionOrder) for compatibility with files exported from the wizard.

Other

Argument Description Default
--listboxBackgroundExpr EXPR Listbox background color. dynamic preserves QV colors. Also accepts #RRGGBB, #AARRGGBB, rgb(r,g,b), or argb(a,r,g,b). dynamic
--disableDateStateStickySort Disable the date field sort guard. See below. Off
--fixSingleQuotedSearch / --noFixSingleQuotedSearch Convert single-quoted wildcards and comparisons to double quotes in set analysis. See below. On
--fixUnquotedSetValues / --noFixUnquotedSetValues Experimental. Wrap unquoted bare string values in single quotes in set analysis. See below. Off
--ui Launch the user interface instead of running a conversion Off
--port PORT User interface port Auto
--noBrowser Do not open the browser automatically when launching the UI Off
--version Show version and exit
--accept-eula Accept the End User License Agreement without an interactive prompt. Intended for CI/CD pipelines and automated workflows. Off

Date field sort guard

By default, Qlik Sense sorts selected values to the top of a listbox. For date-like fields such as Quarter, Month, or Year, this reordering breaks the expected chronological sequence. QV2QS applies a heuristic to detect date-like field names and suppress state-based sorting on those fields, keeping values in their natural order regardless of selection state.

The heuristic tokenizes each field name by splitting on non-alphanumeric characters and camelCase boundaries (for example, OrderDate becomes order and date). All tokens are lowercased. A field matches if any token equals one of the following: date, dates, month, months, year, years, quarter, quarters, qtr, qtrs, week, weeks, day, days, fiscal, fy, period, calendar. A field also matches if any token ends with date, month, or year (for example, OrderDate, FiscalMonth). The tokens update, candidate, and validate are excluded to avoid false positives. Matching is case-insensitive and uses English tokens only. Non-English field names (for example, Monat or Fecha) are not detected.

Fields that match the heuristic have state-based sorting removed and automatic sorting disabled.

Use --disableDateStateStickySort to turn off this heuristic. When disabled, all listbox fields use default Qlik Sense sorting behavior, including state-based reordering.

Set analysis quoting fixes

QlikView and Qlik Sense interpret quoting in set analysis modifiers differently. QV2QS applies two independent fixes during conversion. The single-quoted search fix is enabled by default. The unquoted set values fix is experimental and disabled by default.

Fix single-quoted search values (--fixSingleQuotedSearch)

Single-quoted values containing search syntax are converted to double quotes. Detected search patterns include wildcards (*, ?, ^), comparison operators (>, >=, <, <=), fuzzy search (~), expression search (=), search modifiers (+, -), and compound search ((…|…), (…&…)):

  • {<Year={'2*'}>} becomes {<Year={"2*"}>}
  • {<Amount={'>100'}>} becomes {<Amount={">100"}>}
  • {<Customer={'~company'}>} becomes {<Customer={"~company"}>}

Single-quoted plain text literals (for example, 'USA') and single-quoted values on numeric fields are not affected. Use --noFixSingleQuotedSearch to disable this fix.

Fix unquoted set values (--fixUnquotedSetValues) — experimental

Unquoted bare string values are wrapped in single quotes:

  • {<Country={USA}>} becomes {<Country={'USA'}>}

Numeric values (2024), dollar-sign variables ($(vYear)), and double-quoted strings are left unchanged. This fix is disabled by default. Pass --fixUnquotedSetValues to enable it. Use --noFixUnquotedSetValues to explicitly disable it.

Both fixes apply to dimension and measure expressions only. Unsupported function findings are not modified. When a fix is disabled, the flagged patterns remain for manual review in the Expression_Findings worksheet.

Learn more

Visit the discussion forum at community.qlik.com

Did this page help you?

If you find any issues with this page or its content – a typo, a missing step, or a technical error – please let us know!