.claude/skills/release/SKILL.md
Release the screenpipe monorepo. Bumps versions, triggers GitHub Actions for app, CLI, MCP, and JS packages.
npx skillsauth add screenpipe/screenpipe releaseInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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 | screenpipe-integrations/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"' screenpipe-integrations/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/.sigtools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.