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
<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.
<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.
<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.