macOS Development
KartikLabhshetwar/better-shot
Comprehensive macOS development guidance including Swift 6+, SwiftUI, SwiftData, architecture patterns, AppKit bridging, and macOS 26 Tahoe APIs.
Produce every Usage4Claude interface image used by the READMEs and docs.
$ npx skills add f-is-h/Usage4Claude --skill capture-usage4claude-screenshots -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install f-is-h/Usage4Claude capture-usage4claude-screenshots --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/f-is-h/Usage4Claude.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/capture-usage4claude-screenshots .claude/skills/capture-usage4claude-screenshots && rm -rf skills-srcUse ~/.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/
Install the "capture-usage4claude-screenshots" agent skill from https://github.com/f-is-h/Usage4Claude/tree/main/.agents/skills/capture-usage4claude-screenshots into .claude/skills/capture-usage4claude-screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "capture-usage4claude-screenshots", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/f-is-h/Usage4Claude/tree/main/.agents/skills/capture-usage4claude-screenshotsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add f-is-h/Usage4Claude --skill capture-usage4claude-screenshots -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install f-is-h/Usage4Claude capture-usage4claude-screenshots --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/f-is-h/Usage4Claude.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/capture-usage4claude-screenshots .agents/skills/capture-usage4claude-screenshots && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "capture-usage4claude-screenshots" agent skill from https://github.com/f-is-h/Usage4Claude/tree/main/.agents/skills/capture-usage4claude-screenshots into .agents/skills/capture-usage4claude-screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "capture-usage4claude-screenshots", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add f-is-h/Usage4Claude --skill capture-usage4claude-screenshots -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install f-is-h/Usage4Claude capture-usage4claude-screenshots --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/f-is-h/Usage4Claude.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/capture-usage4claude-screenshots .cursor/skills/capture-usage4claude-screenshots && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "capture-usage4claude-screenshots" agent skill from https://github.com/f-is-h/Usage4Claude/tree/main/.agents/skills/capture-usage4claude-screenshots into .cursor/skills/capture-usage4claude-screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "capture-usage4claude-screenshots", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/f-is-h/Usage4Claude.git --path .agents/skills/capture-usage4claude-screenshots--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add f-is-h/Usage4Claude --skill capture-usage4claude-screenshots -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install f-is-h/Usage4Claude capture-usage4claude-screenshots --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/f-is-h/Usage4Claude.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/capture-usage4claude-screenshots .gemini/skills/capture-usage4claude-screenshots && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "capture-usage4claude-screenshots" agent skill from https://github.com/f-is-h/Usage4Claude/tree/main/.agents/skills/capture-usage4claude-screenshots into .gemini/skills/capture-usage4claude-screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "capture-usage4claude-screenshots", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install f-is-h/Usage4Claude capture-usage4claude-screenshotsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add f-is-h/Usage4Claude --skill capture-usage4claude-screenshots -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/f-is-h/Usage4Claude.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/capture-usage4claude-screenshots .github/skills/capture-usage4claude-screenshots && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "capture-usage4claude-screenshots" agent skill from https://github.com/f-is-h/Usage4Claude/tree/main/.agents/skills/capture-usage4claude-screenshots into .github/skills/capture-usage4claude-screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "capture-usage4claude-screenshots", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add f-is-h/Usage4Claude --skill capture-usage4claude-screenshots -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install f-is-h/Usage4Claude capture-usage4claude-screenshots --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/f-is-h/Usage4Claude.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/capture-usage4claude-screenshots .opencode/skills/capture-usage4claude-screenshots && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "capture-usage4claude-screenshots" agent skill from https://github.com/f-is-h/Usage4Claude/tree/main/.agents/skills/capture-usage4claude-screenshots into .opencode/skills/capture-usage4claude-screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "capture-usage4claude-screenshots", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
capture-usage4claude-screenshotsProduce every Usage4Claude interface image used by the READMEs and docs.
Capture Usage4claude Screenshots is an agent skill from f-is-h/Usage4Claude. Produce every Usage4Claude interface image used by the READMEs and docs. Renders the real SwiftUI views offscreen with ImageRenderer — no app launch, no screen capture, no synthetic mouse events, no Accessibility permission. Use when asked to refresh README images, add a new documented scene or language, change mock data, adjust image sizing or naming, wire images into the READMEs, or debug the renderer.
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including scripts (for example `agents/openai.yaml`).
It sits in Mobile, covering Technical documentation and iOS development. It works with SwiftUI and macOS. The repository describes itself as: Monitor all your Claude/Codex usage limits in real-time from your macOS menu bar - supports 5-hour, 7-day, extra usage, 7-day Opus and 7-day Sonnet quotas. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit e0030f1. It shows what the files ask for, not the result of running them.
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.
Ships 1 file in scripts/ (Swift), which the agent can run.
Shell commands in SKILL.md call:
swiftpython3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Capture Usage4claude Screenshots loads about 3k tokens when it runs. Until then it costs about 110 tokens; SKILL.md has 1,547 words of instructions outside code blocks.
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.
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); the scripts in this folder are not scanned.
The full file from f-is-h/Usage4Claude at commit e0030f1, republished under its MIT licence (© f-is-h). 1,547 words, ~3,000 tokens.
.claude/skills/capture-usage4claude-screenshots/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.Everything the READMEs show of the app is rendered, not captured.
scripts/render_docs_images.sh compiles the whole app plus
scripts/docs-images/main.swift into a command-line tool and draws the real
SwiftUI views into PNGs. It is deterministic, needs no GUI, and does not disturb
whoever is using the machine.
./scripts/render_docs_images.sh [output-dir] # default: docs/imagesOne run emits 28 files: 7 languages × 2 scenes × light/dark. Expect a couple of minutes — the tool is rebuilt from scratch every time.
Render into a scratch directory first, look at the results, and only then write to
docs/images/. Never overwrite the committed images with an unreviewed batch.
All images live in docs/images/.
| File | Size | Used by |
|---|---|---|
hero.<lang>.<variant>@2x.png | 950×348pt | README first screen |
settings.display.<lang>.<variant>@2x.png | 540×1244pt (CJK) / 540×1257pt (Latin) | README interface section |
<lang> is en, ja, zh-CN, zh-TW, ko, fr, de. These follow the existing
docs/images and README.zh-CN.md spelling and deliberately differ from
AppLanguage's raw values (zh-Hans, zh-Hant). The mapping lives in
docsLanguageCode.<variant> is light or dark.@2x matches renderer.scale = 2; always display at the logical point width so the
image stays crisp without being upscaled.Path references differ by README: the root README.md uses docs/images/…, while
docs/README.<lang>.md uses images/….
Pair the variants and let the browser pick:
<picture>
<source media="(prefers-color-scheme: dark)" srcset="images/hero.zh-CN.dark@2x.png">
<img src="images/hero.zh-CN.light@2x.png" width="948" alt="Usage4Claude">
</picture>GitHub's README content area is about 948px wide inside the 1012px container.
width="948", at the very top, in place of a large app icon. The icon already
appears twice inside the image; repeating it above only pushes the product below the fold.width="500". The page renders full height (~1250pt) rather than being
clipped to the real 550pt window, so every card is visible — including ones a user would
have to scroll for. Narrower than 500 makes the body text too small to read.To preview, serve a mock README page over HTTP (python3 -m http.server) and open it in
the browser pane. file:// renders as a static snapshot that page tools cannot drive.
Check dark mode in that page, never from the standalone PNG.
Four non-obvious things make it work; breaking any one yields blank or broken output.
main.swift. Swift only allows top-level code there.MenuBarManager imports it, and the copy
embedded in Usage4Claude.app/Contents/Frameworks has its Headers/Modules stripped
by Xcode. The script globs DerivedData for Sparkle.xcframework/macos-arm64_x86_64.@main is stripped from a copy of ClaudeUsageMonitorApp.swift. The original is
never modified.Contents/MacOS/), which is what makes
Bundle.main resolve to the app so Assets.xcassets and the seven .lproj folders load.The script picks the app bundle by modification time, and rebuilds when any source is
newer than the binary. Do not change this to sort by name: build/ accumulates version
directories, the alphabetically last one is not necessarily the newest, and rendering
against a stale bundle silently produces images with outdated strings and assets.
In scripts/docs-images/main.swift, inside the language loop:
MockUsage if needed (see the data rules).UserSettings.shared to the state the scene needs.renderImage(...) immediately, before touching settings again.write(...) with the <name>.<code>.<variant>@2x.png convention.Reset any setting the previous scene changed. Scenes run in sequence and share one
UserSettings, so a scene that forgets to reset inherits the last one's state.
Adding a language means extending docsLanguageCode and heroLabels. The hero captions
live in the renderer, not in the app's Localizable.strings — that file is for strings
the UI actually shows.
Each of these cost real debugging time.
SwiftUI views read UserSettings.shared when they render, not when they are
constructed. Building two views under different settings and rendering them together makes
both use whatever is in effect at render time — the first side-by-side hero came out with
two pace graphs for this reason. Always renderImage(...) per scene, then compose bitmaps.
Dark-variant PNGs are transparent and draw white content; viewers composite transparency onto white, so white text, hairlines and the monochrome icon all look missing. Small elements are just as deceptive — a 20pt icon in a 950pt canvas is easy to misread. This produced several rounds of chasing bugs that did not exist.
Use the bundled previewer before concluding anything is wrong. It needs no dependencies —
this is a Swift repo, swift runs a single file directly. Do not install Pillow or
ImageMagick for this.
S=.agents/skills/capture-usage4claude-screenshots/scripts/preview_on_background.swift
# whole image on GitHub's dark background (use ffffff for light)
swift $S docs/images/hero.zh-CN.dark@2x.png /tmp/check.png 0d1117
# top 50pt only, enlarged 3x — for the menu bar icon and other small elements
swift $S docs/images/hero.zh-CN.dark@2x.png /tmp/check.png 0d1117 50ImageRenderer cannot draw AppKit-backed controlsThey render as a yellow "unsupported" block. Usage4Claude/Helpers/DocsRenderMode.swift
holds the stand-ins, all inert in the shipping app:
DocsRenderMode.isActive — the flag.DocsScrollView — ScrollView renders its content as blank, with no error. Out of
scroll mode the content lays out fully and the enclosing frame clips it.DocsSegmentedPicker — replaces .pickerStyle(.segmented). Size it to its content;
NSSegmentedControl does not stretch to fill the row.UsageDetailView.menuButtonLabel(rotated:) — replaces the three-dot Menu.When writing a stand-in, copy what the control looks like on screen, not what its
source says. That Menu label carries .rotationEffect(.degrees(90)) which AppKit
ignores, so the replica must not rotate.
SettingsView also drops its fixed height under DocsRenderMode so the whole page renders.
The template icon is an alpha mask and the app leaves tinting to macOS. Offscreen there is
no system tinting, and the mask mixes two colour sources: rings use dynamic
NSColor.labelColor, digits use a hardcoded NSColor.black. Under a dark appearance the
rings turn white while the digits stay black.
Both halves are required:
NSApp.appearance pinned to .aqua (monochromeMenuBarIcon) for a
uniformly black mask..renderingMode(.template) + foregroundStyle.colorInvert() flips opaque regions too and turns the rings into solid blocks. Tinting the
NSImage itself (lockFocus + sourceAtop, or rebuilding a bitmap rep) yields an image
that exports to PNG correctly but renders empty through SwiftUI.
Applying .shadow to content shadows every element in it. With a transparent content
area each card, radio dot and checkbox casts its own shadow and the window reads as several
floating pieces. WindowChrome paints an opaque window background and puts the shadow on
the shape behind it; PopoverChrome draws the arrow and card as one Shape for the same
reason — separate views let the shadow trace the arrow's slanted edges.
isMultiProviderActive normally requires real accounts for both providers. Under DEBUG
it also accepts debugModeEnabled == true plus a custom display set containing both
providers' limit types. Use that instead of faking credentials.
Bundle.main is the app bundle, so the process reads and writes the release app's
preference domain. Every setting it touches is snapshotted and restored in a defer;
add new settings to that tuple or the user's app is left in screenshot state.
Light/dark is pinned with -AppleInterfaceStyle Light|Dark on the command line instead of
being written. NSArgumentDomain outranks everything and never touches disk, so output
does not depend on the machine's current appearance.
Numbers are chosen, not arbitrary. They live in MockUsage.
resetsAt drives x: elapsedRatio = 1 - remaining / window.MockUsage.anchor). Using Date() directly
makes the minutes differ on every run, so every re-render produces a meaningless diff.
Renders within the same hour are identical; across hours they still differ. Pinning it
completely would need the views to pass an injected now down to UsagePaceGraphMath —
the parameter exists, the views just do not use it.reset_after_seconds so it lands on an arbitrary minute, and the UI formats it with
minute precision while Claude's hour-precision resets_at does not. A round :00 there
looks like an inconsistent format.Hero — two groups side by side in one PNG, each a menu bar icon between two hairlines with the popover hanging below. Left: Claude, ring graph, colour menu bar icon with app icon. Right: Claude + Codex, pace graph, monochrome icon, percentages only. The pair carries the caption text.
No wallpaper, no clock, no traffic lights, no fake system chrome anywhere — it ages badly and this is a product illustration, not a screen capture. The only synthetic parts are the hairlines and the popover/window chrome that AppKit would otherwise provide.
Settings — the Display tab at full height, in WindowChrome. Reset the settings to a
representative default first (colour theme, icon + percentage, medium size, smart display,
ring graph); otherwise the shot inherits the hero's monochrome/pace state.
scripts/ in this skill now holds only preview_on_background.swift.
The CleanShot capture flow that used to live here is gone, along with
capture_usage4claude_window.sh, capture_current_display_all_languages.sh,
apply_scenario.sh and apply_reference_debug_values.sh. It drove the real cursor,
needed Accessibility permission for the agent process, and was fragile by its own
admission. If a scene is missing, extend the renderer rather than reviving it.
© f-is-h, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 2 other files (scripts) in .agents/skills/capture-usage4claude-screenshots of f-is-h/Usage4Claude.
Open the folder on GitHubat commit e0030f1
Capture Usage4claude Screenshots 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Capture Usage4claude Screenshots this skillf-is-h/Usage4Claude | 407 | — | ~3k | Automated safety check: Pass | MIT | |
| macOS DevelopmentKartikLabhshetwar/better-shot | 2.4k | 2 repos | ~735 | Automated safety check: Pass | Custom licence | |
| Code ReviewRobertoMachorro/Moped | 115 | — | ~2.1k | Automated safety check: Pass | GPL-3.0 | |
| Swiftui Debuggingst0012/cctop | 154 | — | ~2k | Automated safety check: Pass | MIT | |
| Swift ExpertJeffallan/claude-skills | 12k | — | ~1.5k | Automated safety check: Pass | MIT | |
| macOS View Refactorrobinebers/openusage | 4.3k | — | ~1.4k | Automated safety check: Pass | MIT |
KartikLabhshetwar/better-shot
Comprehensive macOS development guidance including Swift 6+, SwiftUI, SwiftData, architecture patterns, AppKit bridging, and macOS 26 Tahoe APIs.
RobertoMachorro/Moped
Review guidance for Moped, a sandboxed macOS SwiftUI text editor with a homegrown TextKit 1 editor core in the local MopedEditor package.
st0012/cctop
A skill your agent uses when debugging SwiftUI issues in this macOS app — views not updating, layout problems, unnecessary re-renders, state ownership bugs, Preview crashes, or NSHostingView/NSPanel…
Jeffallan/claude-skills
Builds Swift apps for Apple platforms with SwiftUI, protocol-oriented design, async/await, actors and Sendable checks, verified with swift build and swift test.
robinebers/openusage
Refactor macOS SwiftUI views and scenes into stable structure.
robinebers/openusage
Refactor macOS SwiftUI views and scenes with strong defaults for small dedicated subviews, stable sidebar and selection structure, explicit command and toolbar ownership, scene-aware state, and…
f-is-h/Usage4Claude
发布 Usage4Claude 新版本时使用。当用户说“发布新版本 / 发版 / 出新版 / release / 打 tag 发布 / 准备发版材料”等,用本 skill 引导完成从收集变更、编写 CHANGELOG 与 RELEASENOTES、更新版本号、编译验证,到发版 commit、CI 自动发布的完整流程。
Categories
Produce every Usage4Claude interface image used by the READMEs and docs. Capture Usage4claude Screenshots is an agent skill from f-is-h/Usage4Claude. Produce every Usage4Claude interface image used by the READMEs and docs.
Capture Usage4claude Screenshots fits situations like: asked to refresh README images; add a new documented scene; change mock data; adjust image sizing.
Run `npx skills add f-is-h/Usage4Claude --skill capture-usage4claude-screenshots -a claude-code`. Or copy the skill folder (.agents/skills/capture-usage4claude-screenshots in f-is-h/Usage4Claude) into .claude/skills/capture-usage4claude-screenshots in your project. Claude Code loads it when a task matches its description.
Run `npx skills add f-is-h/Usage4Claude --skill capture-usage4claude-screenshots -a codex`. Or copy the skill folder (.agents/skills/capture-usage4claude-screenshots in f-is-h/Usage4Claude) into .agents/skills/capture-usage4claude-screenshots in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add f-is-h/Usage4Claude --skill capture-usage4claude-screenshots -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/capture-usage4claude-screenshots, .gemini/skills/capture-usage4claude-screenshots, .github/skills/capture-usage4claude-screenshots and .opencode/skills/capture-usage4claude-screenshots in your project.
Going by SKILL.md and its folder, Capture Usage4claude Screenshots needs Swift for the scripts in its folder and the command-line tools its instructions call (swift and python3). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Capture Usage4claude Screenshots is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Capture Usage4claude Screenshots: macOS Development (KartikLabhshetwar/better-shot, 2.4k stars), Code Review (RobertoMachorro/Moped, 115 stars), Swiftui Debugging (st0012/cctop, 154 stars) and Swift Expert (Jeffallan/claude-skills, 12k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
f-is-h (a GitHub user) maintains it in f-is-h/Usage4Claude, which has 407 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on September 29, 2026.
Source: f-is-h/Usage4Claude on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.