Token导航 LogoToken导航TokenDH.com
研究检索操作浏览器github未标认证来源可访问许可证需确认审计通过

debug-tauri-devtools调试 Tauri devtools

Agent Skill

debug-tauri-devtools 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

233

周安装

10

GitHub Stars

5

下载量

82
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:debug-tauri-devtools(调试 Tauri devtools)
来源仓库:https://github.com/yigitkonur/skills-by-yigitkonur
仓库路径:skills/debug-tauri-devtools
安装命令:
npx skills add https://github.com/yigitkonur/skills-by-yigitkonur --skill debug-tauri-devtools
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/yigitkonur/skills-by-yigitkonur --skill debug-tauri-devtools

简介

扩展 Tauri 应用调试能力至 Rust 侧,弥补浏览器开发者工具的不足。

  • 适用于 invoke() 调用异常、插件配置错误或资源加载失败等问题。
  • 集成 CrabNebula DevTools 展示 IPC 追踪、能力状态与资产解析详情。
  • 需确保开发环境已安装对应版本的 Tauri CLI 与调试插件。
  • debug-tauri-devtools 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

SKILL.md

Debug Tauri DevTools

Use CrabNebula DevTools for the part of a Tauri app that browser DevTools cannot see: Rust-side logs, IPC spans, resolved runtime config, capability state, plugin wiring, and bundled asset resolution.

Trigger

Activate when the user reports or the agent observes any of these:

  • a Tauri invoke() call fails, hangs, is unexpectedly slow, or returns wrong data
  • a Rust panic/error exists but the failing module or span is unclear
  • a plugin, capability, or window-scope permission appears broken
  • an asset loads in dev but not in build, or exists locally but not in the bundle
  • behavior differs across desktop/mobile or debug/build modes
  • you are about to add println!(), guess at serde/config issues, or inspect the browser Network tab for Tauri IPC
  • CrabNebula DevTools needs to be installed, configured, or is not connecting

When NOT to use this skill

Do not activate for:

  • DOM, CSS, layout, browser-only JavaScript, or framework component debugging
  • HTTP/fetch/WebSocket debugging that lives in the browser network stack
  • static code review without a live runtime symptom
  • cases where the problem is already proven and you only need to implement a fix

Use browser DevTools for webview problems. Use CrabNebula DevTools when the unknown lives behind the webview.

First-time setup

