name: screenpipe-tauri description: Add or change Tauri commands and TypeScript bindings in the screenpipe desktop app. Use when editing #[tauri::command] handlers, lib/utils/tauri.ts, or Rust types exported to the frontend.
Screenpipe Tauri (desktop app)
Path: apps/screenpipe-app-tauri/
Command registration is automated via the tauri-helper crate. Do not edit manual invoke-handler or specta command lists in main.rs.
Adding a command
- Add both markers to the handler function in any
src-tauri/src/**/*.rsmodule:#[tauri::command] #[specta::specta] // required — without this the command is skipped in tauri.ts pub async fn your_command(...) { ... } - From
apps/screenpipe-app-tauri/:
bun run bindings:generate # write lib/utils/tauri.ts
bun run bindings:check # verify no drift
bun run typecheck # verify frontend types
- Commit Rust +
lib/utils/tauri.tstogether
Scripts
| Command | Purpose |
|---|---|
bun run bindings:check |
Fail if checked-in lib/utils/tauri.ts does not match Rust |
bun run bindings:generate |
Regenerate lib/utils/tauri.ts after command/type changes |
bun run typecheck |
Frontend TypeScript check |
Key files
src-tauri/build.rs—tauri_helper::generate_command_file(build-time scan)src-tauri/src/main.rs—specta_collect_commands!()/tauri_collect_commands!()src-tauri/src/specta_bindings.rs— export helpers and drift testslib/utils/tauri.ts— generated TypeScript bindings (checked in)
Debug builds also auto-export bindings on startup when content changes.