Agent skill

Tauri Agent Dev

by fjrevoredo in fjrevoredo/mini-diarium

Spawn, probe, and stop Mini Diarium's live Windows Tauri dev app with WebView2 CDP enabled, then hand control to agent-browser for real UI inspection.

MITAuto-check passedProductivity & Automation

Install Tauri Agent Dev

skills CLI
$ npx skills add fjrevoredo/mini-diarium --skill tauri-agent-dev -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install fjrevoredo/mini-diarium tauri-agent-dev --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/fjrevoredo/mini-diarium.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/tauri-agent-dev .claude/skills/tauri-agent-dev && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
tauri-agent-dev
GitHub stars
308
Token cost
~5.2k tokens
SKILL.md length
2,365 words
Files
2
Skills in repo
41
Repo updated
First seen
Licence
MIT

At a glance

Spawn, probe, and stop Mini Diarium's live Windows Tauri dev app with WebView2 CDP enabled, then hand control to agent-browser for real UI inspection.

  • Works in 5 steps: agent-browser snapshot → click or fill controls → re-snapshot after meaningful UI… → …
  • Wants to manually test the real desktop UI
  • SKILL.md covers Platform Support, Start A Session, Drive The UI and Stable Selectors, plus 5 more sections
  • Calls bun

What it does

Tauri Agent Dev is an agent skill from fjrevoredo/mini-diarium. Spawn, probe, and stop Mini Diarium's live Windows Tauri dev app with WebView2 CDP enabled, then hand control to agent-browser for real UI inspection. Use this whenever the user wants to manually test the real desktop UI, drive the dev app, verify a bug or preference in the actual window, inspect localStorage, take a real screenshot, or "actually try it in the app" instead of relying only on unit tests or WDIO. Triggers: manually test the UI, drive the dev app, verify in the real UI, agent dev mode, spawn the dev…

Its SKILL.md is about 5.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).

It sits in Productivity & Automation, covering Browser automation and Unit testing. It works with Tauri. The repository describes itself as: A local-only journal with serious encryption. Free, open source, and never touches the internet. The licence is MIT.

When your agent uses it

  • Wants to manually test the real desktop UI
  • Drive the dev app
  • Preference in the actual window
  • Inspect localStorage

Example prompts

  • “actually try it in the app”
  • “/tauri-agent-dev”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. agent-browser snapshot
  2. click or fill controls
  3. re-snapshot after meaningful UI transitions
  4. use eval for DOM or localStorage reads
  5. take screenshots when the user needs proof

What it can do on your machine

Read from SKILL.md and the folder at commit 3ddc537. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • bun

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Tauri Agent Dev loads about 5.2k tokens when it runs. Until then it costs about 151 tokens; SKILL.md has 2,365 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~151
When it runs · the whole SKILL.md, loaded when a task matches
~5.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from fjrevoredo/mini-diarium at commit 3ddc537, republished under its MIT licence (© fjrevoredo). 2,365 words, ~5,150 tokens.

Download SKILL.mdSave it as .claude/skills/tauri-agent-dev/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
tauri-agent-dev
description
Spawn, probe, and stop Mini Diarium's live Windows Tauri dev app with WebView2 CDP enabled, then hand control to agent-browser for real UI inspection. Use this whenever the user wants to manually test the real desktop UI, drive the dev app, verify a bug or preference in the actual window, inspect localStorage, take a real screenshot, or "actually try it in the app" instead of relying only on unit tests or WDIO. Triggers: manually test the UI, drive the dev app, verify in the real UI, agent dev mode, spawn the dev app, open the running app and check, inspect the live Tauri window.

Tauri Agent Dev

Platform Support

  • Use this skill on Windows only.
  • Do not use it on macOS or Linux. WebView2 CDP is the mechanism here; the other Tauri webviews do not match this flow.

Start A Session

Run everything from the repo root with the Windows toolchain.

