configuring-tauri-apps

Tauri Configuration Files

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "configuring-tauri-apps" with this command: npx skills add dchuk/claude-code-tauri-skills/dchuk-claude-code-tauri-skills-configuring-tauri-apps

Tauri Configuration Files

Tauri v2 applications use three primary configuration files to manage application behavior, dependencies, and build processes.

Configuration File Overview

File Purpose Format

tauri.conf.json

Tauri-specific settings JSON, JSON5, or TOML

Cargo.toml

Rust dependencies and metadata TOML

package.json

Frontend dependencies and scripts JSON

tauri.conf.json

The main configuration file located in src-tauri/ . Defines application metadata, window behavior, bundling options, and plugin settings.

Supported Formats

  • JSON (default): tauri.conf.json

  • JSON5: tauri.conf.json5 (requires config-json5 Cargo feature)

  • TOML: Tauri.toml (requires config-toml Cargo feature)

Complete Configuration Structure

{ "$schema": "https://schema.tauri.app/config/2", "productName": "MyApp", "version": "1.0.0", "identifier": "com.company.myapp", "mainBinaryName": "my-app", "build": { "devUrl": "http://localhost:3000", "frontendDist": "../dist", "beforeDevCommand": "npm run dev", "beforeBuildCommand": "npm run build", "features": ["custom-feature"], "removeUnusedCommands": true }, "app": { "withGlobalTauri": false, "macOSPrivateApi": false, "windows": [ { "title": "My Application", "width": 1200, "height": 800, "minWidth": 800, "minHeight": 600, "resizable": true, "fullscreen": false, "center": true, "visible": true, "decorations": true, "transparent": false, "alwaysOnTop": false, "focus": true, "url": "index.html" } ], "security": { "capabilities": [], "assetProtocol": { "enable": true, "scope": ["$APPDATA/"] }, "pattern": { "use": "brownfield" }, "freezePrototype": false }, "trayIcon": { "id": "main-tray", "iconPath": "icons/tray.png", "iconAsTemplate": true } }, "bundle": { "active": true, "targets": "all", "icon": ["icons/32x32.png", "icons/128x128.png", "icons/icon.icns", "icons/icon.ico"], "resources": ["assets//*"], "copyright": "Copyright 2024", "category": "Utility", "shortDescription": "A short app description", "longDescription": "A longer description", "licenseFile": "../LICENSE", "windows": { "certificateThumbprint": null, "timestampUrl": "http://timestamp.digicert.com", "nsis": { "license": "../LICENSE", "installerIcon": "icons/icon.ico", "installMode": "currentUser" } }, "macOS": { "minimumSystemVersion": "10.13", "signingIdentity": null, "dmg": { "appPosition": { "x": 180, "y": 170 }, "applicationFolderPosition": { "x": 480, "y": 170 } } }, "linux": { "appimage": { "bundleMediaFramework": false }, "deb": { "depends": ["libwebkit2gtk-4.1-0"] }, "rpm": { "depends": ["webkit2gtk4.1"] } }, "android": { "minSdkVersion": 24 }, "iOS": { "minimumSystemVersion": "13.0" } }, "plugins": { "updater": { "pubkey": "YOUR_PUBLIC_KEY", "endpoints": ["https://releases.example.com/{{target}}/{{arch}}/{{current_version}}"] } } }

Root-Level Fields

Field Type Required Description

productName

string No Application display name

version

string No Semver version or path to package.json

identifier

string Yes Reverse domain identifier (e.g., com.tauri.example )

mainBinaryName

string No Override the main binary filename

Build Configuration Fields

Field Type Description

devUrl

string Development server URL for hot-reload

frontendDist

string Path to built frontend assets or remote URL

beforeDevCommand

string Script to run before tauri dev

beforeBuildCommand

string Script to run before tauri build

features

string[] Cargo features to enable during build

removeUnusedCommands

boolean Strip unused plugin commands from binary

Window Configuration Options

Field Type Default Description

title

string "Tauri"

Window title

width / height

number 800 / 600

Window dimensions in pixels

minWidth / minHeight

number

Minimum dimensions

maxWidth / maxHeight

number

Maximum dimensions

x / y

number

Window position

resizable

boolean true

Allow window resizing

fullscreen

boolean false

Start in fullscreen

center

boolean false

Center window on screen

visible

boolean true

Window visibility on start

decorations

boolean true

Show window decorations

transparent

boolean false

Enable window transparency

alwaysOnTop

boolean false

Keep window above others

url

string "index.html"

Initial URL to load

Security Configuration

Field Type Description

capabilities

string[] Permission capabilities for the application

assetProtocol.enable

boolean Enable custom asset protocol

assetProtocol.scope

string[] Allowed paths for asset protocol

pattern.use

string Security pattern ("brownfield" default)

freezePrototype

boolean Prevent prototype mutation

Bundle Targets by Platform

Platform Targets

Windows nsis , msi

macOS app , dmg

Linux appimage , deb , rpm

Android apk , aab

iOS app

Platform-Specific Configuration

Create platform-specific files that override base configuration using JSON Merge Patch (RFC 7396).

Platform Filename

Linux tauri.linux.conf.json

Windows tauri.windows.conf.json

macOS tauri.macos.conf.json

Android tauri.android.conf.json

iOS tauri.ios.conf.json

Example src-tauri/tauri.windows.conf.json :

{ "app": { "windows": [{ "title": "My App - Windows Edition" }] }, "bundle": { "windows": { "nsis": { "installMode": "perMachine" } } } }

Example src-tauri/tauri.macos.conf.json :

{ "app": { "macOSPrivateApi": true }, "bundle": { "macOS": { "minimumSystemVersion": "11.0", "entitlements": "entitlements.plist" } } }

CLI Configuration Override

Development with custom config

tauri dev --config src-tauri/tauri.dev.conf.json

Build with beta configuration

tauri build --config src-tauri/tauri.beta.conf.json

Inline configuration override

tauri build --config '{"bundle":{"identifier":"com.company.myapp.beta"}}'

Cargo.toml Configuration

Located in src-tauri/Cargo.toml , manages Rust dependencies.

[package] name = "my-app" version = "1.0.0" edition = "2021"

[build-dependencies] tauri-build = { version = "2.0", features = [] }

[dependencies] serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" tauri = { version = "2.0", features = [] } tauri-plugin-shell = "2.0" tauri-plugin-opener = "2.0"

[features] default = ["custom-protocol"] custom-protocol = ["tauri/custom-protocol"]

Common Tauri Features

[dependencies] tauri = { version = "2.0", features = [ "config-json5", # Enable JSON5 config format "config-toml", # Enable TOML config format "devtools", # Enable WebView devtools "macos-private-api", # Enable macOS private APIs "tray-icon", # Enable system tray support "image-png", # PNG image support "image-ico", # ICO image support "protocol-asset" # Custom asset protocol ] }

Version Management

tauri = { version = "2.0" } # Semver-compatible (recommended) tauri = { version = "=2.0.0" } # Exact version tauri = { version = "~2.0.0" } # Patch updates only

package.json Integration

{ "name": "my-tauri-app", "version": "1.0.0", "scripts": { "dev": "vite", "build": "vite build", "tauri": "tauri" }, "dependencies": { "@tauri-apps/api": "^2.0.0" }, "devDependencies": { "@tauri-apps/cli": "^2.0.0" } }

Environment-Specific Configurations

Development (src-tauri/tauri.dev.conf.json )

{ "build": { "devUrl": "http://localhost:5173" }, "app": { "withGlobalTauri": true, "windows": [{ "title": "My App [DEV]" }] } }

Production (src-tauri/tauri.prod.conf.json )

{ "build": { "frontendDist": "../dist", "removeUnusedCommands": true }, "bundle": { "active": true, "targets": "all" } }

Beta (src-tauri/tauri.beta.conf.json )

{ "identifier": "com.company.myapp.beta", "productName": "MyApp Beta", "plugins": { "updater": { "endpoints": ["https://beta-releases.example.com/{{target}}/{{arch}}/{{current_version}}"] } } }

TOML Configuration Format

When using Tauri.toml , configuration uses kebab-case:

[build] dev-url = "http://localhost:3000" before-dev-command = "npm run dev" before-build-command = "npm run build"

[app] with-global-tauri = false

[[app.windows]] title = "My Application" width = 1200 height = 800 resizable = true center = true

[app.security] freeze-prototype = false

[app.security.asset-protocol] enable = true scope = ["$APPDATA/**"]

[bundle] active = true targets = "all" icon = ["icons/32x32.png", "icons/128x128.png", "icons/icon.icns", "icons/icon.ico"]

[plugins.updater] pubkey = "YOUR_PUBLIC_KEY" endpoints = ["https://releases.example.com/{{target}}/{{arch}}/{{current_version}}"]

Common Configuration Patterns

Multi-Window Application

{ "app": { "windows": [ { "label": "main", "title": "Main Window", "width": 1200, "height": 800, "url": "index.html" }, { "label": "settings", "title": "Settings", "width": 600, "height": 400, "url": "settings.html", "visible": false } ] } }

System Tray Application

{ "app": { "trayIcon": { "id": "main-tray", "iconPath": "icons/tray.png", "iconAsTemplate": true }, "windows": [{ "visible": false }] } }

Plugin Configuration

{ "plugins": { "updater": { "pubkey": "YOUR_PUBLIC_KEY", "endpoints": ["https://releases.example.com/{{target}}/{{arch}}/{{current_version}}"], "windows": { "installMode": "passive" } }, "shell": { "open": true, "scope": [{ "name": "open-url", "cmd": "open", "args": [{ "validator": "\S+" }] }] }, "deep-link": { "mobile": ["myapp"], "desktop": { "schemes": ["myapp"] } } } }

Lock Files

Commit lock files for reproducible builds:

File Purpose

Cargo.lock

Locks Rust dependency versions

package-lock.json

Locks npm dependency versions

yarn.lock

Locks Yarn dependency versions

pnpm-lock.yaml

Locks pnpm dependency versions

Configuration Validation

Use the JSON schema for editor autocompletion:

{ "$schema": "https://schema.tauri.app/config/2" }

Run tauri info to verify configuration and environment setup.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

integrating-tauri-js-frontends

No summary provided by upstream source.

Repository SourceNeeds Review
-138
dchuk
Coding

configuring-tauri-permissions

No summary provided by upstream source.

Repository SourceNeeds Review
-116
dchuk
Coding

understanding-tauri-architecture

No summary provided by upstream source.

Repository SourceNeeds Review