Agent skill

Release

by nikships in nikships/droidproxy

Build, sign, notarize, and publish a new DroidProxy release.

MITAuto-check passedMobile

Install Release

skills CLI
$ npx skills add nikships/droidproxy --skill release -a claude-code

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

GitHub CLI
$ gh skill install nikships/droidproxy release --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/nikships/droidproxy.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.factory/skills/release .claude/skills/release && 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
GitHub stars
122
Token cost
~1.1k tokens
SKILL.md length
338 words
Files
1
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

Build, sign, notarize, and publish a new DroidProxy release.

  • Works in 8 steps: Determine version → Bump version in Info.plist → Build the app bundle → …
  • The user wants to cut a release
  • SKILL.md covers Prerequisites, Steps, Verify it worked and What not to do
  • Calls git, xcrun and gh; reaches github.com

What it does

Release is an agent skill from nikships/droidproxy. Build, sign, notarize, and publish a new DroidProxy release. Use when the user wants to cut a release, merge a PR and ship it, or asks to build/notarize/publish. Covers the full pipeline: PR merge, version bump, swift build, code signing, Apple notarization, Sparkle appcast update, and GitHub release creation.

Its SKILL.md is about 1.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, covering iOS development and App store release. It works with GitHub, macOS and Git. The repository describes itself as: macOS menu bar app that proxies Claude/Codex/Grok + More subscriptions for use with Factory Droid CLI. Actively maintained and updated with new model releases! The licence is MIT.

When your agent uses it

  • The user wants to cut a release
  • Merge a PR and ship it
  • Asks to build/notarize/publish

Example prompts

  • “/release”

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Determine version
  2. Bump version in Info.plist
  3. Build the app bundle
  4. Notarize
  5. Create distribution zip and sign with Sparkle
  6. Update appcast.xml
  7. Commit, tag, and push
  8. Create GitHub release

What it can do on your machine

Read from SKILL.md and the folder at commit 32028ee. 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:

    • git
    • xcrun
    • gh

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

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    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 loads about 1.1k tokens when it runs. Until then it costs about 80 tokens; SKILL.md has 338 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~80
When it runs · the whole SKILL.md, loaded when a task matches
~1.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 nikships/droidproxy at commit 32028ee, republished under its MIT licence (© nikships). 338 words, ~1,099 tokens.

