When to use this skill
ALWAYS use this skill when the user mentions:
- Preventing multiple app instances from running
- Handling second-launch arguments or deep links
- Focusing the existing window when re-launched
Trigger phrases include:
- "single instance", "prevent duplicate", "second launch", "one instance only"
How to use this skill
- Install the single-instance plugin:
cargo add tauri-plugin-single-instance - Register the plugin in your Tauri builder with a callback:
tauri::Builder::default() .plugin(tauri_plugin_single_instance::init(|app, args, _cwd| { // Focus the main window when a second instance is launched if let Some(window) = app.get_webview_window("main") { window.set_focus().unwrap(); } // Forward args to the running instance println!("Second launch args: {:?}", args); })) - The callback receives: the app handle, command-line arguments, and the working directory from the second launch
- Combine with deep-linking to route
myapp://URLs from the second instance to the existing window - Combine with CLI plugin to forward parsed arguments to the running app
- The second instance exits automatically after the callback runs
Outputs
- Single-instance plugin setup with window focus callback
- Second-launch argument forwarding pattern
- Integration with deep-linking and CLI plugins
References
- https://v2.tauri.app/plugin/single-instance/
Keywords
tauri single instance, prevent duplicate, second launch, window focus, args