Use the PowerShell tool, not Bash + cmd.exe, for every command in this skill. agent:dev:start, agent:dev:probe, agent:dev:stop, and agent-browser connect are exactly the kind of background-spawning / long-running commands where Bash piped through cmd.exe reliably returns only the cmd.exe banner with no real output — the same failure mode root CLAUDE.md calls out for website:build-static, but it is not specific to that one script. If a command run this way returns nothing but the banner, that is the signature of this issue, not a sign the command failed — retry it through the PowerShell tool before concluding anything is wrong.

agent:dev:start does not return to you — always launch it with run_in_background: true. The script itself is written to exit once CDP is up (it spawns tauri dev, polls, prints Tauri dev running., and falls off the end of main()), but through this tool chain the call stays attached to the live process tree and is only reported as complete when you later run agent:dev:stop. Waiting on it in the foreground burns the entire tool timeout and teaches you nothing: a foreground call with a 400 s timeout will be force-backgrounded at 400 s even though the app window opened ~60 s in. Launch it backgrounded and use probe as the readiness signal:

bash
# 1. Launch — run_in_background: true, do NOT wait on this call
bun run agent:dev:start

# 2. Readiness — this one DOES return, in well under a second
bun run agent:dev:probe

The same applies to agent-browser connect <port>: it does not return either. Launch it backgrounded (or simply issue it and move on) and treat the first successful agent-browser snapshot as proof the connection is live — snapshot returns normally.

Useful flags:

bash
bun run agent:dev:start -- --port 9223
bun run agent:dev:start -- --timeout 180
bun run agent:dev:start -- --use-real-config

What start does:

  • launches tauri dev
  • enables WebView2 remote debugging
  • defaults to a sandbox under .agent-dev/sandbox/
  • seeds .agent-dev/sandbox/app/config.json on first run so the frontend auto-selects the sandbox journal
  • isolates WebView storage under .agent-dev/sandbox/webview/ so localStorage does not leak across runs
  • writes runtime state to .agent-dev/state.json
  • writes logs to .agent-dev/dev.log

Detecting readiness: don't grep the raw start output for guessed keywords ("ready", "listening", etc.) — per the note above, start never hands its output back, so its stdout is not a readiness signal at all through this tool chain. agent:dev:probe is the purpose-built readiness check and returns structured JSON ({"running":true,...}) the moment the CDP target is live. Poll it directly instead of building an ad hoc log-watcher:

bash
# Poll probe every few seconds until it reports running, instead of waiting on a fixed
# timer or grepping dev.log for inferred markers.
until bun run agent:dev:probe 2>&1 | grep -q '"running":true'; do sleep 3; done

Cold builds take 30-90 seconds; pass --timeout 180 if a Rust rebuild is expected. If the app window is already visibly open (the user can see it), trust that over a probe/log timeout — the window appearing means the session is up even if a polling loop hasn't caught up yet.

After start succeeds, connect the separate browser-driving layer:

bash
agent-browser connect 9222

If you changed the port, connect to that port instead.

Drive The UI

After agent-browser connect, use the normal browser-driving loop:

  1. agent-browser snapshot
  2. click or fill controls
  3. re-snapshot after meaningful UI transitions
  4. use eval for DOM or localStorage reads
  5. take screenshots when the user needs proof

PowerShell notes:

  • Quote @eNNN refs. Use agent-browser click '@e5', not agent-browser click @e5.

  • Pass every non-trivial eval script as a single-quoted here-string, never as an inline double-quoted argument. PowerShell eats backslash-escaped quotes inside a "…" argument, so JS containing quoted selectors arrives at the browser mangled. This call:

    powershell
    agent-browser eval "(function(){ document.querySelectorAll('a[aria-label^=\"Open entry\"]') })()"

    fails with 'a[aria-label^= Open entry]' is not a valid selector — the inner quotes were stripped, not escaped. The failure looks like a bad selector, so it sends you rewriting correct JS. Use:

    powershell
    $js = @'
    (function(){
      const rows = Array.from(document.querySelectorAll('li button'))
        .filter(b => (b.getAttribute('aria-label') || '').startsWith('Open entry'));
      return { count: rows.length };
    })()
    '@
    agent-browser eval $js

    The @'…'@ form is literal — no $, backtick, or quote interpretation — so the JS reaches the browser byte-for-byte. The closing '@ must be at column 0 on its own line. As a bonus, startsWith/includes filtering in JS avoids CSS attribute-selector quoting entirely.

