tauri-browser
A CLI + Tauri plugin for automating and inspecting Tauri apps. Ref-based element targeting with output designed for LLM consumption.
Install the Skill
Add the Claude Code skill to your project:
Or install globally:
Install the CLI
Setup
Add the plugin to your Tauri app behind a feature flag:
# Cargo.toml
[]
= { = "0.2", = true }
[]
= ["tauri-plugin-debug-bridge"]
// src-tauri/src/lib.rs
app.plugin;
Add the permission to capabilities/default.json:
"debug-bridge:default"
Run your app with the feature enabled:
Authentication
The plugin generates a random auth token on each startup and writes a discovery file to /tmp/tauri-debug-bridge/<app-identifier>.json. The CLI reads this automatically — no token needed in your commands:
When multiple Tauri apps are running, specify which one:
You can still pass the token explicitly if needed:
# Or per-command:
The /health endpoint does not require auth.
Usage
Architecture
tauri-browser (CLI) ◄──── HTTP/WS ────► tauri-plugin-debug-bridge (in-app)
localhost:9229
The plugin starts a local HTTP+WS server inside your Tauri app. The CLI talks to it. No app code changes needed beyond plugin registration.
Troubleshooting
401 Unauthorized on all requests
The CLI auto-discovers the token from /tmp/tauri-debug-bridge/. If that fails, set TAURI_BROWSER_TOKEN to the token printed at app startup. The token changes every restart.
Eval/invoke times out after 10-30s
The debug-bridge:default permission must be in your capabilities/default.json. Without it, Tauri silently blocks the eval_callback command and results never return.
Console streaming shows nothing
Make sure you're on plugin version 0.2.5+ which includes console_callback in the default permission set. Earlier versions only permitted eval_callback.
Port already in use
Configure a different port (or 0 for auto-assign) in tauri.conf.json:
The CLI discovers the actual port from the discovery file automatically.
License
MIT