Command Reference
Commands are defined as mise tasks, and the tools mise manages (Node / pnpm / Rust / Java / Perl, etc.) are automatically put on PATH.
The dev / build / tauri tasks run through Infisical’s infisical run. Infisical manages only release-signing secrets (TAURI_SIGNING_PRIVATE_KEY, Android keystore, etc.), which are not required for everyday development. If you are not logged in, use the alternative commands.
Find by Purpose
Section titled “Find by Purpose”Sections are grouped by purpose. Windows and Android variants sit side by side under each heading.
| Purpose | Windows | Android | Details |
|---|---|---|---|
| Start development | mise run dev |
mise tauri android dev |
Develop |
| Release build | mise run build |
mise tauri android build --apk -t aarch64 |
Build |
| Lint / test | mise run lint / test / android-test (shared) |
— | Verify |
| Misc (licenses / docs / preview / generic tauri) | mise run generate-licenses / docs-dev / docs-build / pnpm preview (shared) |
mise tauri info etc. |
Misc |
Argument passing, no-login alternatives, and CI mapping are grouped under Notes.
Develop
Section titled “Develop”Windows — Desktop development (mise run dev)
Section titled “Windows — Desktop development (mise run dev)”Underlying command: infisical run -- pnpm tauri dev
mise run dev # Normal start (hot-reload enabled)mise run dev -- --release # Run in release modemise run dev -- --no-watch # Disable file watchingKey tauri dev arguments:
| Argument | Description |
|---|---|
--release |
Run in release mode |
-t, --target <triple> |
Target triple |
-f, --features <feat> |
Enable cargo features |
--no-watch |
Disable file watching |
--no-dev-server |
Disable the embedded dev server |
--port <port> |
Port of the static-file dev server (default 1430) |
-c, --config <path> |
Merge an extra config file |
-- [runnerArgs] -- [appArgs] |
Separate with -- to pass args to the app |
Android — Development on a device / emulator (tauri android dev)
Section titled “Android — Development on a device / emulator (tauri android dev)”mise tauri android dev # Run on a connected device/emulatormise tauri android dev -- -o # Open Android Studiomise tauri android dev -- --host # Expose on public address for real devicesmise tauri android dev <device-id> # Specify a devicemise tauri android dev -- --release # Release modeWindows — Desktop release build (mise run build)
Section titled “Windows — Desktop release build (mise run build)”Underlying command: infisical run -- pnpm generate-licenses && infisical run -- pnpm tauri build
mise run build # Produce default bundles (MSI + NSIS on Windows)mise run build -- --bundles msi # MSI only (same as releases)mise run build -- --no-bundle # No bundling (binary only)mise run build -- -d # Debug buildmise run build -- -t aarch64-pc-windows-msvc # Cross-compileKey tauri build arguments:
| Argument | Description |
|---|---|
-b, --bundles <msi|nsis> |
Bundle types to produce |
--no-bundle |
Skip bundle generation |
-d, --debug |
Build with debug flag |
-t, --target <triple> |
Target triple |
-f, --features <feat> |
Enable cargo features |
--no-sign |
Skip code signing |
-c, --config <path> |
Merge an extra config file |
--ci |
Run without prompts |
Android — Building APK / AAB (tauri android build)
Section titled “Android — Building APK / AAB (tauri android build)”mise tauri android build --apk # Produce APK (all ABIs)mise tauri android build --apk -t aarch64 # aarch64 only (used for releases)mise tauri android build --aab # Produce AABmise tauri android build --split-per-abi # Split per ABImise tauri android build -- -o # Open Android Studio afterwards| Argument | Description |
|---|---|
--apk / --aab |
Output format (both by default) |
-t, --target <aarch64|armv7|i686|x86_64> |
Target ABI (all by default) |
--split-per-abi |
Split APK/AAB per ABI |
-d, --debug |
Debug build |
-o, --open |
Open Android Studio after building |
--ci |
Run without prompts |
Verify
Section titled “Verify”mise run lint — Linting
Section titled “mise run lint — Linting”Underlying command: pnpm lint (oxlint)
mise run lint # Normal runmise run lint -- --fix # Auto-fixmise run lint -- --quiet # Hide warningsmise run lint -- -D correctness # Select by category (-A allow / -W warn / -D error)mise run lint -- -f json # Output format (default / json / junit / github, etc.)mise run lint -- --max-warnings 10mise run lint -- src/components/foo.tsx # Limit to files/pathsmise run test — Rust Tests
Section titled “mise run test — Rust Tests”Underlying command: cargo test (in src-tauri)
mise run test # Unit tests (parsers etc.)mise run test -- -- --ignored # Integration tests requiring a real WSA devicemise run test -- parser # Filter by test namemise run test -- -- --nocapture # Show println output- The first
--is consumed by mise and passed to the task. Arguments to cargo’s test binary (like--ignored) also require cargo’s own--, hence the doubled-- --. - The
--ignoredtests live insrc-tauri/tests/adb_test.rsand require WSA running in developer mode with an ADB server (127.0.0.1:58526) responding.
mise run android-test — Android Unit Tests
Section titled “mise run android-test — Android Unit Tests”Underlying command: ./gradlew test / gradlew.bat test (in src-tauri/gen/android, depending on OS)
mise run android-test # All testsmise run android-test -- --tests "ClassName" # Narrow down tests- Runs
gradlew testinsrc-tauri/gen/android(gradlew.baton Windows, Robolectric). - On a fresh checkout,
mise run pipeline:codegenis required first (the generated Kotlin code, gradle config, andlibs/rustls-platform-verifier.aarundergen/androidare not tracked in git.gen/androiditself is tracked, soandroid initis not needed. See Pipeline).
mise run tauri ... — tauri CLI Pass-through
Section titled “mise run tauri ... — tauri CLI Pass-through”Underlying command: infisical run -- pnpm tauri
mise tauri info # Show environment info (Rust / Node / config)mise tauri android init # Initialize the Android project (only when recreating it; normally use pipeline:codegen)mise tauri icon <png> # Generate iconsmise tauri signer generate # Generate a signing key for the updatermise run generate-licenses — License Generation
Section titled “mise run generate-licenses — License Generation”Underlying command: pnpm generate-licenses
mise run generate-licensesscripts/generate-licenses.tscollects JS and Rust (cargo-about) dependencies and regenerates the data for the in-app licenses tab. It also runs automatically viabeforeDevCommand/beforeBuildCommandoftauri dev/tauri build.
mise run docs-dev / docs-build — Documentation Site
Section titled “mise run docs-dev / docs-build — Documentation Site”mise run docs-dev # Dev server (http://localhost:4321)mise run docs-build # Build static site + link check (site/dist)site/is built with Astro Starlight (Japanese at the root, English under/en/).- Deployment builds with
BASE_PATH=/WSA_RPC_Bridge/docs/(to serve from the GitHub Pages subpath). Thedocs-buildtask uses this value by default; override it via the environment variable.
pnpm preview — Inspecting Build Artifacts
Section titled “pnpm preview — Inspecting Build Artifacts”Underlying command: vite preview
pnpm preview # Serve dist on a local serverpnpm preview -- --port 8080 # Specify portpnpm preview -- --open # Open browser automaticallyRun pnpm directly, not as mise run <task> -- <args>.
Passing Arguments
Section titled “Passing Arguments”Pass arguments as mise run <task> -- <args> (everything after -- is passed to the task’s command). mise run tauri ... can be abbreviated to mise tauri ....
Alternative Commands When Not Logged in to Infisical
Section titled “Alternative Commands When Not Logged in to Infisical”dev / build / tauri go through infisical run, so they fail when you are not logged in. In that case run pnpm directly. With pnpm tauri ..., arguments are passed straight to the tauri CLI without --.
| mise task | Alternative command |
|---|---|
mise run dev [args] |
pnpm tauri dev [args] |
mise run build [args] |
pnpm tauri build [args] |
mise tauri <subcommand> [args] |
pnpm tauri <subcommand> [args] |
pnpm tauri dev # Normal startpnpm tauri dev --release # Release modepnpm tauri build --bundles msi # Build MSI onlypnpm tauri android build --apk -t aarch64 # Android APK (aarch64)--is only needed to pass arguments to the runner (cargo etc.):pnpm tauri dev -- -- [runnerArgs]deps/lint/test/android-test/generate-licensesdo not use infisical, so they work withmise runregardless of login state- Note: Builds without login have no signing key injected, so signed artifacts (signed APK / updater signature) are not produced. This does not affect running
devfor development. If you need release signing, log in and usemise run build.
Installing dependencies (mise run deps / underlying pnpm install) also bypasses infisical, so it works as-is.
Correspondence with CI
Section titled “Correspondence with CI”To verify locally what CI does, ci.yml runs the following in order:
mise run depsmise run generate-licensesmise run docs-deps(type-aware lint also resolves tsconfigs under site/)mise run lintpnpm tauri build(with signing keys)mise run testmise run android-test(in a separate job, viamise run pipeline:codegen)
Build commands used by releases (release.yml / Release):
pnpm tauri android build --apk --target aarch64 # Android APK (aarch64)pnpm tauri build --bundles msi # Windows MSI