Stale ref warning: @eNNN refs are assigned at snapshot time. Any DOM mutation (tab switch, scroll, dialog open/close) can reassign refs so an old ref silently targets a different element. For controls inside scrollable panels or dialogs, prefer CSS selectors or JS eval with label-text matching over bare @eNNN refs. Always re-snapshot after a meaningful transition before clicking a ref from a previous snapshot.

type requires the selector and text in the same call: agent-browser type <sel> <text> takes both arguments together — e.g. agent-browser type '@e15' 'some text'. Calling click '@e15' and then type with only the text string (no selector) is a silent no-op: it returns success but nothing is typed, and there is no error to signal the mistake. If eval'd editor/input content comes back empty after a type call, check this first before assuming a focus or timing problem.

Don't burn a full wakeup/turn-cycle on a sub-second wait: known short timers (e.g. the 500ms autosave debounce) don't need ScheduleWakeup or a minute-long pause — that wastes a conversation turn per check. Use a short shell-level wait (sleep 1-2 inline before the next command, or a tight Monitor poll loop) so the verification stays in the same turn.

Stable Selectors

Prefer the app's documented data-testid hooks where they exist. Do not invent new ones.

The canonical list is the data-testid table in src/CLAUDE.md — read it there rather than trusting a copy. It is maintained as E2E contract and grows whenever a new testid ships; a duplicated list here goes stale silently and sends you hunting by text for controls that already have a stable hook. The ones you reach for most in this workflow:

Purposetestid
Journal creationpassword-create-input, password-repeat-input, create-journal-button
Journal unlockpassword-unlock-input, unlock-journal-button
Headertoggle-sidebar-button, lock-journal-button, search-button, timeline-toggle-button, header-date-title, header-prev-day-button, header-next-day-button
Overflow menuheader-more-menu-trigger, then header-more-menu-{preferences,statistics,import,export}-item
Overlays (assert open)preferences-overlay, stats-overlay, import-overlay, export-overlay, search-overlay
Onboardingonboarding-next-btn
Editortitle-input, entry-nav-bar, entry-{prev,next,add,delete,lock}-button, entry-number-button-{N}
Calendarcalendar-day-YYYY-MM-DD

Preferences has no data-testids, but it does have stable id attributes — use those, not visible text (text matching breaks under a non-English language preference):

  • Tabs: #pref-tab-general, #pref-tab-writing, #pref-tab-security, #pref-tab-data, #pref-tab-advanced. Note writing and security render only while unlocked (PreferencesOverlay.tsx), so unlock before reaching for them.
  • Controls: e.g. #pref-first-day, #pref-timeline-date-format, #show-timeline-preview, #hide-titles, #allow-future, #enable-spellcheck, #editor-font-size.

Common Recipes

Create Or Unlock A Journal

For a fresh sandbox:

  1. fill password-create-input
  2. fill password-repeat-input
  3. click create-journal-button

For an existing sandbox journal:

  1. fill password-unlock-input
  2. click unlock-journal-button
Dismiss The Onboarding Tour (do this immediately after creating a journal)

A fresh sandbox always lands in the onboarding tour, and its overlay swallows clicks aimed at the header. This is not an occasional annoyance — it fires on every first run, and the symptom is misleading: agent-browser click '[data-testid=header-more-menu-trigger]' reports ✓ Done, the menu never opens, and the follow-up click on a menu item fails with Element not found. It reads like a broken menu or a stale ref. Check for onboarding-next-btn in the DOM before believing that.

Don't step through the tour by hand and don't try to pre-seed its localStorage key — the key is onboarding-shown-{activeJournalId} (src/state/onboarding.ts), and the journal id does not exist until after creation. Click through to the end in one eval instead; the loop is id-agnostic and survives the tour gaining or losing steps:

powershell
$js = @'
(function(){
  let clicks = 0;
  for (let i = 0; i < 12; i++) {
    const b = document.querySelector('[data-testid=onboarding-next-btn]');
    if (!b) break;
    b.click(); clicks++;
  }
  return { clicks, stillThere: !!document.querySelector('[data-testid=onboarding-next-btn]') };
})()
'@
agent-browser eval $js

Expect stillThere: false. The final click calls dismissOnboarding(), which persists the key, so the tour stays gone for the rest of the sandbox's life — including across reloads.

Read Or Verify Preferences

Open Preferences via header-more-menu-trigger → header-more-menu-preferences-item (dismiss the onboarding tour first — see above, or the trigger click silently does nothing), then click the tab by id (#pref-tab-writing, etc.).

To inspect saved preferences directly:

javascript
JSON.parse(localStorage.getItem('preferences') ?? '{}');

Typical checks:

  • autoLockEnabled
  • autoLockTimeout
  • language
  • editorFontFamily

Auto-lock timer interference: If autoLockTimeout is short (< 30 s), the journal will lock between CDP roundtrips — eval calls do not dispatch DOM activity events and therefore do not reset the idle timer.

A bare localStorage.setItem('preferences', ...) write does not fix this — confirmed empirically, not just by reading the source. preferences (src/state/preferences.ts) is a Solid signal created once at module load (createSignal(loadPreferences())); the running app never re-reads localStorage on its own, so writing to it directly changes only what a future page load will pick up, not the live in-memory value the idle timer effect (App.tsx) actually reads. A session that patches localStorage this way and keeps driving the UI will still hit the original timeout and lock mid-session, which looks like a flaky app rather than a stale-write bug.

Two ways to actually change the live value:

  1. Drive the real Preferences → Security UI (reliable, no reload needed): open Preferences, click #pref-tab-security, toggle the "Lock after inactivity" checkbox and/or set the timeout input via the native-setter + input/blur-event pattern (see "Compound Eval for Atomic UI Chains"). This calls the app's own setPreferences(), so the live signal updates immediately.
  2. Write localStorage then reload the page (agent-browser reload or eval location.reload()): the fresh module load re-reads the patched value. Necessary when the app is on the lock screen and the Security tab isn't reachable yet.
javascript
// Extend timeout so the journal stays unlocked during the session — pairs with either method above
(function() {
  const p = JSON.parse(localStorage.getItem('preferences') ?? '{}');
  p.autoLockTimeout = 600;
  localStorage.setItem('preferences', JSON.stringify(p));
})();

Run this eval immediately after unlocking, before taking the first snapshot, and reload afterward if you used method 2. Restore the original value when done if needed.

Show full SKILL.md (871 more words)Show less
Navigate A Scrollable Preferences Dialog

The Preferences dialog clips its content with a scrollable container — not the [role="tabpanel"] element itself (which has overflow: visible). The actual scroller has class .flex-1.overflow-y-auto.

Correct approach — scroll a specific element into view:

javascript
// Works: scrolls a target element into the visible area
document.querySelector('#some-element-id').scrollIntoView({behavior: 'instant', block: 'center'});

// Or find by label text:
Array.from(document.querySelectorAll('input[type="checkbox"]'))
  .find(el => el.labels?.[0]?.textContent?.trim() === 'Lock after inactivity')
  ?.scrollIntoView({behavior: 'instant', block: 'center'});

Wrong approach — setting scrollTop on the tabpanel:

javascript
// Does NOT work: the tabpanel has overflow:visible
document.querySelector('[role="tabpanel"]').scrollTop = 400;

After scrollIntoView, take a screenshot to confirm the element is visible before clicking.

Compound Eval for Atomic UI Chains

When multiple UI interactions must happen without a roundtrip gap (e.g., to avoid the auto-lock timer or avoid stale refs), chain them in a single eval call:

javascript
(function() {
  // 1. Open a dialog
  const openBtn = document.querySelector('[data-testid=header-more-menu-preferences-item]');
  if (!openBtn) return {error: 'menu item not found — is the overflow menu open?'};
  openBtn.click();

  // 2. Navigate to a tab (by id — text matching breaks under a non-English language pref)
  const tab = document.querySelector('#pref-tab-security');
  if (!tab) return {error: 'tab not found — unlocked?'};
  tab.click();

  // 3. Read a UI control state
  const cb = Array.from(document.querySelectorAll('input[type="checkbox"]'))
    .find(el => el.labels?.[0]?.textContent?.trim() === 'Lock after inactivity');
  if (!cb) return {error: 'checkbox not found'};
  cb.scrollIntoView({block: 'center'});
  return {checkboxChecked: cb.checked};
})()

Use this pattern when:

  • The idle timer is short and would fire between steps
  • You need to read state immediately after opening a dialog (before refs can go stale)
  • You're verifying that a setting persisted after Save + re-open in one shot
Capture A Screenshot

Use agent-browser's screenshot flow after the app is in the exact state the user cares about. Prefer this over describing the UI from memory.

End The Session

Always stop the dev session before finishing the task (PowerShell tool, see note in "Start A Session"):

bash
bun run agent:dev:stop

Optional:

bash
bun run agent:dev:stop -- --keep-sandbox

Stopping is not optional cleanup. It kills both long-lived Windows process roots and removes sandbox state unless told otherwise.

If agent:dev:stop fails during sandbox deletion with a transient WebView file lock (EBUSY on a file under .agent-dev/sandbox/webview/EBWebView/...), immediately retry with --keep-sandbox. Treat that as the normal fallback: the important part is stopping the managed processes and closing the CDP port, not forcing one last WebView cache file to be deleted in the same step.

Sandbox Semantics

  • Default mode is sandboxed.
  • Sandbox paths live under .agent-dev/sandbox/.
  • Start seeds config.json with a single sandbox journal on first run, so the app does not fall back to the journal picker.
  • MINI_DIARIUM_DATA_DIR points directly at the sandbox diary dir, while the seeded app config gives the frontend an active journal selection.
  • WebView storage is isolated under the sandbox too, so preferences and other localStorage state start clean on a fresh sandbox.
  • First launch against an empty sandbox lands on journal creation.
  • Reusing the same sandbox lands on password unlock.
  • Use --use-real-config only when the bug depends on the user's actual app state.

Troubleshooting

  • Start can take 30-90 seconds on a cold build. Use --timeout 180 if Rust rebuilds are expected.
  • agent:dev:start or agent-browser connect "times out" / gets force-backgrounded: expected — neither returns through this tool chain. Launch both with run_in_background: true and poll bun run agent:dev:probe for readiness. See "Start A Session".
  • Clicks report ✓ Done but nothing happens, then the next selector is Element not found: on a fresh sandbox this is the onboarding tour overlay intercepting the click, not a broken control. Check for [data-testid=onboarding-next-btn] and dismiss it — see "Dismiss The Onboarding Tour".
  • eval fails with '…' is not a valid selector on JS you know is correct: PowerShell stripped the escaped inner quotes. Re-send the script as a @'…'@ here-string — see the PowerShell notes under "Drive The UI".
  • If port 9222 is already taken, restart with --port 9223 and connect agent-browser to that port.
  • If start succeeds but the page target is not immediately recorded, run bun run agent:dev:probe (poll it — see "Detecting readiness" above). Probe resolves the current page target from the live /json list.
  • If probe says cdp unreachable, inspect .agent-dev/dev.log.
  • If probe says the managed PIDs are not alive, the dev session is gone. Start a new one.
  • If a stop attempt fails, do not delete .agent-dev/state.json by hand until you understand which root is still alive.
  • If agent:dev:stop fails with EBUSY while deleting a WebView cache file, rerun bun run agent:dev:stop -- --keep-sandbox. Verify that the reported port is closed; if it is, the session shutdown is good enough for task cleanup.
  • Journal locks repeatedly during session: If the app is configured with a short autoLockTimeout (< 30 s), the idle timer fires between CDP roundtrips. eval calls do not count as user activity. A bare localStorage patch does not fix this on its own — it only changes what a future page load reads, not the live in-memory value the idle timer effect actually uses. Drive the real Preferences → Security UI to change it live, or patch localStorage and then reload — see "Auto-lock timer interference" under "Read Or Verify Preferences" above.
  • Dev server reports ready but the page never loads past "Loading Mini Diarium..." / agent-browser snapshot returns (empty page) forever: seen twice — Vite's dependency optimizer can wedge itself into a state where it logs ready in NNN ms and accepts the TCP connection (Get-NetTCPConnection -LocalPort 1420 shows Listen/Established), but never actually completes an HTTP response for /src/index.tsx or any other module — curl/Invoke-WebRequest to http://localhost:1420/ hang and time out even though the port is open. This is a stale node_modules/.vite optimizer cache, not a CDP/agent-browser problem or an app bug — confirm with a direct request to the dev server port before assuming the browser side is at fault. Fix: bun run agent:dev:stop, delete node_modules/.vite, then bun run agent:dev:start again. The next start takes longer (full dependency re-bundle) but comes up clean.

What This Skill Does Not Do

  • It does not replace WDIO or CI E2E coverage.
  • It does not support production builds.
  • It does not support macOS or Linux.
  • It does not bundle browser automation itself; it relies on the separate agent-browser capability after startup.

© fjrevoredo, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file in .agents/skills/tauri-agent-dev of fjrevoredo/mini-diarium.

  • SKILL.md
  • agents/openai.yaml

Open the folder on GitHubat commit 3ddc537

Compare with similar skills

Tauri Agent Dev next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Tauri Agent Dev compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Tauri Agent Dev this skillfjrevoredo/mini-diarium308—~5.2kAutomated safety check: PassMIT
E2E Agent Browserjh941213/my-cc-harness126—~3.1kAutomated safety check: NotesNone
E2E Agent Browserjh941213/my-cc-harness126—~2.7kAutomated safety check: NotesNone
Add UI Stringopenfootmanager/openfootmanager1.1k—~2.6kAutomated safety check: PassGPL-3.0
Rust SQL Testshencangsheng/easydb_app590—~1.2kAutomated safety check: PassMIT
Fastbrowseagent-labs-dev/fastbrowse113—~1.6kAutomated safety check: NotesMIT

Similar skills

  • E2E Agent Browser

    jh941213/my-cc-harness

    E2E test automation using agent-browser CLI. An agent skill from jh941213/my-cc-harness.

    126 GitHub stars~3.1k tokensUpdated 2 mo ago
    Testing & QAAuto-check: notes
  • E2E Agent Browser

    jh941213/my-cc-harness

    agent-browser CLI를 활용한 E2E 테스트 자동화. An agent skill from jh941213/my-cc-harness.

    126 GitHub stars~2.7k tokensUpdated 2 mo ago
    Testing & QAAuto-check: notes
  • Add UI String

    openfootmanager/openfootmanager

    Add or change any text a player can see, in every locale the game ships in.

    1.1k GitHub stars~2.6k tokensUpdated today
    Testing & QAAuto-check passed
  • Rust SQL Test

    shencangsheng/easydb_app

    Enforces unit test requirements for the Rust data-processing modules in src-tauri/src/sql/ (generator.rs, parse.rs) and src-tauri/src/reader/ (excel.rs and other readers).

    590 GitHub stars~1.2k tokensUpdated 1 mo ago
    Documents & OfficeAuto-check passed
  • Fastbrowse

    agent-labs-dev/fastbrowse

    Use fastbrowse to complete browser tasks described in natural language, including website research with citations, navigating interactive pages, and filling forms.

    113 GitHub stars~1.6k tokensUpdated today
    Testing & QAAuto-check: notes
  • Playwright Testing

    chongdashu/vibejam-starter-pack

    Plan, implement, and debug frontend tests: unit/integration/E2E/visual/a11y.

    149 GitHub stars~2.2k tokensUpdated 5 mo ago
    Testing & QAAuto-check passed

More from fjrevoredo/mini-diarium

All 41 skills in this repo
  • Manual Planning

    fjrevoredo/mini-diarium

    Create, update, review, and execute manual Markdown implementation plans when harness planning mode is not being used.

    308 GitHub stars~3.7k tokensUpdated today
    Auto-check passed
  • M10 Performance

    fjrevoredo/mini-diarium

    CRITICAL: Use for performance optimization. An agent skill from fjrevoredo/mini-diarium.

    308 GitHub starsUsed in 2 repos~1k tokens
    Auto-check passed
  • Solidjs

    fjrevoredo/mini-diarium

    SolidJS framework development skill for building reactive web applications with fine-grained reactivity.

    308 GitHub stars~2.6k tokensUpdated today
    Auto-check passed
  • Rust Symbol Analyzer

    fjrevoredo/mini-diarium

    Analyze Rust project structure using LSP symbols. An agent skill from fjrevoredo/mini-diarium.

    308 GitHub starsUsed in 2 repos~1.2k tokens
    Auto-check passed
  • Tauri V2

    fjrevoredo/mini-diarium

    Tauri v2 cross-platform app development with Rust backend. An agent skill from fjrevoredo/mini-diarium.

    308 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Exploration Mode

    fjrevoredo/mini-diarium

    Enter exploration mode: a thinking partner for researching and thinking through ideas and problems before implementation.

    308 GitHub stars~3.4k tokensUpdated today
    Auto-check passed

Works with

Questions about Tauri Agent Dev

What does Tauri Agent Dev do?

Spawn, probe, and stop Mini Diarium's live Windows Tauri dev app with WebView2 CDP enabled, then hand control to agent-browser for real UI inspection. Tauri Agent Dev is an agent skill from fjrevoredo/mini-diarium. Spawn, probe, and stop Mini Diarium's live Windows Tauri dev app with WebView2 CDP enabled, then hand control to agent-browser for real UI inspection.

When should I use Tauri Agent Dev?

Tauri Agent Dev fits situations like: wants to manually test the real desktop UI; drive the dev app; preference in the actual window; inspect localStorage.

How do I install Tauri Agent Dev in Claude Code?

Run `npx skills add fjrevoredo/mini-diarium --skill tauri-agent-dev -a claude-code`. Or copy the skill folder (.agents/skills/tauri-agent-dev in fjrevoredo/mini-diarium) into .claude/skills/tauri-agent-dev in your project. Claude Code loads it when a task matches its description.

How do I install Tauri Agent Dev in Codex?

Run `npx skills add fjrevoredo/mini-diarium --skill tauri-agent-dev -a codex`. Or copy the skill folder (.agents/skills/tauri-agent-dev in fjrevoredo/mini-diarium) into .agents/skills/tauri-agent-dev in your project. Codex loads it when a task matches its description.

Can I use Tauri Agent Dev in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add fjrevoredo/mini-diarium --skill tauri-agent-dev -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/tauri-agent-dev, .gemini/skills/tauri-agent-dev, .github/skills/tauri-agent-dev and .opencode/skills/tauri-agent-dev in your project.

What does Tauri Agent Dev need to run?

Going by SKILL.md and its folder, Tauri Agent Dev needs the command-line tools its instructions call (bun).

Does Tauri Agent Dev access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Tauri Agent Dev safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Tauri Agent Dev use?

Tauri Agent Dev is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Tauri Agent Dev use?

About 5.2k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Tauri Agent Dev?

Skills that share tags, products or a category with Tauri Agent Dev: E2E Agent Browser (jh941213/my-cc-harness, 126 stars), E2E Agent Browser (jh941213/my-cc-harness, 126 stars), Add UI String (openfootmanager/openfootmanager, 1.1k stars) and Rust SQL Test (shencangsheng/easydb_app, 590 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Tauri Agent Dev?

fjrevoredo (a GitHub user) maintains it in fjrevoredo/mini-diarium, which has 308 GitHub stars. The repository holds 41 skills in this directory. The repository was last updated on October 7, 2026.

Source: fjrevoredo/mini-diarium on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.