Skip to main content
skill CX Codex

macos-release — Claude Code skill: ship macOS apps to GitHub

Walks a native macOS app through the whole release flow: archive, notarize, package a DMG, sign it with Sparkle, and publish a GitHub Release.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add fayazara/macos-app-skills --skill macos-release -a claude-code
npx skills add fayazara/macos-app-skills --skill release -a claude-code
Open on GitHub

What macos-release does

This skill handles distribution outside the Mac App Store. It covers bumping the version in Xcode, archiving, notarization, exporting the .app bundle, creating the DMG, signing with Sparkle EdDSA, updating appcast.xml, and pushing the release to GitHub.

The repo ships a Go CLI that automates steps 4 through 8 in one command. It reads release.json from the project root, locates sign_update in DerivedData on its own, collects release notes interactively, then builds the DMG, signs it, patches the appcast, commits, and creates the GitHub release. Run it in a terminal with an interactive prompt.

For a manual run you need create-dmg, gh, and an Xcode build first. The Sparkle sign_update binary only exists in DerivedData after the project has been built, so without that step there is nothing to sign the DMG with.

What it helps with

  • package an exported .app into a DMG
  • sign the DMG with a Sparkle EdDSA key
  • add a new entry to appcast.xml
  • push the appcast and create a GitHub Release in one command
  • locate sign_update in DerivedData automatically

Example prompts for the agent

  • Release version 1.3 of my macOS app to GitHub
  • Build the DMG, sign it, and update the appcast for the new build
  • Run the full release pipeline for MyApp, notarization included

How to install macos-release

1Skills CLI (Vercel)

npx skills add fayazara/macos-app-skills --skill macos-release -a claude-code
npx skills add fayazara/macos-app-skills --skill release -a claude-code

2Manually: put the files in place

~/.claude/skills/release/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/release/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about macos-release

How do I install macos-release in Claude Code?

Run npx skills add fayazara/macos-app-skills --skill macos-release -a claude-code. You can also use npx skills add fayazara/macos-app-skills --skill release -a claude-code, which places the skill at ~/.claude/skills/release/SKILL.md.

What does macos-release do?

It takes a native macOS app from version bump to GitHub Release: archive, notarize, export the .app, build a DMG, sign it via Sparkle, and update appcast.xml. The flow is for distribution outside the Mac App Store.

What do I need before running the pipeline manually?

Install create-dmg and gh, and build the project in Xcode first. Sparkle's sign_update only appears in DerivedData after a build, so the DMG cannot be signed before that.

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set6

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor