@tauri-apps/cli
Node.js wrapper for the tauri-cli Rust binary.
2.12.x
2.12.0
New Features
-
f6c1eb253(#15401) Addedbundle.windows.bundleVCRuntimeto copy the Visual C++ runtime DLLs into Windows MSI and NSIS installers. The bundler locates the runtime throughVCTOOLS_REDIST_DIRor the bundledvswhere.exe. -
f76b1d3ae(#15644) The bundler now prints the size of each generated bundle next to its path in theFinished N bundles at:output (directories such as macOS.appbundles are measured recursively). -
af465eae1(#15619) Add a--no-binary-patchingflag totauri buildandtauri bundle. When set, the bundler skips patching the main executable with bundle type information (and the subsequent re-signing), leaving an already-signed binary untouched. Patching is only required when shipping multiple bundle types per platform that should each update with their own installer format. -
0646cc162(#15620) Add a--fitoption totauri iconto accept non-square source images.--fit covercenter-crops the source to a square (clipping the longer side) and--fit containpads the shorter side with transparency. Non-square sources without--fitkeep erroring, now with a hint pointing to the flag. -
f6c1eb253(#15401) Addedbuild.windows.staticVCRuntimeto control MSVC static runtime linking. TheSTATIC_VCRUNTIMEenvironment variable is now deprecated and emits a migration warning when used. -
f45ec0dcfRecord the app version in the trusted comment of updater signatures, so a signed artifact is bound to the version it was released as.An update endpoint response is not signed, and the signature only covers the downloaded artifact, so the announced
versionon its own does not prove which release theurlandsignaturepoint at. minisign covers the trusted comment with its global signature, which lets the updater plugin compare the two and reject a response that pairs a version number with a different release. EnablerequireSignedVersionin the updater plugin configuration to enforce this.tauri buildfills the version in automatically, andtauri plugin add updaternow enablesrequireSignedVersionfor the project it is adding the plugin to.tauri signer signgains an--app-versionflag for signing updater artifacts by hand, and warns when it is omitted.
Enhancements
-
e19121427(#15993) Don't always rewriteCargo.tomlfile from CRLF line endings to LF -
aebf38c84(#15694) Migrate the Android Gradle scripts from the deprecatedkotlinOptionsDSL tocompilerOptions, which is accepted by both Kotlin Gradle Plugin 1.9.x and 2.x. This lets projects move to Kotlin 2.x without hitting the hard error that 2.3+ raises on the old DSL.This increased the minimum supported Gradle version to 8.13, if your
gradleis on an earlier version, deletesrc-tauri/gen/android/gradle/wrapper/gradle-wrapper.propertiesand re-runtauri android initto update it. -
d89d8fa62(#15780) Warn during Android commands (init/dev/build) when the active Java version is too new for the Gradle version the project uses (e.g. Java 27 against the Gradle 9.6.1 the template ships, or Java 25 against a project still on Gradle 8.14), instead of letting the build fail later with a cryptic error. The warning points to the Gradle/Java compatibility matrix and suggests a supported JDK. -
c3d21bd60(#15730) UseTheme.Material3.DayNight.NoActionBarinstead ofTheme.MaterialComponents.DayNight.NoActionBarwhen runningtauri android init -
cdaf7eab6(#15765) Clarify that thetauri initfrontend commands run beforetauri devandtauri build, and can be left empty when they are not needed. -
d0f38df06(#15997) When stdin is not a terminal,tauri initnow automatically skips prompts, avoiding IO errors in CI and scripts. This eliminates the need to pass--ciexplicitly in non-interactive environments. -
ca160ad48(#15895)tauri buildnow warns whenproductNameis still set to the defaulttauri-app, since it names the generated bundles and is written into install paths and metadata that are expected to be unique to your application. The config documentation forproductNamenow lists what the field controls on each platform, andidentifier's documentation notes that the default value is rejected. -
010f06bae(#15737) Document theTAURI_SIGNING_PRIVATE_KEY_PATHenvironment variable and clarify thatTAURI_SIGNING_PRIVATE_KEYaccepts a string or a path for thebuildandbundlecommand but must be the literal key string for thesigner signcommand, both inENVIRONMENT_VARIABLES.mdand in thesigner generatecommand output.
Bug Fixes
9bad06b9f(#16096)tauri capability newandtauri permission newnow accept an--outpath to a file that does not exist yet, trim comma-separated prompt answers (sofs:default, core:defaultworks), report invalid permissions as errors instead of panicking, and reject identifiers that are not valid file names (such as../../x), which previously let them write outside of the capabilities or permissions directory.9642b3087(#16117)tauri addnow honors--tag,--revand--branchfor official plugins instead of silently installing the registry version, and rejects passing more than one of them. With npm, the JS package requirement is now~<version>like the other package managers, instead of>=<version>which allowed a later major version.cada1cd4f(#16105) Fix Android dev server port forwarding:adb reverse --listis now matched on the exact port (sotcp:80no longer matchestcp:8080), stale forwards on other connected devices are actually removed, and the forward verification gives up with a warning after a few attempts instead of retrying forever.d5bd04658(#16111) Fixbundle > android > debugApplicationIdSuffixbeing written to thesigningConfigsdebug block instead of thebuildTypesone, and keep the existing content of single-line debug blocks such asgetByName("debug") { isDebuggable = true }instead of dropping it.ba17da2e5(#16101)tauri iconnow generates 72x72 Androidhdpilauncher icons (previously 49x49) and writes the Android launcher background color in#RRGGBB/#AARRGGBBnotation instead of the raw CSS color string, which Android rejected or misread. Invalid SVG sources and--png 0now return an error instead of panicking.272842a57(#16128) Fix error messages that printed placeholders such as{t}literally instead of the value, e.g. "Could not find an Android device matching {t}".10ad4e54e(#16127) The Bash completions generated bytauri completionsno longer replace the completions ofcargo,npm,pnpm,yarn,bunanddeno. They now define a_tauri_clifunction registered only for thetauriandcargo-tauricommands. Generating completions when running thecargo-tauribinary directly no longer panics.0e4ded72a(#16107) Fix binaries insrc/binandsrc/main.rsbeing left out of bundles whenCargo.tomldeclares a[[bin]]target without apath.8e0fa2e2f(#16097) Fix the bundler using the host target triple when--targetis not passed butbuild.targetis set in.cargo/config.toml. The CLI now also acceptsbuild.targetas an array and honors theCARGO_BUILD_TARGETenvironment variable.7bb0a5421(#16120) Fix the Cargo.toml feature rewrite corrupting a string dependency version that has a trailing comment or uses single quotes (e.g.tauri = "2" # pinbecame"2#pin"). The version value is now kept as-is and the comment is preserved.e4630258e(#16114) Fix the CLI's working directory being left changed to the config directory when the Tauri configuration fails to parse, for example whentauri devreloads an invalid config.1b91b7b7b(#16102)tauri infonow logs a warning when it cannot check the latest crate version on crates.io instead of silently ignoring the failure, and no longer panics if crates.io returns a version it cannot parse.1b91b7b7b(#16102)tauri infonow lists every locked version of a Rust crate whenCargo.lockcontains more than one, and no longer panics when the crates.io response cannot be parsed.6507d0b8b(#16124)tauri devnow reports an error instead of panicking when thebeforeDevCommandcannot be spawned or thedevUrlhost cannot be resolved, and no longer risks stopping thebeforeDevCommandprocess tree twice when Ctrl+C and the app exit race.c1ea96ad6(#16110) Fixtauri devnot reacting to the app exiting when a process spawned by the app kept its stderr open, and stop keeping the whole app stderr output in memory. Also fix command output capture that could return empty output when the command finished before its output was read.d61fbdc3e(#16109) Fix Cargo.toml feature injection and the v1 migration only updating either[dependencies]or[target.'cfg(..)'.dependencies], whichever came first in the file. Both the main and all target-specific dependency tables are now updated.5d995ed35(#16017) Normalizegen/android/gradlewCRLF line endings to LF on all host platforms, not only Unix. Agradlewchecked out with CRLF brokesh ./gradlewon Windows hosts using Git Bash. The rewrite only runs when a CRLF is actually present. A failure to rewrite aborts on Unix, where the script is executed directly; on Windows the CLI invokesgradlew.bat, so failures there only warn.6d943c420(#16065) Fix thetauri capability newcommand description, which said "Create a new permission file", and the--skip-staplinghelp text ontauri buildandtauri bundle, whose first line described the opposite of what the flag does.b8be924d3(#16106)tauri initno longer panics when the app name, window title, frontend dist, dev URL or before dev/build commands contain quotes or backslashes (e.g.-D ..\distorvite --host "0.0.0.0"); the values are now JSON-escaped in the generatedtauri.conf.json.b9b32a259(#16108) FixPRODUCT_BUNDLE_IDENTIFIERin the iOS Xcode project being set to the rawidentifier(with underscores) instead of the sanitized iOS bundle identifier used by the Xcode project template and the export options provisioning profiles.4f51a2f06(#16115) Fixtauri ios run --featuresbeing ignored, andtauri ios dev --releasestill building the app in debug mode.59e077457(#16075)tauri ios buildfor a simulator target no longer fails with "failed to rename app: Directory not empty" when the output.appfrom a previous build exists.fe1aa30d2(#16113) Quote the Tauri CLI path and the Xcode variables in the iOS "Build Rust Code" build phase, fixing builds when Xcode or the CLI is installed in a path containing spaces (requires regenerating the Xcode project withtauri ios init). Also fixesCXXFLAGSnot being set for iOS targets intauri ios xcode-script.aa0a801c3(#16116) Fix Java version detection for the Android Java/Gradle compatibility warning whenJAVA_HOMEis not set: thejavabinary onPATHis now resolved through symlinks (e.g. Linux alternatives and Homebrew), and on macOS the/usr/bin/javastub falls back to/usr/libexec/java_home.1aafaa4e3(#16103) When rewriting a localhostdevUrlto the network address for mobile development, the query string and fragment are now preserved, and the IPv6 loopback ([::1]) and unspecified ([::]) addresses are now treated as localhost.022932dd5(#16123) Fix iOS Xcode project synchronization corruptingproject.pbxprojwhen several build settings were added to the same configuration, when an added setting was changed again, or when a multi-line setting was overwritten. Product names, signing identities and other values written to the project are now properly escaped.a4099d819(#16098)tauri permission add(andtauri add) no longer overwrites an existingcapabilities/desktop.jsonorcapabilities/mobile.jsonwhen adding a desktop-only or mobile-only plugin permission and no platform-restricted capability exists; the new capability now gets an unused file name and identifier (e.g.desktop-2.json). An explicitly passed capability is now used even if its platforms do not match the plugin, with a warning, instead of being silently ignored.e49d1b474(#16100)tauri permission rm <plugin>:*andtauri removeno longer strip unrelated permissions whose identifier merely contains the plugin name (e.g.tauri remove osremovingpositioner:default). Local permission files are now looked up in the Tauri directory, liketauri permission new, and an unparsable permission file is skipped with a warning instead of aborting the command.efa82f5ed(#16125) Fix plugin scaffolding for names likemy-plugin: the default Android package ID now uses a snake_case segment (com.plugin.my_plugin) and user-provided IDs are validated, iOS Xcode folders use the same kebab-case name as the project file, and theplugin ios init/plugin android initcode snippets now match the generated bindings and thesetup(|app, api| ..)API.plugin initinto a non-empty directory no longer creates apermissionsfolder after skipping the template.db6804d80(#16126) Fix--releasebeing added to the cargo command when a custom profile is passed as--profile=<name>, which made cargo reject the build.8310461f6(#16104) Fixtauri initandtauri infodetecting SvelteKit projects as plain Svelte;tauri initsuggested the wrong dev server URL and frontend dist directory.eaf96690d(#15804) On Linux, do not bundle xdg-open and xdg-utils in the AppImage anymore. This rarely worked and usually requires host system support anyway.2b7c1f8b6(#16003) Fixtauri add/tauri removeinstalling npm plugin packages intosrc-tauriinstead of the frontend directory.c735ba32b(#15241) Fix broken child window icons in Task Manager, you'll need to re-runtauri iconto generate the fixed iconsadf5acf6f(#15651) Fix MSI bundling when an external binary filename starts with a digit.11012a13f(#15681) Fix WiX bundler doesn't respect the resource's target file name.59e077457(#16075) Detect pnpm fromnpm_config_user_agentwhen generating the mobile projects. pnpm's native binary (pnpm 11+) runs package scripts without settingPNPM_PACKAGE_NAME, and when installed through corepack the binary is namedpnpm-native, sotauri android initrecordedpnpm-nativeas the command for Gradle to run and the Android build failed with "A problem occurred starting process 'command 'pnpm-native''".6a298ee12(#15713) Fixtauri inforeporting the Rust-only plugins (localhost,persisted-scopeandsingle-instance) as missing their@tauri-apps/plugin-*JavaScript package, which is never published for those plugins.33b3ea582The bundledvswhere.exeis now written to a new, uniquely named temporary file on each use and removed afterwards, instead of running any existing%TEMP%\vswhere.exe.
What's Changed
2e6e33c85(#16029) Moved to edition 2024 for thetauri init/tauri plugin inittemplatesce3f13b91(#15887) Lock unstable tauri crates to minor versions.
Security fixes
98918df64(#16112)tauri addno longer installs the npm packagetauri-plugin-<name>-apifor community plugins. npm and crates.io are separate namespaces, so that package may be unowned or squatted; the CLI now asks you to install the plugin's JavaScript bindings yourself.tauri removeonly removes the plugin's JS package whenpackage.jsonlists it, and a failure there no longer skips the capability cleanup.cc9d522c6(#16095) The built-in dev server now rejects requests whoseHostheader is not the address it serves on, which blocks DNS rebinding attacks, and rejects cross-siteOrigins on its reload WebSocket. Theindex.htmlfallback now goes through the same path scope check as other files, and the reload WebSocket no longer closes when the client sends a message.dacddfe9f(#16094) The CLI no longer writes its default ignore rules to shared files in the system temporary directory (.gitignoreand.tauri/.gitignore) and reads them back, which let other local users change which files the project lookup and the dev watcher skip. The rules are now applied in memory.TAURI_CLI_WATCHER_IGNORE_FILENAMEis now consistently treated as an ignore file name looked up in each directory, as documented.fdd56da19(#16099) Secure the local server thattauri android|ios dev|builduses to pass options to the Android Studio and Xcode build scripts: requests now need a random per-session token, WebSocket connections from web pages (with anOriginheader) are rejected, and variables whose name containsTOKEN,PASSWORD,SECRETorCREDENTIALare no longer sent. The connection details are now written with owner-only permissions togen/<android|apple>/.tauri/cli-options-server.json(instead of the shared temp directory) and removed when the command exits. The IDE build scripts now report a clear error when the Tauri CLI command is not running.ff7cd8d86(#16118)tauri signer generate --write-keysnow creates the private key with owner-only permissions (0600) on Unix and refuses to overwrite either the private or the public key file without--force. Updater signing now rejects file names containing tabs or newlines (which would corrupt the signature's trusted comment) and assumes an empty password instead of prompting when no password is given and stdin is not a terminal.tauri signerreports errors instead of panicking.51aa20388(#16119) On Windows, package manager commands (npm,pnpm,yarn,bun,deno,node) are now executed directly instead of throughcmd /c, so arguments such as@tauri-apps/plugin-fs@>=2are escaped properly and can no longer be interpreted as shell redirections or command separators.
Dependencies
-
Upgraded to
tauri-cli@2.12.0 -
e2e585ad1(#15828) On Android, fix missingconsumer-rules.profile in the template.IMPORTANT: For plugin authors, update your
build.gradle.ktsfile to remove thebuildTypes {release {isMinifyEnabled = falseproguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"),"proguard-rules.pro")}}section and rename your
proguard-rules.protoconsumer-rules.proto match theconsumerProguardFiles("consumer-rules.pro")in the template. -
e2e585ad1(#15828) On Android, updated the template to use Gradle v9.6.1 (com.android.tools.build:gradlev9.3.1) and Kotlin v2.2. Usetauri android initto apply the change. -
9e9a54dea(#15890) Update the generated iOS Xcode project to build with Xcode 27. The scenes lifecycle is not enabled by default: to opt in, add theUIApplicationSceneManifestkey to yoursrc-tauri/Info.ios.plist. -
b6660a041(#15954) Update typescript to v7 intauri plugin inittemplate. Also fixes the defaultrootDirin the templatetsconfig.json -
9e9a54dea(#15890) Update cargo-mobile2 and change the default minimum iOS version to 15.0 to support Xcode 27.
2.11.x
2.11.4
Bug Fixes
67ffa192a(#15596 by @FabianLars) Fixed an issue in the AppImage bundler that caused the/.desktopand.DirIconfiles to be absolute symlinks instead of relative symlinks which caused problems with AppImage installers likeAppManager.
Dependencies
- Upgraded to
tauri-cli@2.11.4
2.11.3
Bug Fixes
-
50b0237ed(#15549 by @Legend-Master) Escape special characters inproductNamewhen generating Androidstrings.xml -
728c8d4a5(#15473 by @Legend-Master) Skip building bundles when usingtauri android run -
be0cb0d43(#15344 by @raglady) Fix NDK_HOME environment variable not honored when set -
ed8fd411f(#15552 by @Legend-Master) Makeureq_protoshow trace level logs only on-vvvinstead of-vv -
fca4a31f9(#15454 by @fallintoplace) Fixtauri migrategenerating invalid namespace imports for aliased pluginified imports from@tauri-apps/api.Inputs like
import { cli as superCli } from "@tauri-apps/api"now migrate toimport * as superCli from "@tauri-apps/plugin-cli"instead of producing invalid ESM syntax. The migration tests also reparse migrated JS, Svelte, and Vue output so syntax regressions are caught directly.
Dependencies
- Upgraded to
tauri-cli@2.11.3
2.11.2
Dependencies
- Upgraded to
tauri-cli@2.11.2
2.11.1
Dependencies
- Upgraded to
tauri-cli@2.11.1
2.11.0
New Features
-
926a57bb0(#15201) Added uninstaller icon and uninstaller header image support for NSIS installer.Notes:
- For
tauri-bundlerlib users, theNsisSettingsnow has 2 new fieldsuninstaller_iconanduninstaller_header_imagewhich can be a breaking change - When bundling with NSIS, users can add
uninstallerIconanduninstallerHeaderImageunderbundle > windows > nsisto configure them.
- For
-
764b9139a(#14313) Prompt to restart the Android emulator if it is not connected to adb. -
5dc2cee60(#14793) Added support forminimumWebview2Versionoption support for the MSI (Wix) installer, the oldbundle > windows > nsis > minimumWebview2Versionis now deprecated in favor ofbundle > windows > minimumWebview2VersionNotes:
- For anyone relying on the
WVRTINSTALLEDPropertytag inmain.wxs, it is now renamed toINSTALLED_WEBVIEW2_VERSION - For
tauri-bundlerlib users, theWindowsSettingsnow has a new fieldminimum_webview2_versionwhich can be a breaking change
- For anyone relying on the
Enhancements
be0e4bd2d(#15218) Added Vietnamese translations for the NSIS installer8718d0816(#15033) Show the context before prompting for updater signing key password
Bug Fixes
fcb702ec4(#14954) Fixbuild --bundlesto allownsisarg in linux+macOS80c1425af(#14921) Fix iOS build failure whenMetal Toolchainis installed by using explicit$(DEVELOPER_DIR)/Toolchains/XcodeDefault.xctoolchainpath instead of$(TOOLCHAIN_DIR)for Swift library search paths.
What's Changed
Dependencies
- Upgraded to
tauri-cli@2.11.0
2.10.x
2.10.1
Bug Fixes
35c35f27a(#14931 by @lucasfernog) Support comma-separated list of Cargo features on all commands.0d1cb83ba(#14932 by @lucasfernog) Fix missing Cargo args when running mobile dev and build commands.33754ae5e(#15022 by @Legend-Master) Fix updater signing private keys generated usingtauri signer generatewith empty password can't be used (The keys generated during tauri were broken between v2.9.3 and v2.10.0, you'll need to regenerate them)
What's Changed
7be58a1c6(#14894 by @Legend-Master) Log patching bundle type information again
Dependencies
- Upgraded to
tauri-cli@2.10.1
2.10.0
Enhancements
-
f82594410(#13253 by @Armaldio) Allow electron to run the CLI directly -
a2abe2e6b(#14607 by @sftse) Simplified internal representation offeatures: Option<Vec<String>>withVec<String>, no user facing changes -
84b04c4a8(#14759 by @amrbashir) Added new environment variables fortauri signer signcommand, to align with existing environment variables used intauri build,tauri bundleandtauri signer generateTAURI_SIGNING_PRIVATE_KEYTAURI_SIGNING_PRIVATE_KEY_PATHTAURI_SIGNING_PRIVATE_KEY_PASSWORD
The old environment variables are deprecated and will be removed in a future release.
TAURI_PRIVATE_KEYTAURI_PRIVATE_KEY_PATHTAURI_PRIVATE_KEY_PASSWORD
Bug Fixes
-
62aa13a12(#14629 by @lucasfernog) Fixandroid build's--aaband--apkflags requiring a value to be provided. -
eccff9758(#14779 by @lucasfernog) Fix empty associated-domains entitlements when domains are not configured for deep links. -
ea31b07f1(#14789 by @Legend-Master) Fixed the command description fortauri inspect -
7fca58230(#14830 by @Legend-Master) Updatednsis_tauri_utilsto 0.5.3:- Use an alternative method
CreateProcessWithTokenWto run programs as user, this fixed a problem that the program launched with the previous method can't query its own handle
- Use an alternative method
-
53611c4d7(#14747 by @Legend-Master) Only watch dependent workspace members when runningtauri devinstead of watching on all members -
1b0e335d3(#14713 by @wasuaje)tauri signer signdoesn't work for files without an extension
What's Changed
e3fdcb500(#14836 by @sftse) Continued refactors of tauri-cli, fix too weak atomics.0575dd287(#14521 by @kandrelczyk) Change the way bundle type information is added to binary files. Instead of looking up the value of a variable we simply look for the default value.7f7d9aac2(#14668 by @sftse) Refactored internal use of static on config and directory resolvings, no user facing changes, please report any regressions if you encounter any
Dependencies
- Upgraded to
tauri-cli@2.10.0
2.9.x
2.9.6
Dependencies
- Upgraded to
tauri-cli@2.9.6
2.9.5
Bug Fixes
f855caf8a(#14481 by @Legend-Master) Fixed the mismatched tauri package versions check didn't work for pnpm
Performance Improvements
Dependencies
- Upgraded to
tauri-cli@2.9.5
2.9.4
Bug Fixes
b586ecf1f(#14416 by @Legend-Master) Premultiply Alpha before Resizing which gets rid of the gray fringe around the icons for svg images.
Dependencies
- Upgraded to
tauri-cli@2.9.4
2.9.3
Bug Fixes
fd8c30b4f(#14353 by @ChaseKnowlden) Premultiply Alpha before Resizing which gets rid of the gray fringe around the icons.
Dependencies
- Upgraded to
tauri-cli@2.9.3
2.9.2
Dependencies
- Upgraded to
tauri-cli@2.9.2
2.9.1
Dependencies
- Upgraded to
tauri-cli@2.9.1
2.9.0
New Features
3b4fac201(#14194) Addtauri.conf.json > bundle > android > autoIncrementVersionCodeconfig option to automatically increment the Android version code.673867aa0(#14094) Try to detect ANDROID_HOME and NDK_HOME environment variables from default system locations and install them if needed using the Android Studio command line tools.3d6868d09(#14128) Added support to defining the content type of the declared file association on macOS (maps to LSItemContentTypes property).3d6868d09(#14128) Added support to defining the metadata for custom types declared intauri.conf.json > bundle > fileAssociations > exportedTypevia theUTExportedTypeDeclarationsInfo.plist property.ed7c9a410(#14108) Addedbundle > macOS > infoPlistandbundle > iOS > infoPlistconfigurations to allow defining custom Info.plist extensions.75082cc5b(#14120) Addedios runandandroid runcommands to run the app in production mode.cc8c0b531(#14031) Added support to universal app links on macOS with theplugins > deep-link > desktop > domainsconfiguration.
Enhancements
b5aa01870(#14268) Update cargo-mobile2 to 0.21, enhancing error messages and opening Xcode when multiple apps are installed.55453e845(#14262) Check mismatched versions intauri info1a6627ee7(#14122) Set a default log level filter when runningtauri add log.b06b3bd09(#14126) Improve error messages with more context.f6622a3e3(#14129) Prompt to install the iOS platform if it isn't installed yet.6bbb530fd(#14105) Warn if productName is empty when initializing mobile project.
Bug Fixes
19fb6f7cb(#14146) Strip Windows-only extensions from the binary path so an Android project initialized on Windows can be used on UNIX systems.19fb6f7cb(#14146) Enhance Android build script usage on Windows by attempting to run cmd, bat and exe formats.28a2f9bc5(#14101) Fix iOS CLI usage after modifying the package name.d2938486e(#14261) Replaced the non-standard nerd font character withⱼₛintarui info25e920e16(#14298) Wait for dev server to exit before exiting the CLI when the app is closed ontauri dev --no-watch.b0012424c(#14115) Resolve local IP address whentauri.conf.json > build > devUrlhost is0.0.0.0.abf7e8850(#14118) Fixes mobile project initialization when usingpnpxorpnpm dlx.
Dependencies
- Upgraded to
tauri-cli@2.9.0
2.8.x
2.8.4
Enhancements
f70b28529(#14093 by @lucasfernog) Ensure Rust targets for mobile are installed when running the dev and build commands (previously only checked on init).a9b342125(#14114 by @lucasfernog) Fix iOS dev and build targeting the simulator on Intel machines.61b9b681e(#14111 by @lucasfernog) RetainRUST_*environment variables when running the mobile commands.c23bec62d(#14083 by @FabianLars) Tauri now ignoresmacOS.minimumSystemVersionintauri devto prevent forced rebuilds of macOS specific dependencies when using something likerust-analyzerat the same time astauri dev.
Bug Fixes
c37a29833(#14112 by @lucasfernog) Fix usage with Deno failing withReferenceError: require is not defined.bcf000c0a(#14110 by @lucasfernog) Fixes runningioscommands withdenocrashing due to incorrect current working directory resolution.7db7142f9(#14119 by @lucasfernog) Fixes empty device name when using an Android emulator causing the emulator to never be detected as running.956b4fd6f(#14106 by @lucasfernog) Use the correct export method on Xcode < 15.4.
Dependencies
- Upgraded to
tauri-cli@2.8.4
2.8.3
Bug Fixes
0ac89d3b6(#14078 by @FabianLars) Updatedcargo-mobile2to allow running on iOS simulators that have a higher version than the XCode SDK. This fixes compatiblity issues with Apple's recent "iOS 18.5 + iOS 18.6 Simulator" platform support component.
Dependencies
- Upgraded to
tauri-cli@2.8.3
2.8.2
Dependencies
- Upgraded to
tauri-cli@2.8.1
2.8.1
Bug Fixes
f0172a454(#14038 by @KushalMeghani1644) FixesremoveDataStorereturn type.
2.8.0
New Features
91508c0b8(#13881 by @pepperoni505) Introduces a new configuration option that allows you to specify custom folders to watch for changes when runningtauri dev.bc4afe7dd(#13993 by @lucasfernog) Check installed plugin NPM/crate versions for incompatible releases.0c402bfb6(#13997 by @lucasfernog) Increase default iOS deployment target iOS to 14.0.d6d5f3707(#13358 by @lucasfernog) Added--root-certificate-pathoption toandroid devandios devto be able to connect to HTTPS dev servers.
Enhancements
8b465a12b(#13913 by @FabianLars) The bundler now pulls the latest AppImage linuxdeploy plugin instead of using the built-in one. This should remove the libfuse requirement.390cb9c36(#13953 by @FabianLars) Reduced the log level of the binary patcher crategoblinto only show its debug logs in-vvand above.4475e93e1(#13824 by @FabianLars) The bundler and cli will now read TLS Certificates installed on the system when downloading tools and checking versions.
Bug Fixes
f0dcf9637(#13980 by @Legend-Master) Fix the generated plugin init code oftauri addfortauri-plugin-autostartandtauri-plugin-single-instance4d270a96a(#13943 by @acx0) Fix codesigning verification failures caused by binary-patching during bundlingb21d86a8a(#13981 by @Legend-Master) Fixtauri permission addcould add duplicated permissions to the capability files9c938be45(#13912 by @takecchi) Properly migrate svelte to v5 in the plugin example template
Dependencies
- Upgraded to
tauri-cli@2.8.0
2.7.x
2.7.1
Dependencies
- Upgraded to
tauri-cli@2.7.1
2.7.0
New Features
33d079392(#13811 by @mhbagheri-99) Allow runner configuration to be an object with cmd, cwd, and args properties. The runner can now be configured as{ "cmd": "my_runner", "cwd": "/path", "args": ["--quiet"] }while maintaining backwards compatibility with the existing string format.
Enhancements
232265c70(#13209 by @kandrelczyk) Binaries are patched before bundling to add the type of a bundle they will placed in. This information will be used during update process to select the correct target.
Bug Fixes
916aeaa48(#13781 by @lucasfernog) Fixes Android dev and build commands readingtauri.ios.conf.jsoninstead oftauri.android.conf.jsonto merge platform-specific configuration.0f248b111(#13799 by @lucasfernog) Install iOS dependencies when needed.7a6fd5b75(#13863 by @FabianLars) The AppImage bundler now pulls the AppRun binaries from our GitHub mirror, fixing 404 errors.bda830410(#13833 by @Legend-Master) Fail with an error when trying to migrate from v2 alphabda830410(#13833 by @Legend-Master) Use v2 stable instead of v2-rc when migrating from v2-beta
Dependencies
- Upgraded to
tauri-cli@2.7.0
Full Changelog
@tauri-apps/cli full changelog
Version List
- v2.12.0 Sep 26, 2026
- v2.11.4 Jun 28, 2026
- v2.11.3 Jun 19, 2026
- v2.11.2 May 16, 2026
- v2.11.1 May 6, 2026
- v2.11.0 Apr 30, 2026
- v2.10.1 Mar 4, 2026
- v2.10.0 Feb 2, 2026
- v2.9.6 Dec 9, 2025
- v2.9.5 Nov 30, 2025
- v2.9.4 Nov 9, 2025
- v2.9.3 Nov 4, 2025
- v2.9.2 Oct 29, 2025
- v2.9.1 Oct 22, 2025
- v2.9.0 Oct 20, 2025
- v2.8.4 Sep 1, 2025
- v2.8.3 Aug 25, 2025
- v2.8.2 Aug 24, 2025
- v2.8.1 Aug 19, 2025
- v2.8.0 Aug 18, 2025
- v2.7.1 Jul 22, 2025
- v2.7.0 Jul 21, 2025
- v2.6.2 Jun 28, 2025
- v2.6.1 Jun 26, 2025
- v2.6.0 Jun 24, 2025
- v2.5.0 Apr 15, 2025
- v2.4.1 Apr 1, 2025
- v2.4.0 Mar 20, 2025
- v2.3.1 Feb 28, 2025
- v2.3.0 Feb 26, 2025
- v2.2.7 Jan 25, 2025
- v2.2.6 Jan 25, 2025
- v2.2.5 Jan 18, 2025
- v2.2.4 Jan 11, 2025
- v2.2.3 Jan 10, 2025
- v2.2.2 Jan 4, 2025
- v2.2.1 Jan 3, 2025
- v2.2.0 Jan 2, 2025
- v2.1.0 Nov 9, 2024
- v2.0.4 Oct 21, 2024
- v2.0.3 Oct 12, 2024
- v2.0.2 Oct 7, 2024
- v2.0.1 Oct 3, 2024
- v2.0.0 Oct 2, 2024
- v2.0.0-rc.18 Oct 2, 2024
- v2.0.0-rc.17 Sep 27, 2024
- v2.0.0-rc.16 Sep 17, 2024
- v2.0.0-rc.15 Sep 15, 2024
- v2.0.0-rc.14 Sep 15, 2024
- v2.0.0-rc.13 Sep 10, 2024
- v2.0.0-rc.12 Sep 5, 2024
- v2.0.0-rc.11 Sep 4, 2024
- v2.0.0-rc.10 Sep 1, 2024
- v2.0.0-rc.9 Aug 31, 2024
- v2.0.0-rc.8 Aug 28, 2024
- v2.0.0-rc.7 Aug 22, 2024
- v2.0.0-rc.6 Aug 20, 2024
- v2.0.0-rc.5 Aug 20, 2024
- v2.0.0-rc.4 Aug 17, 2024
- v2.0.0-rc.3 Aug 9, 2024
- v2.0.0-rc.2 Aug 7, 2024
- v2.0.0-rc.1 Aug 3, 2024
- v2.0.0-rc.0 Aug 2, 2024
- v2.0.0-beta.23 Jul 29, 2024
- v2.0.0-beta.22 Jul 12, 2024
- v2.0.0-beta.21 Jul 2, 2024
- v2.0.0-beta.20 May 29, 2024
- v2.0.0-beta.19 May 29, 2024
- v2.0.0-beta.18 May 23, 2024
- v2.0.0-beta.17 May 9, 2024
- v2.0.0-beta.16 May 6, 2024
- v2.0.0-beta.15 Apr 30, 2024
- v2.0.0-beta.14
- v2.0.0-beta.13 Apr 15, 2024
- v2.0.0-beta.12 Apr 2, 2024
- v2.0.0-beta.11 Mar 21, 2024
- v2.0.0-beta.10 Mar 18, 2024
- v2.0.0-beta.9 Mar 11, 2024
- v2.0.0-beta.8 Mar 8, 2024
- v2.0.0-beta.7 Mar 7, 2024
- v2.0.0-beta.6 Feb 29, 2024
- v2.0.0-beta.5 Feb 27, 2024
- v2.0.0-beta.4 Feb 22, 2024
- v2.0.0-beta.3 Feb 21, 2024
- v2.0.0-beta.2 Feb 19, 2024
- v2.0.0-beta.1 Feb 4, 2024
- v2.0.0-beta.0 Feb 3, 2024
- v2.0.0-alpha.21 Jan 16, 2024
- v2.0.0-alpha.20 Dec 19, 2023
- v2.0.0-alpha.19
- v2.0.0-alpha.18 Nov 21, 2023
- v2.0.0-alpha.17 Oct 28, 2023
- v2.0.0-alpha.16 Oct 19, 2023
- v2.0.0-alpha.15 Oct 8, 2023
- v2.0.0-alpha.14 Sep 11, 2023
- v2.0.0-alpha.13 Sep 8, 2023
- v2.0.0-alpha.12 Sep 6, 2023
- v2.0.0-alpha.11 Aug 14, 2023
- v2.0.0-alpha.10 Jun 17, 2023
- v2.0.0-alpha.9 May 18, 2023
- v2.0.0-alpha.8 Apr 14, 2023
- v2.0.0-alpha.7 Apr 10, 2023
- v2.0.0-alpha.6 Apr 3, 2023
- v2.0.0-alpha.5 Mar 29, 2023
- v2.0.0-alpha.4 Mar 21, 2023
- v2.0.0-alpha.3 Mar 20, 2023
- v2.0.0-alpha.2 Feb 2, 2023
- v2.0.0-alpha.1 Dec 15, 2022
- v2.0.0-alpha.0 Dec 9, 2022
- v1.5.11 Mar 7, 2024
- v1.5.10 Feb 19, 2024
- v1.5.9 Dec 20, 2023
- v1.5.8 Dec 13, 2023
- v1.5.7 Dec 1, 2023
- v1.5.6 Oct 24, 2023
- v1.5.5 Oct 19, 2023
- v1.5.4 Oct 17, 2023
- v1.5.3
- v1.5.2 Oct 8, 2023
- v1.5.1 Oct 2, 2023
- v1.5.0 Sep 28, 2023
- v1.4.0 Jun 14, 2023
- v1.3.1 May 8, 2023
- v1.3.0 May 3, 2023
- v1.2.3 Jan 19, 2023
- v1.2.2 Dec 8, 2022
- v1.2.1 Nov 24, 2022
- v1.2.0 Nov 8, 2022
- v1.1.1 Sep 16, 2022
- v1.1.0 Sep 15, 2022
- v1.0.5 Jul 22, 2022
- v1.0.4 Jul 14, 2022
- v1.0.3 Jul 6, 2022
- v1.0.2 Jun 30, 2022
- v1.0.1 Jun 29, 2022
- v1.0.0 Jun 16, 2022
- v1.0.0-rc.16 Jun 15, 2022
- v1.0.0-rc.15 Jun 15, 2022
- v1.0.0-rc.14 Jun 14, 2022
- v1.0.0-rc.13 May 27, 2022
- v1.0.0-rc.12 May 24, 2022
- v1.0.0-rc.11 May 18, 2022
- v1.0.0-rc.10 May 8, 2022
- v1.0.0-rc.9 Apr 26, 2022
- v1.0.0-rc.8 Mar 28, 2022
- v1.0.0-rc.6
- v1.0.0-rc.5 Feb 18, 2022
- v1.0.0-rc.4 Feb 14, 2022
- v1.0.0-rc.3
- v1.0.0-rc.2 Feb 11, 2022
- v1.0.0-rc.1 Feb 11, 2022
- v1.0.0-rc.0 Feb 10, 2022
© 2026 Tauri Contributors. CC-BY / MIT