Get the FREE Ultimate OpenClaw Setup Guide →

debug-tauri

npx machina-cli add skill aiskillstore/marketplace/debug-tauri --openclaw
Files (1)
SKILL.md
4.8 KB

Tauri WebView Debugger

Automated debugging workflow for Tauri applications using tauri-plugin-debug-tools with official plugin integration.

Prerequisites

  • tauri-plugin-debug-tools installed and registered
  • tauri-plugin-log (v2.0+): Official logging plugin for automatic console collection
  • tauri-plugin-screenshots (v2.0+): Cross-platform screenshot capture
  • Debug permissions enabled: debug-tools:default, log:default, screenshots:default
  • Frontend logger initialized via attachConsole() (recommended for automatic log forwarding)

Quick Start

Run TAURI_APP_NAME=<app-binary-name> scripts/capture.sh to verify process and capture screenshot.

If process not found, start your dev server (e.g., tauri dev) and retry.

Debug Workflow

Copy this checklist to track progress:

Debug Progress:
- [ ] Step 1: Verify process status
- [ ] Step 2: Capture screenshot
- [ ] Step 3: Collect console logs
- [ ] Step 4: Capture WebView state
- [ ] Step 5: Analyze findings
- [ ] Step 6: Generate debug report
- [ ] Step 7: Propose fixes

Step 1: Verify Process Status

Run: TAURI_APP_NAME=<your-app> scripts/capture.sh

This checks if the app is running and captures an initial screenshot.

Step 2: Capture Screenshot

Via Plugin API (Recommended):

import { captureMainWindow } from "tauri-plugin-debug-tools/screenshotHelper";
const imagePath = await captureMainWindow();

Legacy: capture.sh script (macOS screencapture). See SCREENSHOTS.md for details.

Step 3: Collect Console Logs

Console Logger (Frontend - Recommended):

The consoleLogger automatically collects frontend logs and errors in a ring buffer and flushes them to a temp file.

// Import at app entry point to initialize automatic collection
import "tauri-plugin-debug-tools/consoleLogger";

// Use debugTools for explicit logging
import { debugTools } from "tauri-plugin-debug-tools/consoleLogger";
debugTools.log("App started");
debugTools.error("Something went wrong");

Finding consoleLogger Log Files:

import { invoke } from '@tauri-apps/api/core';

// Get actual log file path
const logPath = await invoke('plugin:debug-tools|reset_debug_logs');
console.log('Console logs stored at:', logPath);

Platform-specific consoleLogger locations:

  • macOS: /tmp/tauri_console_logs_[app_name]_[pid].jsonl
  • Linux: /tmp/tauri_console_logs_[app_name]_[pid].jsonl
  • Windows: %TEMP%\tauri_console_logs_[app_name]_[pid].jsonl

Where [app_name] is the application name and [pid] is the process ID.

Backend Logs (tauri-plugin-log):

import { logger } from "tauri-plugin-debug-tools/logAdapter";

// Initialize once at app startup
const detach = await logger.initialize();

// Logs auto-forwarded to platform-specific location
logger.info("App started");
logger.error("Something went wrong");

Backend log locations:

  • macOS: ~/Library/Logs/{bundle_id}/debug.log
  • Linux: ~/.local/share/{bundle_id}/logs/debug.log
  • Windows: {LOCALAPPDATA}\{bundle_id}\logs\debug.log

Alternative: Use debugBridge API. See IPC_COMMANDS.md for all methods.

Step 4: Capture WebView State

import { captureWebViewState } from "tauri-plugin-debug-tools/debugBridge";
const state = await captureWebViewState();

Returns: { url, title, user_agent, viewport }

Step 5: Analyze Findings

  • Visual: Check screenshot for UI issues, errors, layout problems
  • Logs: Review errors, warnings, patterns
  • State: Verify URL, viewport, user agent
  • Performance: Check for memory leaks, high CPU usage

Step 6: Generate Debug Report

Use template in REPORT_TEMPLATE.md.

Step 7: Propose Fixes

Based on collected evidence:

  • Identify root cause
  • Suggest specific code changes
  • Provide implementation steps

References

IPC Commands: IPC_COMMANDS.md - Console logs, WebView state, debug commands Screenshots: SCREENSHOTS.md - Capture methods and troubleshooting Troubleshooting: TROUBLESHOOTING.md - Common errors and solutions Report Template: REPORT_TEMPLATE.md - Structured debug report format

Legacy reference: REFERENCE.md contains combined documentation (will be deprecated)

Source

git clone https://github.com/aiskillstore/marketplace/blob/main/skills/8beeeaaat/debug-tauri/SKILL.mdView on GitHub

Overview

Automates debugging of Tauri WebView apps using tauri-plugin-debug-tools with official plugins tauri-plugin-log and tauri-plugin-screenshots. It performs process verification, captures automated screenshots, collects console logs, and analyzes WebView state to help identify UI and runtime issues.

How This Skill Works

The workflow relies on tauri-plugin-debug-tools integrated with tauri-plugin-log and tauri-plugin-screenshots. It verifies the running process, captures a screenshot via the plugin, collects frontend console logs, and captures WebView state including URL, title, user_agent, and viewport for analysis. The steps map to Step 1 through Step 7 in the debug workflow, culminating in a generated debug report and proposed fixes.

When to Use It

  • Debug a Tauri WebView app in development
  • Investigate WebView issues or rendering problems
  • Analyze runtime errors and crashes in the UI
  • Troubleshoot cross-platform WebView behavior
  • Validate fixes with automated screenshots and logs

Quick Start

  1. Step 1: Run TAURI_APP_NAME=<app-binary-name> scripts/capture.sh to verify process and capture a screenshot
  2. Step 2: If the process is not found, start your dev server (tauri dev) and retry
  3. Step 3: Follow the Debug Workflow: verify process, capture screenshot, collect logs, capture WebView state, analyze findings, generate debug report, and propose fixes

Best Practices

  • Install and register tauri-plugin-debug-tools along with tauri-plugin-log and tauri-plugin-screenshots
  • Enable debug permissions: debug-tools:default, log:default, screenshots:default
  • Initialize frontend logging with attachConsole (recommended for automatic log forwarding)
  • Use captureMainWindow for reliable screenshots and consult SCREENSHOTS.md for details
  • Run the Debug Progress checklist and compile results into a debug report

Example Use Cases

  • UI misalignment or rendering glitches detected in the WebView across navigate cycles
  • Runtime errors surfaced in frontend logs and corroborated by screenshots
  • WebView loads a blank or stale page due to incorrect state capture
  • Cross-platform screenshot differences reveal platform-specific UI regressions
  • Debug report generated with steps to reproduce and proposed fixes

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers