Agent skill

Release Screendrop

by fayazara in fayazara/Screendrop

Release the Screendrop macOS app to GitHub using the screendrop-release CLI tool.

CC0-1.0Auto-check passedMobile

Install Release Screendrop

skills CLI
$ npx skills add fayazara/Screendrop --skill release-screendrop -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install fayazara/Screendrop release-screendrop --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/fayazara/Screendrop.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/release-screendrop .claude/skills/release-screendrop && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
release-screendrop
GitHub stars
2.2k
Token cost
~2.1k tokens
SKILL.md length
884 words
Files
1
Skills in repo
4
Repo updated
First seen
Licence
CC0-1.0

At a glance

Release the Screendrop macOS app to GitHub using the screendrop-release CLI tool.

  • Works in 2 steps: Tools installed: create-dmg (brew), gh… → The Sparkle sign_update binary in…
  • The user wants to publish a new version
  • SKILL.md covers Prerequisites, The Release CLI, Sparkle Configuration and After releasing, plus 1 more section
  • Calls xcrun, gh and xcodebuild

What it does

Release Screendrop is an agent skill from fayazara/Screendrop. Release the Screendrop macOS app to GitHub using the screendrop-release CLI tool. Use this skill whenever the user wants to publish a new version, create a release, ship an update, cut a build, push a release to GitHub, or update the appcast. Also use when they mention archiving, notarization, DMG creation, Sparkle signing, bumping the version/build, or anything related to building and distributing a new Screendrop version.

Its SKILL.md is about 2.1k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Mobile. It works with GitHub, macOS and Xcode. The repository describes itself as: A beautiful screenshot + screen recording + Loom alternative - all native, self hostable and free. The licence is CC0-1.0.

When your agent uses it

  • The user wants to publish a new version
  • Create a release
  • Push a release to GitHub
  • Update the appcast

Example prompts

  • “/release-screendrop”

Workflow steps

