agentleFS
tim-osterhustim-osterhus/millrace-skills/skills/tauri-desktop/SKILL.md

tauri-desktop

Skill0 starsChanged 7 months agoApache-2.0View on GitHub

Implementation guardrail for Tauri 2 desktop and mobile apps spanning Rust backend commands, frontend IPC, plugins, capabilities, security, and packaging.

2 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

16 rules. About 0 are common, 12 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈12

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Add Rust commands in src-tauri and expose them through generate_handler.

    line 41
  2. Very specific:

    Call commands from the frontend with typed invoke wrappers.

    line 42
  3. Distinctive:

    Treat Tauri's capability model as a security boundary, not a nuisance to bypass.

    line 48
  4. Distinctive:

    Prefer plugin APIs over ad hoc shell commands when a first-party plugin exists.

    line 49
  5. Distinctive:

    Do not expose arbitrary shell execution to the frontend.

    line 50
  6. Very specific:

    Keep Rust command inputs typed and serializable.

    line 51
  7. Distinctive:

    Keep long-running work off the UI thread and report progress through events or state.

    line 52
  8. Distinctive:

    Keep mobile paths explicit.

    line 54
  9. Distinctive:

    Keep updater keys, signing material, bundle identifiers, and platform entitlements out of source examples unless they are placeholders.

    line 55
  10. Very specific:

    Read package.json, src-tauri/Cargo.toml, src-tauri/tauri.conf.json, and capability files.

    line 72
  11. Distinctive:

    Add or change the Rust command with typed arguments and a structured result.

    line 74
  12. Distinctive:

    Add or update capability permissions with the narrowest paths, windows, and plugin permissions possible.

    line 76
  13. Distinctive:

    Update frontend wrappers and UI state to handle loading, success, and error paths.

    line 77
  14. Distinctive:

    Run the repo's Tauri dev/build checks and manually smoke the feature in the app when feasible.

    line 78
  15. Distinctive:

    Start from the exact boundary the task touches.

    line 90
  16. Distinctive:

    Run the repo's formatter, typecheck, and Tauri dev or build command.

    line 96

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Tauri Desktop

Purpose

Help agents build or review Tauri 2 applications with a Rust backend, web frontend, IPC commands, plugin setup, capability permissions, updater paths, and platform packaging. This skill is for Tauri app implementation, not generic web UI or Rust-only work.

Use When

  • creating or modifying a Tauri desktop or mobile app
  • adding Rust commands invoked from frontend code
  • configuring Tauri plugins, permissions, capabilities, updater, windows, menus, or packaging
  • debugging frontend-to-backend IPC or platform-specific build behavior

Do Not Use When

  • the task is purely web frontend with no Tauri boundary
  • the work is an embedded terminal or PTY feature, which needs the narrower Tauri PTY skill
  • the task is only Rust library logic unrelated to the app shell

Quick Start

  1. Identify the frontend framework, src-tauri layout, Tauri version, and package manager.
  2. Add Rust commands in src-tauri and expose them through generate_handler.
  3. Call commands from the frontend with typed invoke wrappers.
  4. Configure plugins and capabilities before assuming frontend APIs are allowed.
  5. Scope filesystem, shell, dialog, notification, updater, and network permissions narrowly.
  6. Validate with dev, build, and a real app smoke path.

Operating Constraints

  • Treat Tauri's capability model as a security boundary, not a nuisance to bypass.
  • Prefer plugin APIs over ad hoc shell commands when a first-party plugin exists.
  • Do not expose arbitrary shell execution to the frontend.
  • Keep Rust command inputs typed and serializable; return structured Result values with useful error messages.
  • Keep long-running work off the UI thread and report progress through events or state.
  • Store app data through Tauri path APIs rather than hardcoded platform paths.
  • Keep mobile paths explicit; do not assume desktop-only APIs work unchanged on iOS or Android.
  • Keep updater keys, signing material, bundle identifiers, and platform entitlements out of source examples unless they are placeholders.

Inputs This Skill Expects

  • The Tauri version and frontend stack.
  • The feature being added: IPC command, plugin, filesystem access, updater, windowing, tray, mobile, or packaging.
  • Existing tauri.conf.json, Cargo.toml, capabilities files, and frontend invocation code.
  • Target platforms and distribution formats.
  • Verification commands for the repo.

Output Contract

  • Name the Tauri boundary changed: Rust command, frontend invoke, plugin registration, capability, config, or packaging.
  • State the permission scope added or changed and why it is narrow enough.
  • Include the frontend and backend call contract when IPC is involved.
  • Include platform caveats for macOS, Windows, Linux, Android, or iOS when relevant.
  • Report the dev/build/smoke verification path.

Procedure

  1. Read package.json, src-tauri/Cargo.toml, src-tauri/tauri.conf.json, and capability files.
  2. Locate existing command, plugin, and frontend invocation patterns.
  3. Add or change the Rust command with typed arguments and a structured result.
  4. Register the command or plugin in the Tauri builder.
  5. Add or update capability permissions with the narrowest paths, windows, and plugin permissions possible.
  6. Update frontend wrappers and UI state to handle loading, success, and error paths.
  7. Run the repo's Tauri dev/build checks and manually smoke the feature in the app when feasible.

Pitfalls And Gotchas

  • Adding frontend API calls without capability permission.
  • Using browser file inputs where a Tauri dialog or filesystem plugin is expected.
  • Exposing broad shell or filesystem access to the webview.
  • Returning unstructured string errors that the frontend cannot classify.
  • Forgetting platform-specific bundle, signing, entitlement, or WebView runtime requirements.
  • Testing only the web dev server and not the Tauri shell.
  • Assuming mobile support without checking plugin compatibility.

Progressive Disclosure

Start from the exact boundary the task touches. Load broader Tauri packaging, updater, plugin, or mobile guidance only when the current change crosses those areas. Keep ordinary frontend and Rust advice delegated to their narrower skills when Tauri is not the deciding factor.

Verification Pattern

  • Confirm Rust commands compile and are registered.
  • Confirm frontend invokes use the correct command name and argument shape.
  • Confirm capability files allow only the intended windows, plugins, paths, and operations.
  • Run the repo's formatter, typecheck, and Tauri dev or build command.
  • Smoke the app in a Tauri shell, not just in the browser.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.