If DevTools is not installed in the project, complete installation before entering the debugging workflow:

  1. Check: search src-tauri/Cargo.toml for tauri-plugin-devtools. If absent, or if the app entrypoint (src-tauri/src/lib.rs, main.rs, or equivalent) does not register the plugin via tauri_plugin_devtools::init() / Builder::default().init(), DevTools is not installed.
  2. Install: follow the steps in references/setup/installation-and-config.md. Before choosing a pattern, check src-tauri/Cargo.toml for tauri-plugin-log with rg -n "tauri-plugin-log" src-tauri/Cargo.toml.
  3. Restart: stop the running app and restart with cargo tauri dev. First run after adding DevTools triggers a longer compilation. Wait for either the raw listener URL (ws://127.0.0.1:...) or the CrabNebula dashboard URL (https://devtools.crabnebula.dev/dash/...) to appear in terminal output.
  4. Verify: confirm DevTools connects. UI mode: Console shows initialization logs, Config → Plugins lists registered plugins, and invoking any #[tauri::command] produces an entry in Calls. Terminal-only mode: confirm the startup banner/URL prints, trigger a command, and confirm matching tracing output reaches stderr.
  5. Continue: after verification, proceed to Phase 2 below.
Note: Tauri IPC commands (#[tauri::command]) are automatically instrumented by Tauri core. They appear in the Calls tab without any additional code.

If you do not have a live repro yet

  • If the task is installation or connectivity only and you already have a runnable Tauri project, use the smoke-test path in references/setup/installation-and-config.md: add a temporary #[tauri::command], invoke it once from the frontend, and verify the DevTools banner plus one command trace.
  • If the task is a real bug diagnosis but no runnable Tauri project or failing user action exists yet, stop and ask for the app or a minimal repro. Do not invent a server/project just to keep the workflow moving.

Rust-side visibility map

All "Open first" instructions below require DevTools to be connected. If DevTools is not running, complete the First-time setup section above.
If the symptom is...Open firstCapture this evidence
Rust panic, missing log source, noisy tracing, or startup failureConsolelevel, target module, message, fields, startup timestamp
invoke() error, wrong response, serialization mismatch, hang, or slow commandCallscommand name, Arguments, Response, Status, Duration, child spans
Permission error, plugin not initialized, wrong window scope, or config mismatchConfig, then ConsoleSecurity capabilities, Plugins section, startup errors, resolved overrides
Asset missing, wrong runtime path, or dev/build differenceSources, then Configwhether the file exists in the bundle, exact runtime path, bundle/resources/CSP settings
Desktop works but mobile breaksConsole + Calls on deviceplatform-specific errors, path differences, permission/init differences
⚠️ Steering: The visibility map assumes DevTools is connected and showing data. If DevTools shows a blank dashboard or no data, this is ITSELF the problem to solve — go to references/setup/installation-and-config.md, not Phase 2.

Use the minimal reading sets at the bottom of this file to load the right references for each symptom category.

Workflow

Follow this order. Do not skip from symptom straight to code edits.

Phase 1 — Establish the failing path

⚠️ Steering: Do NOT skip the DevTools detection check. Confirm tauri-plugin-devtools in Cargo.toml before spending time on runtime diagnosis.
  • Name the exact action that reproduces the issue.
  • Note expected vs actual behavior.
  • Record environment: cargo tauri dev, debug build, release build, desktop platform, or mobile target.
  • DevTools check: search src-tauri/Cargo.toml for tauri-plugin-devtools. If absent, or if the app entrypoint does not register the plugin via tauri_plugin_devtools::init() / Builder::default().init(), DevTools is not installed. Follow the First-time setup section above, then return here and continue to Phase 2.

Phase 2 — Observe before theorizing

⚠️ Steering: If operating as an AI agent without visual DevTools UI, do NOT claim you "opened the Calls tab." Use terminal output from cargo tauri dev or ask the user for screenshots, and state clearly which evidence path you used.
  • Start in the single tab that matches the symptom (see visibility map).
  • Capture exact evidence before browsing other surfaces:

- Console: target path, error text, fields, panic location - Calls: command, args, response/error, timing, nesting - Config: capabilities, plugin registration, build/bundle/security values - Sources: bundled file presence, exact path, case-sensitive mismatches

  • Prefer built-in DevTools filters and sorting before changing code or RUST_LOG.

Agent-mode evidence gathering: When operating without a visual DevTools UI (e.g., an AI agent in a terminal), evidence comes from: (1) terminal output from cargo tauri dev, (2) targeted tracing::info!() or #[tracing::instrument] additions where evidence is missing, and (3) user-provided DevTools screenshots or tab exports. Use these sources in place of the visual tab instructions above.

Terminal-only minimum verification loop: When you cannot see the UI, treat this as the minimum viable proof:

  1. cargo tauri dev prints the DevTools listener banner or dashboard URL
  2. stderr shows proof that the subscriber is live: either an existing startup trace/event, or the first invoked command span
  3. reproducing the command/action prints a matching trace or span to stderr
  4. if the app is otherwise quiet and you needed extra instrumentation, the added tracing::info! or #[tracing::instrument] event appears exactly where expected

If any item is missing, stop and report which visibility layer is absent instead of claiming DevTools is working.

Shortcut for capability/permission errors: If the symptom is clearly a permission error and capability files are accessible, you may inspect src-tauri/capabilities/*.json directly to identify missing permission identifiers. Cross-reference with the error message and references/plugins/capabilities-and-permissions.md. If the fix is unambiguous (a specific permission string is missing), proceed directly to Phase 5. Use DevTools for verification in Phase 6 if available.

Phase 3 — Form 1–3 falsifiable hypotheses

⚠️ Steering: Every hypothesis MUST map to a Phase 4 routing entry. If it does not, you have not yet chosen an inspection surface. Use references/performance/profiling-and-optimization.md for throughput or sequencing hypotheses that do not fit the other branches.

Each hypothesis must identify:

  1. the suspected failure mode
  2. the exact evidence that would confirm it (from DevTools or static inspection)
  3. the next inspection surface or reference (refer to the Phase 4 routing list below)

Good hypothesis shapes:

  • "JS arguments do not match the Rust Deserialize struct."
  • "The command is blocked on uninstrumented file I/O or lock contention."
  • "The plugin is registered, but the capability or window scope is missing."
  • "The asset exists in source control but is absent from the bundle."
  • "Mobile uses a platform-specific path or permission assumption that desktop does not."
  • "Items are processed sequentially — duration scales linearly with input count."
  • "The Tauri ACL permission identifier is missing vs an OS-level permission error."

Phase 4 — Inspect the hypothesis path

⚠️ Steering: Before adding #[tracing::instrument], verify that tracing = "0.1" is in Cargo.toml [dependencies]. Missing this dependency causes a compile error.
Before inspecting, review the Decision Rules section below — it contains key conditional routing for common evidence patterns.

Use the narrowest inspection path that can confirm or reject the hypothesis:

  • Rust handler / serde / async / state issueCalls + references/rust/backend-debugging.md
  • Need deeper span detailreferences/devtools-ipc-span-anatomy.md
  • Permission / capability / plugin init issueConfig + Console + references/plugins/capabilities-and-permissions.md
  • Sequential/parallel processing or O(n) scalingCalls + references/performance/profiling-and-optimization.md
  • Log visibility or missing dependency logsreferences/rust/logging-and-tracing.md
  • Subscriber / tauri-plugin-log / custom integration questionreferences/devtools-integration-patterns.md
  • Asset / bundle / build-mode mismatchSources + Config + references/devtools-common-debugging-scenarios.md
  • Mobile-only divergencereferences/mobile/android-ios-debugging.md
  • Performance bottleneck or profiling neededreferences/performance/profiling-and-optimization.md
  • Need tool internals or pipeline limitsreferences/devtools-architecture-deep-dive.md

If evidence is still incomplete, add visibility instead of guessing. See Guardrails for what NOT to do when adding instrumentation.

  • Ensure tracing = "0.1" is in [dependencies] in Cargo.toml. For async instrumentation with .instrument(), also add use tracing::Instrument;.
  • For slow/missing spans: add #[tracing::instrument] to internal Rust functions. If the slow code is inline (not in a separate function), use manual spans: let _span = tracing::info_span!("process_item", item = %item).entered(); around the slow section.
  • For panics: enable RUST_BACKTRACE=1.
  • For missing dependency logs: use the split()/attach_logger() pattern (see references/devtools-integration-patterns.md).
  • For dev/build or desktop/mobile differences: compare the same repro in both environments before changing code.

Phase 5 — Separate diagnosis from repair

⚠️ Steering: A "narrow fix" means targeting the confirmed bottleneck — e.g., parallelizing a loop proven slow by span evidence. Do NOT interpret "avoid refactors" as "never change code structure." The guardrail prevents speculative changes, not evidence-based structural fixes.

Only edit app code/config after one hypothesis is confirmed by evidence. See Guardrails on keeping diagnosis and repair separate.

When you do change something:

  • Fix the narrow failing path, not nearby speculative code. A "narrow fix" targets the confirmed bottleneck — for example, parallelizing a sequential loop proven slow. This is not a "refactor" in the guardrail sense. A "refactor" would be restructuring unrelated code, renaming modules, or adding abstractions not required by the fix.
  • For the fix approach, consult the reference file that matches the confirmed diagnosis — e.g., references/performance/profiling-and-optimization.md for performance issues, references/plugins/capabilities-and-permissions.md for permission issues.
  • Keep temporary tracing in place until the verification pass.
  • Avoid cleanup refactors until the bug is proven fixed.

Phase 6 — Verify in the same surface

⚠️ Steering: You MUST restart cargo tauri dev after code changes. Otherwise you risk verifying against stale runtime state.

Rebuild the app (e.g., restart cargo tauri dev), reconnect DevTools, and reproduce the same user action or invoke call. Confirm the evidence changed where it originally failed:

  • Calls: status, response, duration, or child span structure is now correct. Compare duration against the classification table in references/devtools-tab-reference.md — "correct" means the symptom is resolved and the absolute duration falls in an acceptable range for the use case.
  • Console: error/panic is gone or replaced by the expected trace sequence
  • Config: missing capability/plugin/config value is now present in resolved config
  • Sources: missing asset/path mismatch is resolved at runtime
  • Mobile/build comparisons: previously divergent evidence now matches the expected platform behavior

Remove DEBUG-ONLY temporary instrumentation (e.g., extra tracing::debug!() events added solely for this diagnosis). KEEP structural instrumentation (#[tracing::instrument] on meaningful functions) for ongoing visibility.

Decision rules

  • If DevTools is not installed in the project, install it before any debugging. All other decision rules require DevTools to be running.
  • If one child span dominates the total duration, optimize that child first.
  • If the parent span is slow but child spans are missing or too small, instrument internal Rust code before refactoring.
  • If the Calls response already shows a permission error (or the browser console shows an invoke() rejection), inspect resolved capabilities and window scope before touching the command handler.
  • If no IPC call appears at all, check whether the frontend actually invoked the command, whether the command name is wrong, whether a capability blocked it, or whether DevTools was initialized too late.
  • If Console is noisy, use UI filters first; only narrow RUST_LOG when throughput is too high to reason about.
  • If release builds have no DevTools data, treat that as expected #[cfg(debug_assertions)] behavior and reproduce with a debug-capable target before drawing conclusions.
  • If desktop and mobile differ, compare Console and Calls evidence on both platforms before sharing a fix.
  • If the error message contains "not allowed" or "capability", this is a Tauri ACL error. If it contains "os error 13" or "Permission denied", this is an OS-level error. These require completely different fixes — do not confuse them.
  • If you cannot visually inspect DevTools (e.g., you are an AI agent), use cargo tauri dev terminal output as your primary evidence source. The DevTools subscriber prints tracing events to stderr.

Common agent mistakes

MistakeImpactPrevention
Skipping DevTools installation checkEntire diagnosis cycle wasted on tool that isn't installedAlways run Phase 1 DevTools check first
Using println!() instead of tracingOutput doesn't appear in DevTools, diagnosis failsUse tracing::info!(), tracing::debug!() etc.
Fabricating DevTools visual evidenceAgent claims to "see" tab data it cannot accessUse terminal output or ask user for screenshots
Forgetting tracing dependencyCompile error misdiagnosed as Tauri issueCheck Cargo.toml for tracing = "0.1" before instrumenting
Not restarting after code changesVerification against stale binaryAlways restart cargo tauri dev in Phase 6
Confusing ACL vs OS permission errorsWrong fix applied (capability vs filesystem)Check error message: "not allowed" = ACL, "os error" = OS
Using fs:read instead of fs:allow-read-text-fileInvalid Tauri v2 permission identifierAlways use full v2 ACL identifiers
Running cargo tauri dev from src-tauri/beforeDevCommand fails (can't find package.json)Run from project root where package.json lives
beforeDevCommand points to a missing scriptApp exits before DevTools ever startsAdd the missing package-manager script or temporarily clear beforeDevCommand during the smoke test

Guardrails

  • Do not use Browser Network tools as proof for Tauri IPC behavior.
  • Do not change serde structs, capability files, plugin order, or asset paths without first reading the runtime evidence that points there.
  • Do not use println!() as your primary Rust debugging surface; use tracing so the data stays in DevTools.
  • Do not instrument every function. Add spans only where evidence is missing.
  • Do not convert a diagnosis task into a broad refactor.
  • Do not claim a root cause until you can point to a concrete log, span, config value, permission, or asset path and point to the exact evidence.

Do this, not that

Do thisNot that
Read Calls Arguments/Response before touching Rust command typesGuess at serde mismatches from source alone
Check Config Security and Plugins sections before editing capability filesBlindly patch src-tauri/capabilities/*.json
Use tracing macros and targeted #[tracing::instrument]Scatter println!() or instrument everything
Use Sources as runtime truth for bundled filesAssume the dev server path matches the build bundle
Compare desktop vs mobile or dev vs build evidence in the same tabPort a desktop fix to mobile/build without proof
Keep diagnosis and repair as separate stepsMake speculative code edits while the cause is still ambiguous

Recovery paths

  • DevTools will not connect or shows no datareferences/setup/installation-and-config.md
  • tauri-plugin-log conflicts or dependency logs are missingreferences/rust/logging-and-tracing.md, references/devtools-integration-patterns.md
  • The command is slow or hung but the waterfall is too shallowreferences/devtools-ipc-span-anatomy.md, references/rust/backend-debugging.md
  • Known symptom, unclear next movereferences/devtools-common-debugging-scenarios.md
  • Need field-by-field help with tabs, filters, or exportsreferences/devtools-tab-reference.md
  • Need performance or overhead guidance beyond one commandreferences/performance/profiling-and-optimization.md
  • Need to understand pipeline limitations or internal behaviorreferences/devtools-architecture-deep-dive.md
  • cargo tauri dev exits before any DevTools banner appears because the frontend dev script is missing → inspect src-tauri/tauri.conf.json beforeDevCommand, add the missing script, or temporarily clear it for a smoke test before returning to the normal workflow
  • Permission/capability error without DevTools → Inspect src-tauri/capabilities/*.json directly. Compare with references/plugins/capabilities-and-permissions.md Common Plugin Permission Identifiers table. Add the missing permission identifier and restart the app.

Minimal reading sets

First-time installation

  • references/setup/installation-and-config.md
  • If your project uses tauri-plugin-log, also read references/devtools-integration-patterns.md

DevTools setup or connectivity is the problem

  • references/setup/installation-and-config.md
  • references/rust/logging-and-tracing.md
  • references/devtools-integration-patterns.md

An IPC command fails, hangs, returns wrong data, or is slow

  • references/devtools-ipc-span-anatomy.md
  • references/devtools-common-debugging-scenarios.md
  • references/rust/backend-debugging.md
  • references/performance/profiling-and-optimization.md

I need better Rust-side visibility

  • references/rust/logging-and-tracing.md
  • references/rust/backend-debugging.md
  • references/devtools-tab-reference.md

A plugin, capability, or resolved config looks wrong

  • references/plugins/capabilities-and-permissions.md
  • references/devtools-tab-reference.md
  • references/devtools-common-debugging-scenarios.md

Permission error on a specific command (quick path)

  • references/plugins/capabilities-and-permissions.md — may be the only file needed

It works in dev/desktop but breaks in build/mobile or assets are missing

  • references/devtools-common-debugging-scenarios.md
  • references/mobile/android-ios-debugging.md
  • references/setup/installation-and-config.md
  • references/devtools-tab-reference.md

I need subscriber, performance, or internal pipeline details

  • references/devtools-integration-patterns.md
  • references/performance/profiling-and-optimization.md
  • references/devtools-architecture-deep-dive.md

Reference routing

FileLoad when
references/setup/installation-and-config.mdDevTools is not installed, not connecting, registered too late, or you need debug-only/build-mode setup rules.
references/rust/logging-and-tracing.mdConsole evidence is missing/noisy, you need tracing guidance, RUST_LOG strategy, or tauri-plugin-log bridging.
references/rust/backend-debugging.mdThe problem lives in command handlers, state, serde, async blocking, deadlocks, panics, or external Rust debugging tools.
references/devtools-ipc-span-anatomy.mdYou need to interpret waterfall timing, nesting, gap analysis, missing spans, or targeted span instrumentation.
references/devtools-common-debugging-scenarios.mdThe symptom matches a known pattern and you want the fastest route from observation to likely root cause.
references/devtools-tab-reference.mdYou need tab columns, filters, sorting, export behavior, or precise UI field meanings.
references/plugins/capabilities-and-permissions.mdPermissions, capabilities, plugin initialization, window scope, or dev/build config resolution is suspect.
references/mobile/android-ios-debugging.mdThe bug is mobile-only or you need Android/iOS connection, logging, or platform-specific debugging steps.
references/performance/profiling-and-optimization.mdCalls show slow spans, redundant invokes, profiling questions, or you need to reason about overhead and optimization tradeoffs.
references/devtools-integration-patterns.mdYou need subscriber wiring, tauri-plugin-log coexistence, cfg patterns, or advanced integration guidance.
references/devtools-architecture-deep-dive.mdYou need internal pipeline, gRPC server, threading, or architecture-level constraints to explain missing/odd behavior.

Final reminder

Use CrabNebula DevTools to collect runtime truth, not to justify a hunch. Stay in observation-first mode until you can name the failing command, log target, config value, permission, or asset path and point to the exact evidence.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.25%
按下载量换算30

Claude

31.58%
按下载量换算26

Cursor

18.11%
按下载量换算15

Gemini CLI

9.79%
按下载量换算8

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

操作浏览器

该 Skill 可能涉及浏览器控制能力,使用时可能读取或操作网页内容,需要在受控环境中确认权限边界。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills