WindowsmacOSLinux

Where Does Tauri Keep Config and Capabilities?

Tauri centers on src-tauri with tauri.conf.json, capabilities and Rust sources. Project layout and what to commit.

Last updated

A Tauri project pairs a frontend folder with a src-tauri Rust crate. Inside src-tauri, tauri.conf.json is the master config (identifier, windows, dev URLs) and doubles as the CLI's project marker. The capabilities folder grants IPC permissions per window; unlisted windows get no backend access at all.

Icons, build.rs, Cargo files and Rust sources round out the crate. Everything here is source: commit all of it except target/, which Cargo regenerates. Platform overrides (Tauri.linux.conf.json and friends) merge over the base config for per-OS tweaks.

Where Tauri stores this, by platform

Windows
<project root>\src-tauri\tauri.conf.json

Master config plus capabilities folder beside it. Rust target/ output regenerates via cargo and stays gitignored. Platform file Tauri.windows.conf.json overlays Windows-only settings.

macOS
<project root>/src-tauri/tauri.conf.json

Same layout and marker role. Icons need .icns variants here for bundles. Capabilities can scope permissions per platform including macOS-specific APIs.

Linux
<project root>/src-tauri/tauri.conf.json

Mirrors macOS. Rust-only setups can promote src-tauri to the repo root or a workspace member. Generated JSON schemas under gen/ assist IDE autocompletion.

Frequently asked questions

What Tauri files must I commit to git?

All of src-tauri except target/: tauri.conf.json, capabilities, Cargo files, sources, icons and build.rs. The frontend folder follows its own ignore rules. target/ rebuilds deterministically from the lockfile.

Why can't my frontend call a Tauri command?

Its window matches no capability granting that permission. Add a capability file under src-tauri/capabilities covering the window (or *) with the needed permission, or reference it from tauri.conf.json. Unlisted windows are denied by default.

Notice an outdated path? Let us know.