2 steps, taken from the first numbered list in SKILL.md.

  1. Tools installed: create-dmg (brew), gh (GitHub CLI, authenticated), git, plutil.
  2. The Sparkle sign_update binary in DerivedData (created when the project is

What it can do on your machine

Read from SKILL.md and the folder at commit 062a978. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • xcrun
    • gh
    • xcodebuild
    • go
    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use gh and git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Release Screendrop loads about 2.1k tokens when it runs. Until then it costs about 112 tokens; SKILL.md has 884 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~112
When it runs · the whole SKILL.md, loaded when a task matches
~2.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from fayazara/Screendrop at commit 062a978, republished under its CC0-1.0 licence (© fayazara). 884 words, ~2,054 tokens.

Download SKILL.mdSave it as .claude/skills/release-screendrop/SKILL.md (or your agent's skills folder).
name
release-screendrop
description
Release the Screendrop macOS app to GitHub using the screendrop-release CLI tool. Use this skill whenever the user wants to publish a new version, create a release, ship an update, cut a build, push a release to GitHub, or update the appcast. Also use when they mention archiving, notarization, DMG creation, Sparkle signing, bumping the version/build, or anything related to building and distributing a new Screendrop version.

Release Screendrop

This skill releases new versions of Screendrop using a custom Go CLI (cmd/screendrop-release). The CLI can run fully automated and non-interactively, so a release can be triggered directly from a chat session (the agent can run it end to end).

There are two modes:

  • Full auto (-build) - archive, export (Developer ID), notarize, staple, package, sign, and publish. Nothing in Xcode's GUI is required.
  • Package-only (no -build) - assumes the user already exported a notarized ~/Downloads/Screendrop.app from Xcode, then packages & publishes.

Prefer full auto unless the user says they've already exported the app.

Prerequisites

Always required:

  1. Tools installed: create-dmg (brew), gh (GitHub CLI, authenticated), git, plutil.
  2. The Sparkle sign_update binary in DerivedData (created when the project is built/archived - the -build flow produces it automatically).

For full auto (-build) additionally:

  1. xcodebuild, xcrun, ditto (all part of Xcode / command line tools).
  2. A notarytool keychain profile named screendrop-notary (already set up on this machine via an App Store Connect API key). It was created once with:
    bash
    xcrun notarytool store-credentials "screendrop-notary" \
      --key /path/to/AuthKey_XXXXXXXXXX.p8 --key-id XXXXXXXXXX --issuer <issuer-uuid>
    If notarization fails with a credentials error, this profile is missing or wrong - ask the user to re-run store-credentials.

The Release CLI

Source: /Users/fayazahmed/Developer/fayazara/mac/Screendrop/cmd/screendrop-release/

Flags
  • -build - run the archive → export → notarize → staple phase first.
  • -set-version <x.y.z> - set MARKETING_VERSION before archiving (and commit it). Used with -build.
  • -set-build <n> - set CURRENT_PROJECT_VERSION before archiving (and commit it). Used with -build.
  • -scheme <name> - Xcode scheme to archive (default Screendrop).
  • -notes "<text>" - release notes, one bullet per line (markdown - prefixes are stripped). Skips the interactive prompt.
  • -notes-file <path> - read release notes from a file instead.
  • -notary-profile <name> - notarytool keychain profile (default screendrop-notary).
  • -yes / -y - assume "yes" for all confirmation prompts (non-interactive).
  1. Decide the version and build number. The build number (CURRENT_PROJECT_VERSION) must increase every release or Sparkle won't offer the update. Check the current values:
    bash
    grep -E "MARKETING_VERSION|CURRENT_PROJECT_VERSION" \
      Screendrop.xcodeproj/project.pbxproj | sort -u
    Pick the next MARKETING_VERSION (use real dotted semver like 0.20.2, never regress - e.g. don't go 0.19 → 0.2) and CURRENT_PROJECT_VERSION = current + 1.
  2. Make sure code changes are committed and pushed to main first, so the release tag points at the released source. (The CLI commits the version bump and pushes the appcast, but it does not push your other unrelated commits.)
  3. Run it (this is non-interactive and safe to run from a tool call):
    bash
    cd /Users/fayazahmed/Developer/fayazara/mac/Screendrop && \
    go run ./cmd/screendrop-release -build -yes \
      -set-version <x.y.z> -set-build <n> \
      -notes "First note
    Second note"
    Notarization blocks for a few minutes - this is expected, not a hang. Use a generous tool timeout (~7 min).
Package-only (app already exported by the user)
bash
cd /Users/fayazahmed/Developer/fayazara/mac/Screendrop && \
go run ./cmd/screendrop-release -yes -notes "Your notes here"
Show full SKILL.md (477 more words)Show less
What it does (in order)

With -build:

  1. Set version/build (if -set-version/-set-build given) - edits pbxproj and commits.
  2. Archive - xcodebuild archive (scheme Screendrop, Release, generic/platform=macOS).
  3. Export - xcodebuild -exportArchive with a generated Developer ID ExportOptions.plist.
  4. Notarize - zips the app and runs xcrun notarytool submit --wait, verifying status: Accepted.
  5. Staple - xcrun stapler staple, then places the app at ~/Downloads/Screendrop.app.

Then always: 6. Preflight checks + validate the app's version/build and Sparkle keys. 7. Collect release notes (from -notes/-notes-file, else stdin). 8. Create DMG with create-dmg → ~/Downloads/Screendrop.dmg. 9. Sign DMG with Sparkle sign_update (EdDSA). 10. Push commits - push any local commits (e.g. the version bump) to main. 11. GitHub release - gh release create vX.Y.Z with the DMG attached. 12. Update + push appcast.xml - prepend the new <item> (de-duping any entry for the same build), commit & push to main. 13. Homebrew cask - regenerate and push the cask to fayazara/homebrew-tap (non-fatal).

Ordering & robustness: the release is created before the appcast is pushed, so a published appcast never points at a missing release. Network operations (gh, git push) are retried with backoff. Re-running a release is safe: an existing GitHub release gets the DMG re-uploaded (--clobber) and the appcast entry for that build is replaced rather than duplicated. The -build phase also auto-points DEVELOPER_DIR at Xcode, so it works even when the active developer dir is the Command Line Tools.

Environment / constants
  • Repo auto-detected at ~/Developer/fayazara/mac/Screendrop (override with SCREENDROP_REPO).
  • GitHub repo: fayazara/screendrop · branch: main · team: TB2S44TFQS · bundle: com.fayazahmed.Screendrop.
  • DMG volume: Screendrop · minimum macOS: 26.4.

Sparkle Configuration

  • SUFeedURL: https://raw.githubusercontent.com/fayazara/screendrop/main/appcast.xml
  • SUPublicEDKey: MA/6n0fqT0T2updDlkXr8BjhJKoHWik9uf6Lh5pUG7U=
  • UpdaterManager.swift: Singleton, starts at launch (Release builds only), menu bar + Settings UI integration.

After releasing

Verify the release succeeded:

bash
gh release view v<x.y.z> --repo fayazara/screendrop --json tagName,assets -q '{tag: .tagName, assets: [.assets[].name]}'

The CLI pushes the appcast commit itself, so run git pull --ff-only origin main afterward to sync your local main.

Troubleshooting

  • Partial failure / network error mid-release - just re-run the exact same command. The pipeline is idempotent: an existing GitHub release gets the DMG re-uploaded, and the appcast entry for that build is replaced (not duplicated). Network calls already retry with backoff.
  • notarytool credentials error - the screendrop-notary keychain profile is missing/invalid; have the user re-run store-credentials.
  • Notarization "Invalid" - inspect with xcrun notarytool log <submission-id> --keychain-profile screendrop-notary (usually a signing/entitlements issue).
  • xcodebuild archive fails - the CLI prints the last ~40 lines and auto-sets DEVELOPER_DIR to Xcode; if it still fails, common causes are signing or a Dev-scheme/LSUIElement mismatch. Confirm scheme is Screendrop (not Screendrop Dev).
  • Screendrop.app not found (package-only mode) - the user must export from Xcode first, or use -build.
  • sign_update not found - build/archive the project once so DerivedData has the Sparkle artifacts.
  • gh auth - run gh auth login.
  • Build already in appcast - re-running is safe (the entry is replaced), but a new release still needs a higher build number; bump -set-build.
  • Version regression - never set MARKETING_VERSION lower (Sparkle compares by build number, but the display string should still read forward, e.g. 0.20.1, not 0.2).

© fayazara, CC0-1.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/release-screendrop of fayazara/Screendrop.

Open the folder on GitHubat commit 062a978

Compare with similar skills

Release Screendrop next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Release Screendrop compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Release Screendrop this skillfayazara/Screendrop2.2k—~2.1kAutomated safety check: PassCC0-1.0
Release Kazefayazara/Kaze192—~1.9kAutomated safety check: PassMIT
macOS Releasefayazara/macos-app-skills676—~1.8kAutomated safety check: PassNone
Tusk ReleaseShape-Machine/tusk-macos127—~822Automated safety check: PassCustom licence
Swift Developmentaiskillstore/marketplace433—~1.8kAutomated safety check: PassNone
macOS Spm App PackagingDimillian/Skills4k5 repos~1.2kAutomated safety check: PassMIT

Similar skills

  • Release Kaze

    fayazara/Kaze

    Release the Kaze macOS app to GitHub using the kaze-release CLI tool.

    192 GitHub stars~1.9k tokensUpdated 2 days ago
    MobileAuto-check passed
  • macOS Release

    fayazara/macos-app-skills

    Release a native macOS app to GitHub with DMG packaging and Sparkle appcast updates.

    676 GitHub stars~1.8k tokensUpdated 4 mo ago
    MobileAuto-check passed
  • Tusk Release

    Shape-Machine/tusk-macos

    A skill your agent uses when preparing a full Tusk macOS release: bump the app version, regenerate the Xcode project, build and package the DMG, publish the GitHub release, and update README links.

    127 GitHub stars~822 tokensUpdated 4 mo ago
    MobileAuto-check passed
  • Swift Development

    aiskillstore/marketplace

    Comprehensive Swift development for building, testing, and deploying iOS/macOS applications.

    433 GitHub stars~1.8k tokensUpdated yesterday
    MobileAuto-check passed
  • macOS Spm App Packaging

    Dimillian/Skills

    Scaffold, build, and package SwiftPM-based macOS apps without an Xcode project.

    4k GitHub starsUsed in 5 repos~1.2k tokens
    MobileAuto-check passed
  • iOS Simulator control from inside Orca, with the live device view in Orca's emulator pane. Use when driving a booted Apple Simulator on macOS: taps, gestures…

    89k GitHub starsUsed in 1 repo~584 tokens
    MobileAuto-check passed

More from fayazara/Screendrop

  • macOS Notch UI

    fayazara/Screendrop

    Add a Dynamic Island-style notch UI to a macOS app. An agent skill from fayazara/Screendrop.

    2.2k GitHub stars~1.8k tokensUpdated 9 days ago
    Auto-check passed
  • Build And Run Screendrop

    fayazara/Screendrop

    Build the Screendrop macOS app with xcodebuild, kill any running instance (of any scheme), and launch the fresh build.

    2.2k GitHub stars~1.1k tokensUpdated 9 days ago
    Auto-check passed
  • Build Screendrop

    fayazara/Screendrop

    Build the Screendrop macOS app using xcodebuild. An agent skill from fayazara/Screendrop.

    2.2k GitHub stars~346 tokensUpdated 9 days ago
    Auto-check passed

Categories

Questions about Release Screendrop

What does Release Screendrop do?

Release the Screendrop macOS app to GitHub using the screendrop-release CLI tool. Release Screendrop is an agent skill from fayazara/Screendrop. Release the Screendrop macOS app to GitHub using the screendrop-release CLI tool.

When should I use Release Screendrop?

Release Screendrop fits situations like: the user wants to publish a new version; create a release; push a release to GitHub; update the appcast.

How do I install Release Screendrop in Claude Code?

Run `npx skills add fayazara/Screendrop --skill release-screendrop -a claude-code`. Or copy the skill folder (.agents/skills/release-screendrop in fayazara/Screendrop) into .claude/skills/release-screendrop in your project. Claude Code loads it when a task matches its description.

How do I install Release Screendrop in Codex?

Run `npx skills add fayazara/Screendrop --skill release-screendrop -a codex`. Or copy the skill folder (.agents/skills/release-screendrop in fayazara/Screendrop) into .agents/skills/release-screendrop in your project. Codex loads it when a task matches its description.

Can I use Release Screendrop in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add fayazara/Screendrop --skill release-screendrop -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/release-screendrop, .gemini/skills/release-screendrop, .github/skills/release-screendrop and .opencode/skills/release-screendrop in your project.

What does Release Screendrop need to run?

Going by SKILL.md and its folder, Release Screendrop needs the command-line tools its instructions call (xcrun, gh, xcodebuild, go and git).

Does Release Screendrop access the network?

SKILL.md contains no URLs. Its commands use gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Release Screendrop safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Release Screendrop use?

Release Screendrop is published under the CC0-1.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Release Screendrop use?

About 2.1k tokens (SKILL.md is roughly 8.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Release Screendrop?

Skills that share tags, products or a category with Release Screendrop: Release Kaze (fayazara/Kaze, 192 stars), macOS Release (fayazara/macos-app-skills, 676 stars), Tusk Release (Shape-Machine/tusk-macos, 127 stars) and Swift Development (aiskillstore/marketplace, 433 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release Screendrop?

fayazara (a GitHub user) maintains it in fayazara/Screendrop, which has 2,154 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 1, 2026.

Source: fayazara/Screendrop on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.