Skip to main content
If your card requires repository downloading, virtual environment creation, or manual setup, define a custom wizard flow. The host runs this flow inside the central installation modal.

Stepper lifecycle

To attach a wizard to a card, register the manager property in your renderer card definition:

InstallationStepper API

The stepper parameter exposes UI actions to step through setup stages, request user choices, run commands, and update progress bars.

Progress and wizard navigation

  • initialSteps(stepTitles: string[]): void - Configures the titles of your installation steps on the timeline.
  • nextStep(): Promise<void> - Advances the wizard to the next stage in the timeline.
  • progressBar(isIndeterminate: boolean, title?: string, percentage?: number, description?: { label: string; value: string }[]): void - Customizes the current progress bar message.
  • showFinalStep(resultType: 'success' | 'error', title: string, description?: string): void - Ends the installer flow with a final status window.

User interaction

  • starterStep(options?: StarterStepOptions): Promise<InstallationMethod> - Displays the default setup page. Resolves to the user’s choice: { chosen: 'install' | 'locate', targetDirectory: string }.
  • collectUserInput(inputFields: UserInputField[], title?: string): Promise<UserInputResult[]> - Renders a form requesting text inputs, dropdown selections, or checkmarks.

Filesystem and terminal execution

  • cloneRepository(url: string): Promise<string> - Clones a Git repository. Returns the destination folder path.
  • runTerminalScript(dir: string, script: string): Promise<void> - Executes a script file (e.g. .bat, .sh) inside a separate terminal overlay. Resolves when the script finishes.
  • executeTerminalCommands(commands: string | string[], dir?: string): Promise<void> - Runs inline CLI commands inside a terminal overlay. Resolves when commands finish.
  • downloadFileFromUrl(url: string): Promise<string> - Downloads a file to the user’s downloads folder. Returns the local path.
  • setInstalled(dir?: string): void - Saves the target installation path and registers the card as installed.
  • setUpdated(): void - Flags the card update as complete.

Step-by-step example

Below is a complete installation flow that configures stages, downloads a repository, prompts for options, runs an environment compiler, and completes the setup:
Last modified on June 21, 2026