en un clic
release
// Release the screenpipe monorepo. Bumps versions, triggers GitHub Actions for app, CLI, MCP, and JS packages.
// Release the screenpipe monorepo. Bumps versions, triggers GitHub Actions for app, CLI, MCP, and JS packages.
Query the user's data via the local screenpipe REST API at localhost:3030 — screen recordings, audio, UI elements, usage analytics, and the user's persistent memory store. Use when the user asks about their screen activity, meetings, apps, productivity, media export, retranscription, connected services, OR when they ask to save / remember / store / note information so it can be retrieved later (POST /memories — survives across sessions and is queryable by Claude/external agents via the same API).
Query the org's screenpipe telemetry as an enterprise admin — devices, members, recent activity, and substring search across the team's screen recordings and audio transcripts. Use when the user asks about their team, a teammate's activity, what their organization worked on, app usage across the org, or anything that requires seeing data beyond the user's own machine. The skill is only installed for enterprise admins; ordinary users won't see it.
Manage screenpipe pipes (scheduled AI automations) and connections (Telegram, Slack, Discord, etc.) via the CLI. Use when the user asks to create, list, enable, disable, run, or debug pipes, or manage service connections from the command line.
Check Screenpipe health status, process state, and diagnose common issues
Retrieve and analyze Screenpipe CLI backend logs and desktop app logs for debugging
| name | release |
| description | Release the screenpipe monorepo. Bumps versions, triggers GitHub Actions for app, CLI, MCP, and JS packages. |
| allowed-tools | Bash, Read, Edit, Grep, Write |
Automate releasing all components of the screenpipe monorepo.
| Component | Version File | Current Pattern | Workflow |
|---|---|---|---|
| Desktop App | screenpipe-app-tauri/src-tauri/Cargo.toml | version = "X.Y.Z" | release-app.yml |
| CLI/Server | Cargo.toml (workspace.package) | version = "0.2.X" | release-cli.yml |
| MCP | packages/screenpipe-mcp/package.json | "version": "X.Y.Z" | release-mcp.yml |
Always release CLI when there are changes to core screenpipe code:
screenpipe-core/screenpipe-vision/screenpipe-audio/screenpipe-server/screenpipe-db/screenpipe-events/screenpipe-integrations/App-only release is fine when changes are only in:
screenpipe-app-tauri/ (UI/frontend changes)To check what changed since last CLI release:
# Find last CLI release commit
git log --oneline --all | grep -E "CLI to v" | head -1
# Check if core code changed since then
git diff <COMMIT>..HEAD --stat -- screenpipe-core screenpipe-vision screenpipe-audio screenpipe-server screenpipe-db screenpipe-events screenpipe-integrations
echo "=== App ===" && grep '^version' screenpipe-app-tauri/src-tauri/Cargo.toml | head -1
echo "=== CLI ===" && grep '^version' Cargo.toml | head -1
echo "=== MCP ===" && grep '"version"' packages/screenpipe-mcp/package.json | head -1
Edit screenpipe-app-tauri/src-tauri/Cargo.toml to update version.
git add -A && git commit -m "Bump app to vX.Y.Z" && git pull --rebase && git push
gh workflow run release-app.yml
Important: workflow_dispatch creates a draft only - does NOT auto-publish. This allows manual testing before publishing.
# Get latest run ID
gh run list --workflow=release-app.yml --limit=1
# Check status
gh run view <RUN_ID> --json status,conclusion,jobs --jq '{status: .status, conclusion: .conclusion, jobs: [.jobs[] | {name: (.name | split(",")[0]), status: .status, conclusion: .conclusion}]}'
After testing, publish via the Cloudflare R2 / backend dashboard, OR commit with magic words:
git commit --allow-empty -m "release-app-publish" && git push
# 1. Bump version in Cargo.toml
# 2. Commit and push
git add -A && git commit -m "Bump app to vX.Y.Z" && git push
# 3. Trigger release (draft)
gh workflow run release-app.yml
# 4. Monitor
sleep 5 && gh run list --workflow=release-app.yml --limit=1
Build <RUN_ID>:
| Platform | Status |
|----------|--------|
| macOS aarch64 | ✅ success / 🔄 in_progress / ❌ failure |
| macOS x86_64 | ✅ success / 🔄 in_progress / ❌ failure |
| Windows | ✅ success / 🔄 in_progress / ❌ failure |
gh run view <RUN_ID> --log-failed 2>&1 | tail -100
gh run cancel <RUN_ID>
gh run rerun <RUN_ID> --failed
The CI copies tauri.prod.conf.json to tauri.conf.json before building. If artifacts are missing:
tauri.prod.conf.json has "createUpdaterArtifacts": truetauri.conf.json - Dev config (identifier: screenpi.pe.dev)tauri.prod.conf.json - Prod config (identifier: screenpi.pe, updater enabled)CI automatically uses prod config for releases by copying it before build.
workflow_dispatch (manual trigger) → Draft only, no publish.tar.gz/.sig, Windows uses .nsis.zip/.sig