Download SKILL.mdSave it as .claude/skills/release/SKILL.md (or your agent's skills folder).
name
release
description
Build, sign, notarize, and publish a new DroidProxy release. Use when the user wants to cut a release, merge a PR and ship it, or asks to build/notarize/publish. Covers the full pipeline: PR merge, version bump, swift build, code signing, Apple notarization, Sparkle appcast update, and GitHub release creation.
version
1.0.0

DroidProxy Release

End-to-end release pipeline for DroidProxy macOS menu bar app.

Prerequisites

  • Developer ID signing identity available in keychain
  • notarytool keychain profile named "notarytool" configured
  • Sparkle EdDSA signing key in keychain (used by sign_update)
  • gh CLI authenticated with push access to anand-92/droidproxy
  • On the main branch with a clean working tree

Steps

1. Determine version

Check the latest git tag and the commits being released to decide the new semver:

bash
git tag --sort=-v:refname | head -5
git log --oneline $(git describe --tags --abbrev=0)..HEAD
  • New feature -> bump minor (e.g. 1.5.0 -> 1.6.0)
  • Bug fix only -> bump patch (e.g. 1.5.0 -> 1.5.1)
  • CLIProxyAPI bump alone -> bump patch
2. Bump version in Info.plist

Edit src/Info.plist and update CFBundleShortVersionString to the new version.

3. Build the app bundle
bash
APP_VERSION=<version> ./create-app-bundle.sh

This does a release swift build from src/, assembles the .app bundle, signs everything (cli-proxy-api, Sparkle.framework, main executable) with Developer ID, and verifies.

The build number (CFBundleVersion) is auto-set to git rev-list --count HEAD.

4. Notarize
bash
ditto -c -k --sequesterRsrc --keepParent "DroidProxy.app" "DroidProxy-notarize.zip"
xcrun notarytool submit "DroidProxy-notarize.zip" --keychain-profile "notarytool" --wait
xcrun stapler staple "DroidProxy.app"

Wait for status: Accepted before proceeding. If rejected, fetch the log:

bash
xcrun notarytool log <submission-id> --keychain-profile "notarytool"
5. Create distribution zip and sign with Sparkle
bash
ditto -c -k --sequesterRsrc --keepParent "DroidProxy.app" "DroidProxy-arm64.zip"
src/.build/artifacts/sparkle/Sparkle/bin/sign_update DroidProxy-arm64.zip

Capture the sparkle:edSignature="..." and length="..." from the output.

6. Update appcast.xml

Add a new <item> block at the top of appcast.xml (after <language>en</language>):

xml
<item>
  <title>Version X.Y.Z</title>
  <sparkle:version>BUILD_NUMBER</sparkle:version>
  <sparkle:shortVersionString>X.Y.Z</sparkle:shortVersionString>
  <sparkle:minimumSystemVersion>13.0</sparkle:minimumSystemVersion>
  <pubDate>DAY, DD MMM YYYY HH:MM:SS +0000</pubDate>
  <enclosure url="https://github.com/anand-92/droidproxy/releases/download/vX.Y.Z/DroidProxy-arm64.zip"
             type="application/octet-stream"
             sparkle:edSignature="SIGNATURE_FROM_STEP_5"
             length="LENGTH_FROM_STEP_5"/>
</item>
  • sparkle:version = the build number from step 3 (printed during build)
  • pubDate = current UTC time in RFC 2822 format
7. Commit, tag, and push
bash
git add src/Info.plist appcast.xml
git commit -m "Update appcast for vX.Y.Z"
git tag vX.Y.Z
git push origin main --tags

Before committing, run git diff --cached to verify no secrets or unintended files.

8. Create GitHub release
bash
gh release create vX.Y.Z DroidProxy-arm64.zip \
  --title "vX.Y.Z" \
  --notes "### Added
- Feature description
- **CLIProxyAPI X.X.X** -- Latest upstream release"

Verify it worked

  • Release visible at https://github.com/anand-92/droidproxy/releases/tag/vX.Y.Z
  • DroidProxy-arm64.zip attached to the release
  • appcast.xml on main has the new entry (existing installs will auto-update within 24h)
  • Run codesign --verify --deep --strict DroidProxy.app confirms valid signature

What not to do

  • Don't skip notarization -- unsigned apps won't launch on recent macOS without manual override.
  • Don't re-create the zip after stapling for Sparkle signing -- staple first, then zip, then sign. The order is: notarize zip -> staple .app -> fresh zip for distribution -> sparkle sign.
  • Don't edit appcast.xml without the actual Sparkle signature -- copy/paste errors break auto-update.
  • Don't push the tag before the appcast commit, or the release download URL will 404 until the asset is uploaded.

© nikships, MIT. 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 .factory/skills/release of nikships/droidproxy.

Open the folder on GitHubat commit 32028ee

Compare with similar skills

Release 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 compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Release this skillnikships/droidproxy122—~1.1kAutomated safety check: PassMIT
Releasenotepadqq/notepadqq2.3k—~2kAutomated safety check: PassGPL-3.0
Releasevaayne/mori303—~1.2kAutomated safety check: PassMIT
Swiftui Patternsrobinebers/openusage4.3k—~3.4kAutomated safety check: PassMIT
OdevioOdevio/Odevio-CLI423—~7.6kAutomated safety check: PassMIT
Workbuddy Skin Studiocdredfox/workbuddy-skin-studio198—~1.5kAutomated safety check: PassMIT

Similar skills

  • Release

    notepadqq/notepadqq

    Release a new Notepadqq version. An agent skill from notepadqq/notepadqq.

    2.3k GitHub stars~2k tokensUpdated 4 days ago
    MobileAuto-check passed
  • Release

    vaayne/mori

    Release workflow for Mori macOS workspace terminal and MoriRemote iOS app.

    303 GitHub stars~1.2k tokensUpdated 2 mo ago
    MobileAuto-check passed
  • Swiftui Patterns

    robinebers/openusage

    Best practices and example-driven guidance for building native macOS SwiftUI scenes and components, including windows, commands, toolbars, settings, split views, inspectors, menu bar extras, and…

    4.3k GitHub stars~3.4k tokensUpdated 3 days ago
    MobileAuto-check passed
  • Odevio

    Odevio/Odevio-CLI

    Take a Flutter project to an iPhone or the App Store with Odevio - build, sign and publish iOS apps from Windows, Linux or macOS with no Mac and no Xcode.

    423 GitHub stars~7.6k tokensUpdated 15 days ago
    MobileAuto-check passed
  • Workbuddy Skin Studio

    cdredfox/workbuddy-skin-studio

    Apply a reversible theme/skin to the WorkBuddy desktop app (Tencent AI office agent) via local Chromium DevTools Protocol (CDP) injection.

    198 GitHub stars~1.5k tokensUpdated 2 mo ago
    MobileAuto-check passed
  • iOS App Store Submit

    ZestfulPulse/ios-app-store-submit

    Build, sign, and submit a Flutter/iOS app to the App Store Connect — covers Xcode archive/export, code signing (including headless-Mac keychain workarounds), the asc CLI for App Store Connect…

    142 GitHub stars~4.7k tokensUpdated 8 days ago
    MobileAuto-check passed

More from nikships/droidproxy

  • Droid Model Setup

    nikships/droidproxy

    Configure any third-party model as a custom model in Factory Droid (~/.factory/settings.json): resolve specs (context window, max output tokens, reasoning efforts), write a safe config entry, set…

    122 GitHub stars~2k tokensUpdated today
    Auto-check passed
  • Gpt Image

    nikships/droidproxy

    Generate or edit images via GPT Image 2.5 Flare or Sunburst through DroidProxy Codex OAuth (no OPENAIAPIKEY).

    122 GitHub stars~2.5k tokensUpdated today
    Auto-check passed
  • Grok Imagine

    nikships/droidproxy

    Generate or edit images via Grok Imagine Image 2.0 through DroidProxy (no XAIAPIKEY).

    122 GitHub stars~2.2k tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Release

What does Release do?

Build, sign, notarize, and publish a new DroidProxy release. Release is an agent skill from nikships/droidproxy. Build, sign, notarize, and publish a new DroidProxy release.

When should I use Release?

Release fits situations like: the user wants to cut a release; merge a PR and ship it; asks to build/notarize/publish.

How do I install Release in Claude Code?

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

How do I install Release in Codex?

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

Can I use Release 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 nikships/droidproxy --skill release -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, .gemini/skills/release, .github/skills/release and .opencode/skills/release in your project.

What does Release need to run?

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

Does Release access the network?

SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Release 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 use?

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

How many tokens does Release use?

About 1.1k tokens (SKILL.md is roughly 4.4k 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?

Skills that share tags, products or a category with Release: Release (notepadqq/notepadqq, 2.3k stars), Release (vaayne/mori, 303 stars), Swiftui Patterns (robinebers/openusage, 4.3k stars) and Odevio (Odevio/Odevio-CLI, 423 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release?

nikships (a GitHub user) maintains it in nikships/droidproxy, which has 122 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 9, 2026.

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