Skip to main content
ClaudeWave
Skill21.6k repo starsupdated today

screenpipe-tauri

screenpipe-tauri manages Tauri command handlers and TypeScript bindings for the screenpipe desktop application. Use this skill when adding or modifying #[tauri::command] functions in Rust, updating exported types, or regenerating frontend bindings via the automated tauri-helper crate and bun scripts.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/screenpipe/screenpipe /tmp/screenpipe-tauri && cp -r /tmp/screenpipe-tauri/.claude/skills/screenpipe-tauri ~/.claude/skills/screenpipe-tauri
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# 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

1. Add **both** markers to the handler function in any `src-tauri/src/**/*.rs` module:
   ```rust
   #[tauri::command]
   #[specta::specta]  // required — without this the command is skipped in tauri.ts
   pub async fn your_command(...) { ... }
   ```
2. From `apps/screenpipe-app-tauri/`:

```bash
bun run bindings:generate   # write lib/utils/tauri.ts
bun run bindings:check      # verify no drift
bun run typecheck           # verify frontend types
```

3. Commit Rust + `lib/utils/tauri.ts` together

## 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 tests
- `lib/utils/tauri.ts` — generated TypeScript bindings (checked in)

Debug builds also auto-export bindings on startup when content changes.
releaseSkill

Release the screenpipe monorepo. Bumps versions, triggers GitHub Actions for app, CLI, MCP, and JS packages.

screenpipe-apiSkill

Query the user's local and synced-device data via the screenpipe REST API at localhost:3030 — recordings, audio, UI, meetings, connected services, and memory. Use for screen activity, other-device or cross-device history, productivity, media export, connections, or durable memory.

screenpipe-cliSkill

Set up and operate screenpipe from the terminal, including always-on recording, service modes, capture health, storage, local search, pipes, and connections. Use when the user asks to install, run, inspect, query, automate, or debug screenpipe without relying on the desktop app.

screenpipe-healthSkill

Check Screenpipe health status, process state, and diagnose common issues

screenpipe-logsSkill

Retrieve and analyze Screenpipe CLI backend logs and desktop app logs for debugging

screenpipe-teamSkill

Use the native Screenpipe CLI to query Enterprise team activity or safely preview, deploy, and schedule managed team Pipes. Injected only by the Enterprise app for active admins.

render-html-reportSkill

Produce a human-facing visual report — a chart, dashboard, scorecard, or styled summary — that renders as a live page in the screenpipe viewer instead of plain text. Use when the task asks for a visual/graphical output rather than a plain note; do NOT use for plain text or raw data (prefer a markdown note for those).

develop-screenpipe-windowsSkill

Develop and test Screenpipe Windows-native changes on a disposable Azure VM created from the prepared Screenpipe Windows dev image. Use for Windows compiler, process, service, local API, desktop, capture, installer, or permission behavior. Do not use for React-only work proved by the browser mock.