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.
Retake Campfire's promotional images for every platform and form factor — the store listings (Play Store, App Store, Mac App Store, Microsoft Store), the Play Store feature graphic, Apple's product…
$ npx skills add pandulapeter/campfire --skill store-screenshots -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install pandulapeter/campfire store-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/pandulapeter/campfire.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/store-screenshots .claude/skills/store-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 "store-screenshots" agent skill from https://github.com/pandulapeter/campfire/tree/master/.claude/skills/store-screenshots into .claude/skills/store-screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "store-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/pandulapeter/campfire/tree/master/.claude/skills/store-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 pandulapeter/campfire --skill store-screenshots -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install pandulapeter/campfire store-screenshots --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pandulapeter/campfire.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/store-screenshots .agents/skills/store-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 "store-screenshots" agent skill from https://github.com/pandulapeter/campfire/tree/master/.claude/skills/store-screenshots into .agents/skills/store-screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "store-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 pandulapeter/campfire --skill store-screenshots -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install pandulapeter/campfire store-screenshots --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pandulapeter/campfire.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/store-screenshots .cursor/skills/store-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 "store-screenshots" agent skill from https://github.com/pandulapeter/campfire/tree/master/.claude/skills/store-screenshots into .cursor/skills/store-screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "store-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/pandulapeter/campfire.git --path .claude/skills/store-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 pandulapeter/campfire --skill store-screenshots -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install pandulapeter/campfire store-screenshots --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pandulapeter/campfire.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/store-screenshots .gemini/skills/store-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 "store-screenshots" agent skill from https://github.com/pandulapeter/campfire/tree/master/.claude/skills/store-screenshots into .gemini/skills/store-screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "store-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 pandulapeter/campfire store-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 pandulapeter/campfire --skill store-screenshots -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/pandulapeter/campfire.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/store-screenshots .github/skills/store-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 "store-screenshots" agent skill from https://github.com/pandulapeter/campfire/tree/master/.claude/skills/store-screenshots into .github/skills/store-screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "store-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 pandulapeter/campfire --skill store-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 pandulapeter/campfire store-screenshots --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pandulapeter/campfire.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/store-screenshots .opencode/skills/store-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 "store-screenshots" agent skill from https://github.com/pandulapeter/campfire/tree/master/.claude/skills/store-screenshots into .opencode/skills/store-screenshots/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "store-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.
store-screenshotsRetake Campfire's promotional images for every platform and form factor — the store listings (Play Store, App Store, Mac App Store, Microsoft Store), the Play Store feature graphic, Apple's product…
Store Screenshots is an agent skill from pandulapeter/campfire. Retake Campfire's promotional images for every platform and form factor — the store listings (Play Store, App Store, Mac App Store, Microsoft Store), the Play Store feature graphic, Apple's product page header and search results images, the README banners and campfire-songbook.com's screenshots and link preview. Renders them with the offscreen screenshot tool in tools/screenshots, checks them, frames them in the Screenshot Bro project and exports the store images to a new folder on the Desktop, the README banners…
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including scripts (for example `scripts/readme_banners.py` and `scripts/website_screenshots.py`).
It sits in Mobile, covering App store release and Technical documentation. It works with macOS. The repository describes itself as: A cross-platform songbook and metronome with a built-in chordPro editor, setlists, transposition, PDF export, and Dropbox sync. The licence is MPL-2.0.
8 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 94d4b7f. 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 2 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
mozilla.orgFrom 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.
Store Screenshots loads about 3k tokens when it runs. Until then it costs about 244 tokens; SKILL.md has 1,555 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 pandulapeter/campfire at commit 94d4b7f, republished under its MPL-2.0 licence (© pandulapeter). 1,555 words, ~3,047 tokens.
.claude/skills/store-screenshots/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.<!--
This file is part of Campfire.
Copyright (c) Pandula Péter 2017-2026.
https://github.com/pandulapeter/campfire
This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
If a copy of the MPL was not distributed with this file, You can obtain one at
https://mozilla.org/MPL/2.0/.
-->
Every image is made from the desktop build drawn offscreen as each platform (the platforms share every line of the
interface), with that platform's fonts, scale and system bars, at the exact pixels of the Screenshot Bro device frame
it goes into. Nothing here touches the production apps: the tool is tools/screenshots, which no app module depends
on, and the only seam in the app is PlatformImpersonation in :presentation's desktop source set, which the desktop
app never sets. See tools/screenshots/CLAUDE.md for how the tool works.
tools/screenshots/library/ (gitignored, never committed): a Campfire data folder's
library/, covers/ and preferences/preferences.json, copied from the user's desktop library without the sync
credentials, the sync index or the log. If it is missing, stop and ask. Never write into the user's real data folder.
Its setlists were trimmed for the shots (Frey-Tully Nuptials and Getting started); keep them that way.Campfire project (list_projects), and Full Disk Access for the IDE that
runs Claude Code (Android Studio), without which nothing can be staged in the app's sandbox (step 3).| What | Made from | Ends up in |
|---|---|---|
| Store listings (8 rows × 8 shots), Play Store banner, link preview, Apple header and search results | Shot.kt, Banners.kt → Screenshot Bro | ~/Desktop/Campfire store images <date>/, one folder per row (with the project's icon, poster and box art rows, which have no shots) |
| README banners (GitHub - Banner 1 / 2) | Banners.kt → Screenshot Bro | documentation/screenshots/01–06.webp, 1200×900 |
| Website screenshots | Website.kt, no Screenshot Bro | ../CampfireWebsite/assets/screenshots/*.webp at each file's own size |
| Website link preview | the exported Website - Link preview row | ../CampfireWebsite/assets/og-image.jpg, 1200×630 |
Raw renders go to the gitignored tools/screenshots/renders/, replaced on every run. Nothing is committed, in either
repository; the user reviews and commits.
Render. ./gradlew :tools:screenshots:run (in the background; one app start per image, a few seconds each)
writes every shot of Shot.kt on every listing Device, the multi-device rows of Banners.kt and the website set of
Website.kt into tools/screenshots/renders/<row label>/. --args="--only IPHONE,03-metronome,banners" renders
part of it (device enum names, shot ids, or listing, banners, website). A failed render is reported and the
run goes on. Never rebuild the tool while a render is running.
Check every image before importing anything: a contact sheet per shot (PIL), then any device that looks off at full size — the theme, nothing loading, no stray dialog or snackbar, the shot's rules (below), text fitting. Fix the shot or the tool and render again rather than importing a bad image.
Stage. Screenshot Bro is sandboxed and reads only its own container: copy renders/ into
~/Library/Containers/xyz.tleskiv.screenshot/Data/tmp/campfire/. The large Android tablet's frames are rotated
270°, so its images are staged rotated a quarter turn clockwise (PIL ROTATE_270).
Import. Take get_project first: the user arranges the rows by hand between runs, and their layout is kept
exactly — positions, sizes, tilts, stacking. import_screenshots fills a row's device frames one per column, in
column order, the rearmost frame of each column, and resizes every frame it fills to the image's aspect ratio,
so after every import put each frame's x, width and height back. Extra images append columns: never pass more
than the row has.
add_template, delete_shape the default device
it drops in, move the frame's x there), import, move it back, remove_template. Then restore the stacking with
z_order: front in back-to-front order, keeping every MacBook's black camera-housing strip above its frame.| Row label | Row id |
|---|---|
| Play Store - Android Phone | 961E2ED3-1432-46EA-AF1F-5738741BB18E |
| Play Store - Android Small Tablet | C6B36C5A-7011-4721-AD0F-CE92E91DC1F2 |
| Play Store - Android Large Tablet | 4AB75520-E483-4E51-93A8-568848CE24BB |
| Play Store - Chromebook | 15F6D06E-114E-468A-BEA1-E074FA445ECA |
| App Store - iPhone | CA8CB67F-AD3B-4CE6-95F1-1A23555C1320 |
| App Store - iPad | 5B53E8FA-F8D5-4D72-B0A6-58D1F847CB0E |
| Mac App Store - Mac | 09A157EA-A360-4800-B9F6-72E4ED90178F |
| Microsoft Store - Windows | C369F36A-B693-46C7-A53C-E8AA13CC6D53 |
| GitHub - Banner 1 | D14A5619-01BE-4E2D-A654-187E8467999A |
| GitHub - Banner 2 | 9B2BA297-3919-4691-A358-C90C3C2AAF95 |
| Play Store - Banner | 7EAB3190-9E8C-478D-B18A-3AD15B16DDA1 |
| Website - Link preview | EB3026C2-34AF-48BA-A338-DAD16A8014B9 |
| App Store - Header (21:9, 3840×1646, iOS 27+) | AACF099E-6929-47B0-8F4E-DF44DFEEC7B2 |
| App Store - Search results (3:2, 3840×2560, iOS 27+) | D93A0DED-074D-4C47-B097-5CAC6DEC5DCA |
If a row's label or column count is not what this table and the code expect, stop and say so. Headlines are the project's text shapes, never part of the images.
Look at every row with render_preview, a column at full size where anything is in doubt: the status bar's
time and the navigation labels uncut, the image filling its frame, nothing upside down or stretched.
Export with export_project (into the app's temp folder; a non-empty unrenderable means holes — report it).
Copy every row's folder except the two GitHub banners to a new ~/Desktop/Campfire store images <date>/. The
banners go to the README: python3 -I .claude/skills/store-screenshots/scripts/readme_banners.py <repo root>
followed by banner 1's three exported images and then banner 2's.
The website: python3 -I .claude/skills/store-screenshots/scripts/website_screenshots.py tools/screenshots/renders/Website "<Desktop folder>/Website - Link preview — 1200x630/01_Website - Link preview_en.png" "$HOME/Desktop/Campfire website images" writes every website screenshot at the size of the file it replaces, as
WebP, and the link preview as og-image.jpg; where the sibling CampfireWebsite repository is missing it writes
them to the Desktop folder instead.
Clean up the staging and export folders in the app's container, and report the Desktop folder, what was rendered and anything that looked off.
The listing alternates two dark, two light: 1–2 dark, 3–4 light, 5–6 dark, 7–8 light. Shared rules: the store screenshots are shown at 9:41 on Wednesday, October 7, 2026 (setlist dates are moved with the run's day, so their countdowns always read the same); the app icon anywhere in the system chrome is the default gradient one; Android phone frames are Screenshot Bro's Pixel frame; Share is shown on Android and iOS only; sync is a fake connected account, "Connected as Péter Pandula"; only public domain songs are opened full screen in the listing.
| # | Headline | Shot |
|---|---|---|
| 1 | Your songbook, on any screen | Songs, English filter, by artist, scrolled to Gotthard (pinned), "+" menu open |
| 2 | Laid out for the way you play | House of the Rising Sun (Traditional American); phones at 100% text with the Picking pattern folded, Chromebook at 100%, so the whole first verse shows |
| 3 | A metronome that knows each song | Metronome tab playing 6/8 at 236, beats 1 and 4 accented, caught on beat 1 |
| 4 | Setlists ready for the gig | Setlists by date: Frey-Tully Nuptials "In 2 days", Friday Night by the Lake "Tomorrow" |
| 5 | ChordPro editor with live preview | Home on the Range in the editor; Split wherever the app offers it, Edit otherwise; Shortcuts always open |
| 6 | Print a song or the whole set | Home on the Range exported: PDF, A4, landscape (portrait on the small Android tablet), two columns, every option on |
| 7 | Offline first, synced across devices | Settings → Library, sync connected |
| 8 | Make it yours, down to the icon | Settings → General |
The README banners are shots 1, 3, 2, 4, 5 on the Android phone, iPhone, iPad, small Android tablet and Mac — dark in banner 1, light and in reverse order in banner 2. The Play Store banner is the Android phone's shots 1 and 2; the link preview the Mac's 2 and the iPhone's 1; Apple's header the iPad's 4, the Mac's 2 and the iPhone's 1, and its search results image the iPad's 2 and the iPhone's 3, all dark.
The website's songs are set at the text size where page one ends exactly where a section ends, never inside one:
Still Alive 90% (Verse 2 in one column), Accidentally in Love 90% with the metronome panel open, I'll Be There for You
105% on the laptop. A song longer than a page is cut wherever a column ends, so these were found by rendering every
size from 80% to 130% in steps of 2.5% and reading where page one ends; if a song, a device or the layout changes, try
again the same way. Never fold the Chords section (or anything else) to make a song fit. The laptop is a Mac window
with no system chrome at 1.5× (Device.LAPTOP).
The listing is shots in Shot.kt, in store order; the website's are in Website.kt and the multi-device rows in
Banners.kt. A shot sets the preferences it needs (preferences, per device), prepares state a screen only reads as
it is first composed (prepare, e.g. a list's scroll position), then drives CampfireViewModel or taps what is
labelled with a string resource (drive, tap, tapIfPresent) — so it works in every language — and can catch a
metronome beat (beat). Keep each shot's rules in its comment and in the table above. Adding or removing a listing
shot also means adding or removing that column in every listing row of the project (copying a neighbor's frame and
headline), and updating the headlines there.
The system chrome is SystemChrome.kt, measured against the real systems (Android emulators, iOS simulators, the
desktop app's own window). The Chromebook and Windows rows are framed in MacBook Pros whose camera housing a black
rectangle of the project hides; their shots start the window under a black band of that rectangle's height
(36 and 38 dp), so if those rectangles or frames are moved or resized, measure again and update the band heights.
© pandulapeter, MPL-2.0. 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 .claude/skills/store-screenshots of pandulapeter/campfire.
Open the folder on GitHubat commit 94d4b7f
Store 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 |
|---|---|---|---|---|---|---|
| Store Screenshots this skillpandulapeter/campfire | 101 | — | ~3k | Automated safety check: Pass | MPL-2.0 | |
| Workbuddy Skin Studiocdredfox/workbuddy-skin-studio | 198 | — | ~1.5k | Automated safety check: Pass | MIT | |
| macOS Signing Entitlementsrobinebers/openusage | 4.3k | — | ~445 | Automated safety check: Pass | MIT | |
| Signing Entitlementsrobinebers/openusage | 4.3k | — | ~468 | Automated safety check: Pass | MIT | |
| iOS Accessibilitydpearson2699/swift-ios-skills | 1.2k | — | ~4.6k | Automated safety check: Pass | Custom licence | |
| Hunt macOSEncod3d-Sec/TORCH | 329 | — | ~1.9k | Automated safety check: Pass | MIT |
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.
robinebers/openusage
Inspect macOS signing, entitlements, and Gatekeeper issues. An agent skill from robinebers/openusage.
robinebers/openusage
Inspect signing, entitlements, hardened runtime, and Gatekeeper issues for macOS apps.
dpearson2699/swift-ios-skills
Build and audit SwiftUI, UIKit, and AppKit accessibility for VoiceOver, Voice Control, Switch Control, Full Keyboard Access, Dynamic Type, focus restoration, labels/traits/actions, traversal, custom…
Encod3d-Sec/TORCH
macOS attack hunting - foothold to root/persistence on a macOS host.
gustavscirulis/snapgrid
Generates smart App Store review prompt infrastructure with configurable conditions and platform detection.
pandulapeter/campfire
Code style, commenting, and documentation conventions for the Campfire codebase.
pandulapeter/campfire
The Campfire review-sweep process — read-only area reviewers, one plan file per verified finding, a README.md that indexes them into parallel lanes, an EXECUTION.md orchestrator brief, and later the…
pandulapeter/campfire
Prepare a Campfire release by writing a paste-ready GitHub release-notes draft (with the stores' "what's new" blurb and Play's update priority embedded in it), updating the localized in-app update…
pandulapeter/campfire
Commit message conventions for the Campfire repo. An agent skill from pandulapeter/campfire.
Works with
Categories
Retake Campfire's promotional images for every platform and form factor — the store listings (Play Store, App Store, Mac App Store, Microsoft Store), the Play Store feature graphic, Apple's product…. Store Screenshots is an agent skill from pandulapeter/campfire.com's screenshots and link preview.
Store Screenshots fits situations like: update the store screenshots / store images / listing screenshots / README; website screenshots; reorder one of them.
Run `npx skills add pandulapeter/campfire --skill store-screenshots -a claude-code`. Or copy the skill folder (.claude/skills/store-screenshots in pandulapeter/campfire) into .claude/skills/store-screenshots in your project. Claude Code loads it when a task matches its description.
Run `npx skills add pandulapeter/campfire --skill store-screenshots -a codex`. Or copy the skill folder (.claude/skills/store-screenshots in pandulapeter/campfire) into .agents/skills/store-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 pandulapeter/campfire --skill store-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/store-screenshots, .gemini/skills/store-screenshots, .github/skills/store-screenshots and .opencode/skills/store-screenshots in your project.
Going by SKILL.md and its folder, Store Screenshots needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.
SKILL.md names 1 domain. As links in the text: mozilla.org. 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.
Store Screenshots is published under the MPL-2.0 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 Store Screenshots: Workbuddy Skin Studio (cdredfox/workbuddy-skin-studio, 198 stars), macOS Signing Entitlements (robinebers/openusage, 4.3k stars), Signing Entitlements (robinebers/openusage, 4.3k stars) and iOS Accessibility (dpearson2699/swift-ios-skills, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
pandulapeter (a GitHub user) maintains it in pandulapeter/campfire, which has 101 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 9, 2026.
Source: pandulapeter/campfire on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.