Release Asc CLI
rorkai/App-Store-Connect-CLI
Publish and verify a new release of the App-Store-Connect-CLI repository.
Checks that rendered store assets will actually be accepted, and then ships them, using the open-screenshot-generator CLI: osg verify audits the produced PNGs and MP4s against App Store and Google…
$ npx skills add dotnetdreamer/open-screenshot-generator --skill store-compliance -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install dotnetdreamer/open-screenshot-generator store-compliance --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/dotnetdreamer/open-screenshot-generator.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/store-compliance .claude/skills/store-compliance && 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-compliance" agent skill from https://github.com/dotnetdreamer/open-screenshot-generator/tree/main/skills/store-compliance into .claude/skills/store-compliance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "store-compliance", 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/dotnetdreamer/open-screenshot-generator/tree/main/skills/store-complianceType 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 dotnetdreamer/open-screenshot-generator --skill store-compliance -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install dotnetdreamer/open-screenshot-generator store-compliance --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnetdreamer/open-screenshot-generator.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/store-compliance .agents/skills/store-compliance && 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-compliance" agent skill from https://github.com/dotnetdreamer/open-screenshot-generator/tree/main/skills/store-compliance into .agents/skills/store-compliance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "store-compliance", 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 dotnetdreamer/open-screenshot-generator --skill store-compliance -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install dotnetdreamer/open-screenshot-generator store-compliance --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnetdreamer/open-screenshot-generator.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/store-compliance .cursor/skills/store-compliance && 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-compliance" agent skill from https://github.com/dotnetdreamer/open-screenshot-generator/tree/main/skills/store-compliance into .cursor/skills/store-compliance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "store-compliance", 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/dotnetdreamer/open-screenshot-generator.git --path skills/store-compliance--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 dotnetdreamer/open-screenshot-generator --skill store-compliance -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install dotnetdreamer/open-screenshot-generator store-compliance --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnetdreamer/open-screenshot-generator.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/store-compliance .gemini/skills/store-compliance && 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-compliance" agent skill from https://github.com/dotnetdreamer/open-screenshot-generator/tree/main/skills/store-compliance into .gemini/skills/store-compliance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "store-compliance", 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 dotnetdreamer/open-screenshot-generator store-complianceInstalls 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 dotnetdreamer/open-screenshot-generator --skill store-compliance -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/dotnetdreamer/open-screenshot-generator.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/store-compliance .github/skills/store-compliance && 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-compliance" agent skill from https://github.com/dotnetdreamer/open-screenshot-generator/tree/main/skills/store-compliance into .github/skills/store-compliance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "store-compliance", 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 dotnetdreamer/open-screenshot-generator --skill store-compliance -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install dotnetdreamer/open-screenshot-generator store-compliance --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dotnetdreamer/open-screenshot-generator.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/store-compliance .opencode/skills/store-compliance && 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-compliance" agent skill from https://github.com/dotnetdreamer/open-screenshot-generator/tree/main/skills/store-compliance into .opencode/skills/store-compliance/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "store-compliance", 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-complianceChecks that rendered store assets will actually be accepted, and then ships them, using the open-screenshot-generator CLI: osg verify audits the produced PNGs and MP4s against App Store and Google…
Store Compliance is an agent skill from dotnetdreamer/open-screenshot-generator. Checks that rendered store assets will actually be accepted, and then ships them, using the open-screenshot-generator CLI: osg verify audits the produced PNGs and MP4s against App Store and Google Play rules (required size tiers, accepted alternatives, per locale caps, transparency, file size, aspect ratio, preview duration) and exits 3 on a failure, and osg upload pushes the set to App Store Connect or Google Play with the user's own developer credentials. Use this whenever someone asks whether their screenshots…
Its SKILL.md is about 3k 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 App store release. It works with App Store Connect and Tauri. The repository describes itself as: Open source Canva with CLI/GUI, AI Agent, MCP for App Store and Play Store screenshots. Free alternative to AppScreens, AppLaunchpad and Previewed. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 556578e. 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.
Shell commands in SKILL.md call:
npxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
OSG_ASC_KEY_IDFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Store Compliance loads about 3k tokens when it runs. Until then it costs about 206 tokens; SKILL.md has 1,692 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); files beside SKILL.md are not scanned.
The full file from dotnetdreamer/open-screenshot-generator at commit 556578e, republished under its MIT licence (© dotnetdreamer). 1,692 words, ~3,025 tokens.
.claude/skills/store-compliance/SKILL.md (or your agent's skills folder).The end state: osg verify exits 0, osg/osg.manifest.json describes every file that exists, and
either the set is uploaded to the right listing or the user has an exact list of what to fix.
Run verify before every upload, without exception. Both stores accept an upload and then fail it
asynchronously, App Store Connect hours later during asset processing, and a failure at that point
gives you a state code rather than an explanation.
| Code | Meaning | What to do |
|---|---|---|
| 0 | everything passed | ship it |
| 1 | usage, config or environment | fix the config or the machine, nothing was produced |
| 2 | the browser, the page or a tool call failed | a render problem, re-run with --verbose |
| 3 | the files exist and a store rule rejects them | fix the named rule and re-render |
npx -y open-screenshot-generator@0 verify
npx -y open-screenshot-generator@0 verify --json--json prints one machine readable object with a row per finding, which is what to use in CI and
what to parse when reporting back.
| Finding | What it means | Fix |
|---|---|---|
| Missing tier | a format in formats produced no file | re-run render, or drop the tier from the config |
| Wrong pixel size | the board size is not an accepted size for that tier | set the artboard to the preset, or change formats |
| Too many images | more than the store's cap for that slot and locale | drop boards, the first two are what people see anyway |
| Too few images | under the store's floor (Play needs 2 phone shots) | add a board |
| Transparency | the PNG carries an alpha channel | give the board an opaque background, then re-render |
| File too large | over the store's per image limit | reduce visual complexity, or render the smaller accepted size |
| Aspect ratio | Play's long side is more than twice the short side | render the Play tier, not the iPhone tier, see below |
| Locale gap | one language has fewer boards than the base | the missing boards did not render, check the locale list |
| Placeholder copy | a headline still says the template's text, or a board is still named "Blank Artboard" | rename the board and write the copy, the board name becomes the file name |
| Empty device frame | a device slot still holds shipped placeholder art | place the app's real screenshot in it |
| Video duration | outside 15 to 30 seconds | set_preview_duration, or video.duration |
| Video dimensions | not 886x1920 or 1920x886 | re-render, the size is forced by the mode |
| Video codec | not H.264 | the browser has no H.264, see app-preview-video |
Placeholder copy and an empty device frame are not store rules. They are the two failures that
actually get shipped, so verify treats them as failures too.
You do not need every size. Apple scales the required tier down to the smaller ones.
| Slot | Default size | Also accepted | Status |
|---|---|---|---|
| iPhone with Dynamic Island (medium display) | 1206x2622 | 1179x2556, or the rotated sizes | required for every iPhone app |
| iPhone with Dynamic Island (large display) | 1290x2796 | 1260x2736, 1320x2868, or the rotated sizes | optional separate slot |
| iPad 13 inch | 2064x2752 | 2048x2732 | required if the app runs on iPad |
| Apple Watch | 422x514 | 410x502, 416x496, 396x484, 368x448, 312x390 | required for a watch app |
| Mac | 2560x1600 | 2880x1800, 1440x900, 1280x800, always 16:10 | required for a Mac app |
| Apple TV | 1920x1080 | 3840x2160 | required for a tvOS app |
| Apple Vision Pro | 3840x2160 | required for a visionOS app |
Older iPhone and iPad slots (6.5 inch, 5.5 inch, 4.7 inch, iPad 11 inch, 10.5 inch, 9.7 inch) still exist and are optional. Fill them only if the user asks. Every iPhone and iPad slot also accepts the rotated size, so a landscape app renders the same tier sideways. Watch, Mac, TV and Vision are one orientation only.
The default CLI format is ios-6-3 (1206x2622), and ios and iphone mean the same.
ios-6-9 and ios-large convert to the optional large slot at 1290x2796. The bundled
templates are built at 1206x2622, so a project built from one already fits the
required slot. Other canvas presets require creating or resizing the
artboards first, then rendering or uploading with --formats as-is to keep their dimensions.
Caps and formats:
| Slot | Size rule | Count |
|---|---|---|
| Phone screenshots | 320 to 3840 px per side, long side at most 2x the short side | 2 to 8, at least 2 required |
| 7 inch tablet | same rule, 1200x1920 recommended | up to 8 |
| 10 inch tablet | same rule, 1600x2560 recommended | up to 8 |
| Wear OS, Android TV | same rule | up to 8 each |
| Feature graphic | exactly 1024x500 | 1, required on every listing |
| App icon | exactly 512x512 | 1, required to publish |
| Android TV banner | exactly 1280x720 | 1 |
PNG or JPEG, 8 MB maximum per image.
Play's aspect rule blocks the iPhone canvas. 1206x2622 is 2.17:1, and Play needs the long side to
be at most twice the short side. Play rejects it. Use the play-phone preset (1080x1920) for the
Play tier rather than re-uploading the App Store files. That rule is Google's, verified in their own
docs, and it is not negotiable.
Play also wants a promo video as a YouTube URL, not an uploaded file. The styled video mode
produces a good file for that, but you upload it to YouTube and paste the link into Play Console.
npx -y open-screenshot-generator@0 verify && npx -y open-screenshot-generator@0 uploadThe upload uses the user's own developer credentials and talks to Apple and Google directly. No server belonging to this project is involved at any point.
Rules, in priority order:
osg/osg.config.ts. That file is committed. There is no credential field in
it, on purpose..p8, Google's is a service account
JSON. Add both to .gitignore before you download them.Set the environment variables the CLI documents, then run the command. Confirm the exact names with
osg upload --help for the release in use:
export OSG_ASC_ISSUER_ID=... # App Store Connect API issuer id, a UUID
export OSG_ASC_KEY_ID=... # the key id
export OSG_ASC_KEY_FILE=./secrets/AuthKey_XXXX.p8
npx -y open-screenshot-generator@0 upload$env:OSG_ASC_ISSUER_ID = '...'
$env:OSG_ASC_KEY_ID = '...'
$env:OSG_ASC_KEY_FILE = './secrets/AuthKey_XXXX.p8'
npx -y open-screenshot-generator@0 uploadPowerShell has no inline environment prefix, so VAR=x command does not work there. Set them on
their own lines, as above.
For Google Play, one variable pointing at the service account JSON:
export OSG_PLAY_KEY_FILE=./secrets/play-service-account.json
npx -y open-screenshot-generator@0 upload --store playThe Apple key needs the App Manager role. The Play service account has to be invited in Play Console and the Android Developer API has to be enabled on the project.
App Store Connect reserves each asset, uploads it in chunks to pre signed URLs, then commits it with a checksum. Every one of those calls returns 2xx for a wrong sized image. Apple then processes the asset asynchronously and it fails minutes to hours later. The upload therefore polls the delivery state and reports what Apple actually concluded, which is the only reason it can be trusted when it says the upload worked. Do not treat a fast success message from any other tool as acceptance.
Screenshots hang off a set scoped to (version, localization, display type), so a mixed project is grouped by resolved display type and each group gets its own set.
Screenshots are frozen once a version is submitted. Only a version in an editable state accepts them, and writing to one in review comes back 409. The version has to leave review first. Nothing is preselected for you, because arming an upload against a frozen version is worse than asking.
Google Play opens a staged edit, uploads into listings/<language>/<imageType>, validates, then
commits. Nothing is public until the commit, and a thrown error discards the whole edit, so a failed
run cannot leave a half updated listing. Some accounts refuse automatic review submission and say so
in the commit error; the client retries without sending for review and reports that it did.
Apple returns 401 or 403. Either the key is wrong or the key does not have the App Manager role. The two are indistinguishable in practice, so check both rather than guessing.
Play returns 403. Almost always setup, not code: the service account was never invited in Play Console, or the Android Developer API is not enabled.
Play returns 404. A package name typo, or an app that has never been published. Play refuses API edits before the first release.
Apple accepted it and then the screenshot disappeared. The asset delivery state went to FAILED.
That is a size or a format problem, and osg verify catches every case of it before the upload.
"This version cannot be edited." It is in review or already released. Create the next version in App Store Connect first.
Verify passes and the store still complains about content. The mechanical rules are what verify
covers. Review guidelines are not mechanical: do not show a device frame inside the screenshot of a
different device, do not show competing platforms' branding, do not put an award or a rating in the
image that the app did not earn, and do not show UI that is not in the shipped build. Those are
human review calls and they are also the ones that cost a week.
A screenshot shows content that is not in the build. That is the most common human review rejection of all. If the design invented a stat, a chart or a testimonial, change it.
verify flagged, one element at a time© dotnetdreamer, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/store-compliance of dotnetdreamer/open-screenshot-generator.
Open the folder on GitHubat commit 556578e
Store Compliance 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 Compliance this skilldotnetdreamer/open-screenshot-generator | 126 | — | ~3k | Automated safety check: Pass | MIT | |
| Release Asc CLIrorkai/App-Store-Connect-CLI | 7.7k | — | ~2.4k | Automated safety check: Pass | MIT | |
| App Store Release Flowrorkai/app-store-connect-cli-skills | 1.1k | 2 repos | ~2k | Automated safety check: Pass | MIT | |
| App Store Submission Healthrorkai/app-store-connect-cli-skills | 1.1k | 2 repos | ~2.2k | Automated safety check: Pass | MIT | |
| App Store Preflight Skillstruongduy2611/app-store-preflight-skills | 1.4k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Asc Localize MetadataCamilleScholtz/swmpc | 239 | 5 repos | ~2.8k | Automated safety check: Pass | EUPL-1.2 |
rorkai/App-Store-Connect-CLI
Publish and verify a new release of the App-Store-Connect-CLI repository.
rorkai/app-store-connect-cli-skills
Orchestrates App Store releases with the asc CLI: staging a version, uploading or building, publishing and submitting for review, with dry-run and confirmation gates.
rorkai/app-store-connect-cli-skills
Diagnoses why an App Store version cannot be submitted or is stuck in review, using the asc CLI for validation, repair routing, status checks and retry decisions.
truongduy2611/app-store-preflight-skills
Scan an iOS/macOS Xcode project for common App Store rejection patterns before submission.
CamilleScholtz/swmpc
Automatically translate and sync App Store metadata (description, keywords, what's new, subtitle) to multiple languages using LLM translation and asc CLI.
rorkai/app-store-connect-cli-skills
Creates a new App Store Connect app record by driving the New App form through browser automation, for cases where no public API covers app creation.
dotnetdreamer/open-screenshot-generator
Builds an App Store App Preview video (and a Play Store or landing page promo cut) from a screen recording of the app, using the open-screenshot-generator CLI (osg video): it starts from one of 20…
dotnetdreamer/open-screenshot-generator
Drive Open Screenshot Generator headlessly (puppeteer-core + Edge) to take UI screenshots, add palette elements, upload device screenshots, export artboard PNGs, and regenerate the 3D device…
dotnetdreamer/open-screenshot-generator
Drives the live Open Screenshot Generator editor tool by tool over MCP, using osg mcp to expose the design tools (artboards, elements, backgrounds, fonts, the asset libraries, templates, App Preview…
dotnetdreamer/open-screenshot-generator
Check the latest xtekky/gpt4free releases for provider additions/changes and decide whether Open Screenshot Generator's AI providers need the same.
dotnetdreamer/open-screenshot-generator
Add properly licensed Adobe Stock photos to the Images palette library (e.g.
dotnetdreamer/open-screenshot-generator
Ships one screenshot design in many App Store and Play Store languages using the open-screenshot-generator CLI (osg localize): it adds store locales to an existing project, writes per language copy…
Works with
Categories
Checks that rendered store assets will actually be accepted, and then ships them, using the open-screenshot-generator CLI: osg verify audits the produced PNGs and MP4s against App Store and Google…. Store Compliance is an agent skill from dotnetdreamer/open-screenshot-generator. Checks that rendered store assets will actually be accepted, and then ships them, using the open-screenshot-generator CLI: osg verify audits the produced PNGs and MP4s against App Store and Google Play rules (required size tiers, accepted alternatives, per locale caps, transparency, file size, aspect ratio, preview duration) and exits 3 on a failure, and osg upload pushes the set to App Store Connect or Google Play with the user's own developer credentials.
Store Compliance fits situations like: tasks that involve App store release.
Run `npx skills add dotnetdreamer/open-screenshot-generator --skill store-compliance -a claude-code`. Or copy the skill folder (skills/store-compliance in dotnetdreamer/open-screenshot-generator) into .claude/skills/store-compliance in your project. Claude Code loads it when a task matches its description.
Run `npx skills add dotnetdreamer/open-screenshot-generator --skill store-compliance -a codex`. Or copy the skill folder (skills/store-compliance in dotnetdreamer/open-screenshot-generator) into .agents/skills/store-compliance 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 dotnetdreamer/open-screenshot-generator --skill store-compliance -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-compliance, .gemini/skills/store-compliance, .github/skills/store-compliance and .opencode/skills/store-compliance in your project.
Going by SKILL.md and its folder, Store Compliance needs the command-line tools its instructions call (npx) and credentials named OSG_ASC_KEY_ID. Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npx, which can reach the network depending on how they are called. 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. Review the folder before installing.
Store Compliance is published under the MIT licence (declared in SKILL.md). 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 Compliance: Release Asc CLI (rorkai/App-Store-Connect-CLI, 7.7k stars), App Store Release Flow (rorkai/app-store-connect-cli-skills, 1.1k stars), App Store Submission Health (rorkai/app-store-connect-cli-skills, 1.1k stars) and App Store Preflight Skills (truongduy2611/app-store-preflight-skills, 1.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
dotnetdreamer (a GitHub user) maintains it in dotnetdreamer/open-screenshot-generator, which has 126 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 7, 2026.
Source: dotnetdreamer/open-screenshot-generator on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.