Tauri v2 Capability Builder

Build, validate, and preview security permissions capabilities for Tauri v2 configurations.

Tauri v2 Security Utility
Docs

1. Capability Metadata

main

2. Core Plugins Permissions Matrix

Toggle specific security permissions for each core Tauri plug-in. Adding a scoped permission (like fs:allow-read) will prompt you to configure custom scope parameters.

3. Dynamic Scope Rules Engine

Active Rules Table

TypeScope Path TargetAction
No filesystem scope rules added. Scoped permissions will generate warnings.
src-tauri/capabilities/default.jsonREAD-ONLY
{ "$schema": "../gen/schemas/desktop-schema.json", "identifier": "default-capability", "description": "Capability for the main application windows", "windows": [ "main" ], "platforms": [ "macOS", "windows", "linux", "android", "iOS" ], "permissions": [ "core:default" ] }

Visual Validation & Safety Checklist

Everything looks secure! Zero warnings or syntax anomalies detected.

Using this configuration? Cite us!

Copy this Markdown citation link to reference the Tauri v2 Capability Builder in your GitHub README or technical blog posts:

[Tauri v2 Capability Builder](https://tauri-capability-builder.prophecccy.xyz)

© 2026 Tauri Capability Builder. Build secure desktop applications.

Tauri v2 ACL & Capability Troubleshooting

How do you fix Tauri v2 filesystem permission denied errors?

To fix Tauri v2 filesystem permission denied errors, you must explicitly register the fs:allow-read or fs:allow-write permission inside your capability file at src-tauri/capabilities/default.json and define a precise path scope under the scope property to allow access to targeted directories like $APP_DATA/**/*.

{
  "permissions": ["fs:allow-read"],
  "scope": {
    "allow": [{ "path": "$APP_DATA/**/*" }]
  }
}

How do you configure dynamic scopes for the Tauri v2 shell plugin?

To authorize external command or sidecar execution in Tauri v2, you must assign the shell:allow-execute permission inside src-tauri/capabilities/default.json. You must then map an authorized array containing target binary paths, arguments configurations, and sidecar flags straight to the capability’s local permission scope definitions.

{
  "permissions": [
    {
      "identifier": "shell:allow-execute",
      "allow": [{ "name": "binaries/my-sidecar", "sidecar": true, "args": true }]
    }
  ]
}

What is the difference between Tauri v1 allowlist and Tauri v2 capabilities?

Tauri v1 used global allowlist toggles directly in tauri.conf.json. Tauri v2 replaces this model with decentralized, file-based Capabilities inside the src-tauri/capabilities/ folder, utilizing an Access Control List (ACL) that maps permissions and scope restrictions directly to specific target windows and platforms.