From tauri
Implement or review Tauri 2 Rust commands, frontend invoke wrappers, events, Channels, custom errors, state, official plugins, or custom Tauri plugins across Rust, JavaScript, permissions, and mobile surfaces.
How this skill is triggered — by the user, by Claude, or both
Slash command
/tauri:tauri-ipc-pluginsThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this skill for the Rust/frontend boundary: `#[tauri::command]`,
Use this skill for the Rust/frontend boundary: #[tauri::command],
invoke, events, Channels, plugin commands, plugin permissions, and typed JS
wrappers.
Rust:
use serde::{Deserialize, Serialize};
#[derive(Deserialize)]
struct Request {
path: String,
}
#[derive(Serialize)]
struct Response {
ok: bool,
}
#[tauri::command]
fn do_work(request: Request) -> Result<Response, String> {
Ok(Response { ok: !request.path.is_empty() })
}
Register once:
tauri::Builder::default()
.invoke_handler(tauri::generate_handler![do_work])
Frontend:
import { invoke } from "@tauri-apps/api/core";
export function doWork(path: string): Promise<{ ok: boolean }> {
return invoke("do_work", { request: { path } });
}
invoke calls through UI.unwrap() and panics in command paths. Return typed/serialized errors.For every plugin, verify all surfaces:
package.json;src-tauri/Cargo.toml;.plugin(...) registration in src-tauri/src/lib.rs;src-tauri/capabilities/*;Mobile plugins may expose plugin:<name>|checkPermissions and
plugin:<name>|requestPermissions; check permission state before requesting.
Run targeted Rust and frontend tests. Use Tauri API mocks for invoke wrappers
and cargo test --manifest-path src-tauri/Cargo.toml for Rust logic. If plugin
permissions changed, run the Tauri shell path too.
npx claudepluginhub xopoko/plug-n-skills --plugin tauriGuides test-driven development for Django applications using pytest-django, factory_boy, and Django REST Framework. Covers red-green-refactor workflow, conftest fixtures, and coverage reporting.