Tauri config security
Skill Xopoko/plug-n-skills/plugins/tauri/skills/tauri-config-security
Ready-to-install skills and plugins for Codex, Claude Code, and AI coding agents: practical workflows for app delivery, architecture, research, design, and agent tooling.
npx -y skills add Xopoko/plug-n-skills --skill tauri-config-securityAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 8 stars8 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Configure or review Tauri 2 tauri.conf files, capabilities, permissions, CSP, scoped filesystem/network/shell access, window labels, plugin permissions, and security-sensitive frontend API exposure.
SKILL.md
2.9 KB, 668 tokens by cl100k_base, as published. Nobody here has run it
Tauri Config And Security
Bundled commands use $PLUGIN_ROOT ($env:PLUGIN_ROOT in PowerShell; same path suffix) for the plugin root. Set it once: use the host's plugin-root variable when defined (Claude Code: PLUGIN_ROOT="$CLAUDE_PLUGIN_ROOT"), otherwise the absolute path of this plugin's root directory.
Use this skill when changing tauri.conf.*, src-tauri/capabilities/*,
permissions, CSP, plugin access, or any frontend-callable native API.
Security Baseline
- Every frontend-accessible native API needs an explicit permission story.
- Grant the minimum permission to the minimum window/webview label.
- Scope filesystem, shell, HTTP, opener, deep-link, and sidecar access.
- Never add broad
$HOME/**, unrestricted shell, or unbounded network access as a convenience fix. - Do not print, move, commit, or invent signing keys, tokens,
.envvalues, cookies, Keychain data, or updater private keys.
Files To Inspect
python3 "$PLUGIN_ROOT/scripts/tauri_project_probe.py" .
Then inspect:
src-tauri/tauri.conf.json,.json5, or.toml;- platform configs such as
tauri.macos.conf.json,tauri.windows.conf.json,tauri.linux.conf.json,tauri.android.conf.json,tauri.ios.conf.json; src-tauri/capabilities/*.jsonor*.toml;src-tauri/Cargo.toml;- Rust window creation labels and plugin registration.
Capability Pattern
Prefer file-based capabilities under src-tauri/capabilities/:
{
"$schema": "../gen/schemas/desktop-schema.json",
"identifier": "main-window",
"description": "Main window permissions",
"windows": ["main"],
"permissions": [
"core:path:default",
"core:event:default",
"core:window:default",
{
"identifier": "fs:allow-exists",
"allow": [{ "path": "$APPDATA/*" }]
}
]
}
If app.security.capabilities is set in config, keep it synchronized with
capability identifiers. Window labels are case-sensitive and are not titles.
Review Checklist
- Are
core:*permissions namespaced correctly for Tauri 2? - Does each window have only the permissions it needs?
- Are remote URLs, filesystem scopes, and shell commands scoped?
- Are plugin permissions registered in capabilities after adding a plugin?
- Does CSP allow only required script, style, image, asset, IPC, and network sources?
- Did a build/runtime error get "fixed" by adding permissions that are too broad? If so, replace with a narrower permission or command.
Verification
Run schema/build checks available in the project. At minimum, use:
cargo check --manifest-path src-tauri/Cargo.toml
Then run the local Tauri dev/build command if the changed permission affects runtime frontend calls.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most project setup skills give in 668 tokens
Counted across 999 of the 1,637 authors here whose files we hold, read 2026-08-07
- ask one question at a timein 29 of 999, across 28 files
- detect the package manager from lockfilesin 28 of 999, across 9 files
- present findings to the userin 26 of 999, across 5 files
- explore current repo statein 24 of 999, across 3 files
- update the agent skills block in place if it existsin 24 of 999, across 3 files
- install husky lint-staged and prettierin 23 of 999, across 4 files
- create the lintstagedrc filein 22 of 999, across 3 files
- commit all changed filesin 22 of 999, across 3 files
- run lint-staged to verify it worksin 22 of 999, across 3 files
- create the husky pre-commit filein 21 of 999, across 2 files
- create a prettierrc file if missingin 21 of 999, across 2 files
- initialize huskyin 21 of 999, across 2 files
Said here and by no other author read
- Provide explicit permissions for every frontend-accessible native API
- Grant minimum permissions to minimum window labels
- Scope filesystem, shell, HTTP, opener, deep-link, and sidecar access
- Prefer file-based capabilities under the capabilities directory
- Keep app security capabilities synchronized with capability identifiers
- Ensure core permissions are namespaced for Tauri 2
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.