Skip to main content

HST Command Reference

Run HST through the application lockfile:

npx hst version
npx hst --help
npx hst <command> --help

This page reflects the 3.10.2-next command surface used during this documentation update. The installed command help remains authoritative.

Global Options

OptionPurpose
--helpPrint command-specific help
--versionPrint version information
--verboseEnable verbose HST logging

Environment and Project Configuration

CommandPurpose
versionPrint the HST version
env checkInspect Node, project, compiler, platform, and tool prerequisites
env fixApply supported environment repairs
env prepare-gitignoreAdd supported generated/secret paths to .gitignore
config showPrint current hosanna.json configuration
config setUpdate a curated configuration value
config wizardConfigure the project interactively
secrets:initCreate .secrets from .secrets.example when absent
secrets:listList secret keys without values
secrets:checkCompare .secrets with its template
secrets:execRun a command with .secrets loaded into its environment

Examples:

npx hst env check
npx hst config show
npx hst secrets:check
npx hst secrets:exec -- npm run build

Target Discovery

CommandPurpose
target:list [platform]Discover browser presets, simulators, emulators, and devices
device:listMerge discovered devices with .hosanna-tools/devices.json preferences
npx hst target:list
npx hst target:list apple-tv
npx hst device:list

Run

hst run [platform] [env] [target] [deviceSelector]

HST run-plan resolution from configuration layers and CLI selectors through config generation, build, and target executionHST run-plan resolution from configuration layers and CLI selectors through config generation, build, and target execution

Supported platforms are web, roku, ios, apple-tv, android, and android-tv.

Important options:

OptionPurpose
--device <selector>Select an IP, serial, UDID, AVD, simulator, device name, or browser preset
--app <key>Select an app/flavour from run configuration
--profile <name>Add a build-config developer profile
--app-config <selector>Select runtime AppConfig
--hot-reloadUse a supported native JS development server
--bundledUse bundled native JavaScript/assets
--reuseReuse a matching HST session
--replaceReplace a conflicting session or occupied device resource
--lastReuse the last interactive destination
--no-openDo not open the browser
--no-buildSkip the platform build for device runs
--no-logsDo not stream device logs
--dry-runPrint the resolved run plan without executing it
--explainInclude configuration-source details in text plan output
--format text|jsonSelect plan/result format
--non-interactiveFail instead of prompting
--hsconfig <path>Select an explicit native/Roku hsconfig
--hsc-project <path>Select an explicit Roku compiler project

Port overrides are --vitePort, --managementPort, --webAppPort, --deviceAppPort, and --extensionPort.

Examples:

npx hst run web dev browser
npx hst run ios dev sim --device "iPhone 17 Pro"
npx hst run android-tv dev sim --device "Television_1080p" --hot-reload
npx hst run roku dev device --device "living room"
npx hst run roku prod device --app criterion --dry-run --explain

Build

hst build [platform] [env] [target] [deviceSelector]

build shares platform, environment, target, device, app, profile, AppConfig, native-mode, config-selection, dry-run, and output-format options with run. It does not launch, deploy, open a browser, or stream logs.

npx hst build web dev emulator
npx hst build roku prod device --hsc-project platforms/hsconfig-roku.prod.json
npx hst build ios dev sim --device "iPhone 17 Pro"

Build Config

CommandPurpose
build-config:resolveResolve tracked, secret, platform, environment, and profile overlays
build-config:restore-secretsRestore ignored overlays from BUILD_CONFIG_SECRETS_*_BASE64 variables

build-config:resolve options:

OptionPurpose
--env <name>Environment; falls back to HS_ENV or HOSANNA_BUILD_ENV
--platform <name>Platform; falls back to HS_PLATFORM or HOSANNA_BUILD_PLATFORM
--profile <name>Optional developer profile; falls back to HS_BUILD_PROFILE
--allow-profile-in-prodExplicitly permit a developer profile in production
--out <path>Write resolved JSON
--manifest-out <path>Write a sanitized source manifest
--format jsonPrint JSON to stdout
--explainPrint sources without secret values

AppConfig

CommandPurpose
app-config:resolveResolve an AppConfig file and root-level $extendFile inheritance

Options are --input, --cwd, --expression, --platform, and --out.

npx hst app-config:resolve --expression tv --platform roku
npx hst app-config:resolve --input app.config.phone.json --out /tmp/app-config.json

The current CLI does not provide app-config:compile or app-config:clean.

Native Projects

CommandPurpose
native:init [platform]Initialize app-owned native thin projects and configuration
native:prepare [platform]Run lightweight native prebuild validation
native:doctor [platform]Diagnose native prerequisites and print fixes

Supported native platform selectors are ios, apple-tv, android, and android-tv.

Code and Asset Generation

CommandPurpose
generate:allGenerate structs and command-handler maps
generate:structs [files...]Generate structs for selected files or the project
generate:cleanRemove generated output managed by HST
generate:9patchGenerate 9-patch assets
game:prep-level <input>Normalize Tiled JSON to the canonical Hs2d runtime subset

Compiler, SDK, and Framework

CommandPurpose
compiler:install [version]Install bin/hsc; default version comes from hosanna.json
compiler:statusReport configured and installed compiler state
compiler:listList versions known from configuration, Keygen, installation, and cache
sdk:installInstall the configured SDK distribution
framework:updateUpdate a Keygen-distributed framework checkout to its pinned version
framework:syncMaintainer workflow for managed client forks
framework:doctorValidate managed client forks and pins
template:createCreate a template application with the SDK

Licensing

CommandPurpose
license:activate <key>Validate and store a framework license key
license:statusValidate the stored key and print entitlements

Do not pass real keys in logs or committed scripts. Prefer environment or secret-manager injection.

Roku

CommandPurpose
roku:runDeploy an app zip or folder
roku:command <command>Send an app command through ECP
roku:packagePackage and sign a channel with roku-deploy
roku:map-stackMap BrightScript stack/compile locations through .brs.map files
ci:extract-pkg-key <pkg>Extract a Roku signing key as base64 for CI storage
complib:packagePackage built standalone component-library output
complib:serveServe component-library archives for an on-device development loop

Use hst run roku ... for normal development. Use the lower-level commands for explicit pipeline steps.

Debugger and MCP

CommandPurpose
debugger:startStart the command-debugger WebSocket proxy
mcp:startStart the Hosanna MCP server
mcp:stopStop the server represented by the MCP lock/PID file
dev:startRun configured local Vite, generator-watch, and optional debugger processes

Capture and RASP

CommandPurpose
capture [platform]Record an Apple simulator, capture-card input, or macOS screen/window
rasp:capture <name>Record input and export a RASP script
rasp:export <captureId> <name>Export a saved input capture as RASP YAML
rasp:validate <file>Validate RASP grammar without a device
rasp:run <file>Execute a RASP script against a connected app

Hosanna UI regression tests run through application-owned Vitest scripts. There is no hst test:ui command and no generic debugger test command.

Talk to us