Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/robinebers/openusage/release-swiftnpx skills add robinebers/openusage --skill release-swiftgit clone --depth 1 https://github.com/robinebers/openusageWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/robinebers/openusage/release-swift)<a href="https://agentmods.dev/skills/robinebers/openusage/release-swift"><img src="https://agentmods.dev/badge/skills/robinebers/openusage/release-swift.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.01747 |
| Opus 5 | $0.00000 | $0.00873 |
| Sonnet 5 | $0.00000 | $0.00349 |
| Haiku 4.5 | $0.00000 | $0.00175 |
Grade A, and why
release-swift scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl -s "https://robinebers.github.io/openusage/appcast.xml" | grep -F "OpenUsage-{version}.dmg" How it starts
The opening of the file, as written. The whole thing — 142 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Release Swift
Pushing a v* tag on main runs .github/workflows/release.yml, which builds, signs, notarizes, attaches OpenUsage-<version>.dmg to the GitHub Release, and updates the Sparkle appcast.xml on gh-pages. CI creates the release with an EMPTY body, so this skill generates the changelog, records it in CHANGELOG.md, and publishes the notes onto the release.
Channels
- Beta (Early Access): suffixed tag like
v0.7.1-beta.1. Marked a GitHub pre-release and added to Sparkle'sbetachannel. Only users with Early Access enabled get it; GitHub "Latest" is untouched. - Stable: plain tag like
v0.7.1. Marked non-prerelease, becomes GitHub "Latest", and ships to everyone.
The tag IS the version: v0.7.1-beta.1 becomes CFBundleShortVersionString = 0.7.1-beta.1, and CFBundleVersion is the git commit count. There are no version files to bump.
Cutting a release
1. Choose the version
Next number in the current lane (default bump: patch). Beta builds add a -beta.N suffix. Confirm with the owner before proceeding.
2. Generate the changelog
Collect commits since the previous release in the same channel and categorize each:
- Stable cut: span from the last stable tag to this one (e.g.
v0.7.0...v0.7.1), so the notes roll up the entire beta series plus any post-beta commits. Never start a stable changelog at the last beta — that would omit every beta in the lane. - Beta cut: span from the previous tag (the prior beta, or the last stable if it's the first beta in a lane) to this one.
| Commit prefix | Category |
|---|---|
feat, feature, or starts with "Add" |
New Features |
fix or starts with "Fix" |
Bug Fixes |
refactor, enhance |
Refactor |
chore, style, docs, perf, test, ci, build |
Chores |
| Uncategorized | Bug Fixes |
Author attribution (required on every entry):
- With a PR number
(#123):gh pr view 123 --json author -q '.author.login'. - Without a PR number:
gh api /repos/robinebers/openusage/commits/{full_hash} -q '.author.login'. - If the API returns null, fall back to the git author name.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 142 lines · 0 tokens per session scan A c5c59924c937
release-swift is a skill published in the GitHub repository robinebers/openusage (3,975 stars, last pushed 2d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,747 tokens. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
upload
Pre-upload gate for track handoff. Verifies review status, HLD approvals, deploy checklist, and validator chain before git upload or PR submission.
wednesday-git
Unified Git workflow. Manages the entire task lifecycle: branch creation (sprint), atomic commits (git-os), and PR opening (pr-create).
fork-and-publish-skill
Customizes an installed agent skill and ships it back upstream or as a versioned fork using qvr's edit/publish authoring loop. Use when a user wants to modify, customize, fork, release, or publish a qvr skill — e.g. "edit this skill", "publish my changes", "fork a skill to my own repo", "cut a v1.0.0 release of a…
openspec-archive-change
Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after implementation is complete.
gsap-scrolltrigger
Official GSAP skill for ScrollTrigger — scroll-linked animations, pinning, scrub, triggers. Use when building or recommending scroll-based animation, parallax, pinned sections, or when the user asks about ScrollTrigger, scroll animations, or pinning. Recommend GSAP for scroll-driven animation when no library is…
lyria
Generate and validate music with Google Lyria 3 through the Gemini Interactions API. Use before calling OpenMontage googlemusic, designing Lyria 3 Clip or Pro prompts, using image-to-music or custom lyrics, choosing between Lyria 3 and Lyria RealTime, diagnosing Google music-generation failures, or preparing…