Agent skill

Stock Image Assets

by dotnetdreamer in dotnetdreamer/open-screenshot-generator

Add properly licensed Adobe Stock photos to the Images palette library (e.g.

MITAuto-check passedMedia & Creative

Install Stock Image Assets

skills CLI
$ npx skills add dotnetdreamer/open-screenshot-generator --skill stock-image-assets -a claude-code

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

GitHub CLI
$ gh skill install dotnetdreamer/open-screenshot-generator stock-image-assets --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/dotnetdreamer/open-screenshot-generator.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/stock-image-assets .claude/skills/stock-image-assets && 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
stock-image-assets
GitHub stars
127
Token cost
~1.7k tokens
SKILL.md length
663 words
Files
4 (incl. scripts)
Skills in repo
13
Repo updated
First seen
Licence
MIT

At a glance

Add properly licensed Adobe Stock photos to the Images palette library (e.g.

  • Works in 9 steps: Init Adobe MCP — call… → Search free-tier Stock — → Curate visually — download rendition… → …
  • Asked to add more stock images/photos to the image library
  • SKILL.md covers Pipeline, Store badges: use OFFICIAL…, Existing wiring (don't rebuild) and License scope (documented in…
  • Runs JavaScript scripts from its folder; calls curl and node; reaches developer.apple.com and play.google.com

What it does

Stock Image Assets is an agent skill from dotnetdreamer/open-screenshot-generator. Add properly licensed Adobe Stock photos to the Images palette library (e.g. the Touch hand group) via the Adobe MCP — search free-tier Stock, license through the user's account, remove backgrounds, install as trimmed PNGs, update imageLibrary.ts and the license record. Use when asked to add more stock images/photos to the image library, expand the Touch group, or add a new photographic asset group.

Its SKILL.md is about 1.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including scripts (for example `scripts/contact-sheet.js`, `scripts/trim-install.js` and `scripts/white-key.js`).

It sits in Media & Creative, covering Image editing. It works with Model Context Protocol 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.

When your agent uses it

  • Asked to add more stock images/photos to the image library
  • Expand the Touch group
  • Add a new photographic asset group

Example prompts

  • “/stock-image-assets”

Requirements

  • Node.js

Workflow steps

9 steps, taken from the first numbered list in SKILL.md.

  1. Init Adobe MCP — call adobe_mandatory_init once, then load schemas via
  2. Search free-tier Stock —
  3. Curate visually — download rendition thumbnails, build a labeled contact
  4. License — asset_license_and_download_stock({assetId}) per asset.
  5. Remove backgrounds — image_remove_background({imageURI: downloadUrl})
  6. Trim + install — node .claude/skills/stock-image-assets/scripts/trim-install.js
  7. Update src/lib/imageLibrary.ts — add items with
  8. Update the license record — append rows to
  9. Verify — use the app-screenshots skill: Images tab → Browse →

What it can do on your machine

Read from SKILL.md and the folder at commit 968ad70. 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

    Ships 3 files in scripts/ (JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • curl
    • node

    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:

    • developer.apple.com
    • play.google.com
    • get.microsoft.com
    • images-na.ssl-images-amazon.com
    • f-droid.org

    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

Stock Image Assets loads about 1.7k tokens when it runs. Until then it costs about 105 tokens; SKILL.md has 663 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~105
When it runs · the whole SKILL.md, loaded when a task matches
~1.7k

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); the scripts in this folder are not scanned.

SKILL.md

The full file from dotnetdreamer/open-screenshot-generator at commit 968ad70, republished under its MIT licence (© dotnetdreamer). 663 words, ~1,669 tokens.

Download SKILL.mdSave it as .claude/skills/stock-image-assets/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
stock-image-assets
description
Add properly licensed Adobe Stock photos to the Images palette library (e.g. the Touch hand group) via the Adobe MCP — search free-tier Stock, license through the user's account, remove backgrounds, install as trimmed PNGs, update imageLibrary.ts and the license record. Use when asked to add more stock images/photos to the image library, expand the Touch group, or add a new photographic asset group.
metadata.internal
true

Licensed Stock Images for the Images Palette

Adds photographic assets to the app's Images tab (src/lib/imageLibrary.ts + public/elements/images/<group>/) using Adobe Stock, licensed through the user's connected Adobe account so there is a real license record on file.

Hard rules (user requirement — copyright):

  • NEVER crop assets out of reference screenshots the user shares — those only define what kind of asset to find.
  • NEVER download artwork from the web (Wikimedia, official brand SVGs, etc.).
  • Openverse/Wikimedia CC0+CC-BY were verified to have NO usable isolated studio photos — don't retry that route.
  • Every shipped asset must trace to an Adobe Stock license; keep docs/image-asset-licenses.md up to date in the same change.

Pipeline

  1. Init Adobe MCP — call adobe_mandatory_init once, then load schemas via ToolSearch: asset_search, asset_license_and_download_stock, image_remove_background (+ asset_inline_preview if needed).

  2. Search free-tier Stock — asset_search({entityScope: "StockAsset", query: "...", filters: {pricing: "free", contentType: "Photo"}, limit: 30}).

    • Queries like "hand pointing index finger isolated on white background" work well; "isolated on white" is the key phrase for cutout-friendly shots.
    • Combining pricing + contentType + orientation can return 0 hits — drop orientation if that happens.
    • renditionURL is a public CDN thumbnail (t3/t4.ftcdn.net) — safe to download with curl for curation; never ship it.
  3. Curate visually — download rendition thumbnails, build a labeled contact sheet (scripts/contact-sheet.js), and pick a consistent set (varied poses and skin tones; avoid busy clothing/backgrounds, gimmick shots, and isGenTech: true results if real photos are wanted).

  4. License — asset_license_and_download_stock({assetId}) per asset.

    • Free-tier assets license without consuming paid credits (state: "just_purchased").
    • Returned downloadUrl is a presigned S3 URL valid 1 hour; re-calling refreshes the URL without consuming another license.
    • Download the originals immediately after licensing. The Adobe MCP session token can expire mid-batch ("Your session token is about to expire") and only the user can re-authenticate (claude.ai connector settings). Licenses are permanent, but locally saved originals let work continue (e.g. local keying) while Adobe is unavailable.
  5. Remove backgrounds — image_remove_background({imageURI: downloadUrl}) (default transparent-PNG cutout mode; no options needed). Output keeps full resolution up to 8192px (larger inputs are downscaled — fine). Download each outputUrl with curl -L. Occasional HTTP 504 — retry once.

    • Fallback for crisp objects on plain white (food, products — NOT hair/people): local keying with scripts/white-key.js <inDir> <outDir> <ids>.
  6. Trim + install — node .claude/skills/stock-image-assets/scripts/trim-install.js <cutoutDir> <publicGroupDir> trims transparent borders (alpha > 8, 6px pad), caps the longest side at 1000px, and writes <group>-as<StockID>.png. The Stock ID in the filename is the provenance link — keep that convention.

  7. Update src/lib/imageLibrary.ts — add items with:

    • id: filename without extension (touch-as453449839)
    • label: short human label ("Pointing up", "Side point · deep tone")
    • defaultSize: scale so the longest side ≈ 430 canvas units, preserving the PNG's aspect ratio. A new group only needs a new entry in IMAGE_CATEGORIES; the palette (ElementPalette.tsx Images tab) renders groups generically.
  8. Update the license record — append rows to docs/image-asset-licenses.md (file, Stock ID, exact Stock title, license date). The user's full history lives at stock.adobe.com/license-history.

  9. Verify — use the app-screenshots skill: Images tab → Browse <Group> → screenshot the grid → click a tile (button[title="Add <label>"]) → confirm [data-element-id] count increments and the photo renders on the artboard.

Show full SKILL.md (163 more words)Show less

Store badges: use OFFICIAL vendor artwork only

Hand-drawn lookalike badges were rejected by the user ("knockoff"). The Badges group uses each vendor's official badge program artwork (this is the copyright-correct route — the badges exist for exactly this promotional use):

  • Apple: https://developer.apple.com/assets/elements/badges/download-on-the-app-store.svg
  • Google Play: https://play.google.com/intl/en_us/badges/static/images/badges/en_badge_web_generic.png
  • Microsoft Store: https://get.microsoft.com/images/en-us%20dark.svg
  • Amazon Appstore: https://images-na.ssl-images-amazon.com/images/G/01/mobile-apps/devportal2/res/images/amazon-appstore-badge-english-black.png
  • F-Droid: https://f-droid.org/badge/get-it-on.png
  • Samsung Galaxy Store badge URL (img.samsungapps.com) returns an HTML error — no known direct link.

Keep badges unmodified per vendor guidelines; record source + terms links in docs/image-asset-licenses.md.

Existing wiring (don't rebuild)

  • Palette: ElementPalette.tsx has the Images tab; tiles pass {imageSrc, imageAlt, name, defaultSize} styleProps with type 'image'.
  • Canvas: Artboard.tsx's image branch consumes those styleProps and sets objectFit: 'contain' for library assets.
  • next.config.ts has images.unoptimized: true, so plain public paths work.

License scope (documented in docs/image-asset-licenses.md)

Adobe Stock standard license covers commercial use in composited exports. Bundled palette assets are for composing exports — fine. If the app is ever marketed as a general asset marketplace/stock service, revisit the bundling question before adding more.

© dotnetdreamer, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files (scripts) in .claude/skills/stock-image-assets of dotnetdreamer/open-screenshot-generator.

  • SKILL.md
  • scripts/contact-sheet.js
  • scripts/trim-install.js
  • scripts/white-key.js

Open the folder on GitHubat commit 968ad70

Compare with similar skills

Stock Image Assets 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.

Stock Image Assets compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Stock Image Assets this skilldotnetdreamer/open-screenshot-generator127—~1.7kAutomated safety check: PassMIT
Fal AI Generationwitnesstodark/mr-mak-workspace347—~1kAutomated safety check: NotesMIT
Nano Banana Proswarmclawai/swarmclaw689—~481Automated safety check: PassMIT
Imageguaardvark/guaardvark258—~1.8kAutomated safety check: PassMIT
Audio And Videoglifxyz/glif-mcp-server213—~1.6kAutomated safety check: PassMIT
Edit Imagesglifxyz/glif-mcp-server213—~778Automated safety check: PassMIT

Similar skills

  • Fal AI Generation

    witnesstodark/mr-mak-workspace

    Generate and edit images, create video, audio, 3D assets or material maps through fal.ai MCP or the Python queue client.

    347 GitHub stars~1k tokensUpdated 2 days ago
    Media & CreativeAuto-check: notes
  • Nano Banana Pro

    swarmclawai/swarmclaw

    Generate or edit images via Gemini 3 Pro Image (Nano Banana Pro).

    689 GitHub stars~481 tokensUpdated 3 mo ago
    Media & CreativeAuto-check passed
  • Image

    guaardvark/guaardvark

    Generate or edit images on the user's own GPU through Guaardvark: single images, instruction edits, background cut-outs, inpaint and outpaint, consistent characters from the Cast Library, and batch…

    258 GitHub stars~1.8k tokensUpdated today
    Media & CreativeAuto-check passed
  • Audio And Video

    glifxyz/glif-mcp-server

    Make or edit audio and video with Glif, from a text brief or from a reference image, video or audio file.

    213 GitHub stars~1.6k tokensUpdated yesterday
    Media & CreativeAuto-check passed
  • Edit Images

    glifxyz/glif-mcp-server

    Edit an existing image with Glif: remove the background, erase or replace objects, expand the canvas, restore or upscale, retouch, restyle or change one detail.

    213 GitHub stars~778 tokensUpdated yesterday
    Media & CreativeAuto-check passed
  • Web Visuals

    glifxyz/glif-mcp-server

    Make images, textures, illustrations and background video for a website or app you are building, with Glif, and wire them into the code.

    213 GitHub stars~1.5k tokensUpdated yesterday
    Media & CreativeAuto-check passed

More from dotnetdreamer/open-screenshot-generator

All 13 skills in this repo
  • App Preview Video

    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…

    127 GitHub stars~3.3k tokensUpdated today
    Auto-check passed
  • App Screenshots

    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…

    127 GitHub stars~5.1k tokensUpdated today
    Auto-check: notes
  • Editor Tools

    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…

    127 GitHub stars~3.8k tokensUpdated today
    Auto-check passed
  • Gpt4free Provider Sync

    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.

    127 GitHub stars~2.3k tokensUpdated today
    Auto-check passed
  • Store Compliance

    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…

    127 GitHub stars~3k tokensUpdated today
    Auto-check passed
  • Store Localization

    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…

    127 GitHub stars~3.8k tokensUpdated today
    Auto-check passed

Questions about Stock Image Assets

What does Stock Image Assets do?

Add properly licensed Adobe Stock photos to the Images palette library (e.g. Stock Image Assets is an agent skill from dotnetdreamer/open-screenshot-generator.g.

When should I use Stock Image Assets?

Stock Image Assets fits situations like: asked to add more stock images/photos to the image library; expand the Touch group; add a new photographic asset group.

How do I install Stock Image Assets in Claude Code?

Run `npx skills add dotnetdreamer/open-screenshot-generator --skill stock-image-assets -a claude-code`. Or copy the skill folder (.claude/skills/stock-image-assets in dotnetdreamer/open-screenshot-generator) into .claude/skills/stock-image-assets in your project. Claude Code loads it when a task matches its description.

How do I install Stock Image Assets in Codex?

Run `npx skills add dotnetdreamer/open-screenshot-generator --skill stock-image-assets -a codex`. Or copy the skill folder (.claude/skills/stock-image-assets in dotnetdreamer/open-screenshot-generator) into .agents/skills/stock-image-assets in your project. Codex loads it when a task matches its description.

Can I use Stock Image Assets 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 dotnetdreamer/open-screenshot-generator --skill stock-image-assets -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/stock-image-assets, .gemini/skills/stock-image-assets, .github/skills/stock-image-assets and .opencode/skills/stock-image-assets in your project.

What does Stock Image Assets need to run?

Going by SKILL.md and its folder, Stock Image Assets needs JavaScript for the scripts in its folder and the command-line tools its instructions call (curl and node). Our summary lists: Node.js.

Does Stock Image Assets access the network?

SKILL.md names 5 domains. In commands or code: developer.apple.com, play.google.com, get.microsoft.com, images-na.ssl-images-amazon.com and f-droid.org; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.

Is Stock Image Assets 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Stock Image Assets use?

Stock Image Assets 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 Stock Image Assets use?

About 1.7k tokens (SKILL.md is roughly 6.7k 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 Stock Image Assets?

Skills that share tags, products or a category with Stock Image Assets: Fal AI Generation (witnesstodark/mr-mak-workspace, 347 stars), Nano Banana Pro (swarmclawai/swarmclaw, 689 stars), Image (guaardvark/guaardvark, 258 stars) and Audio And Video (glifxyz/glif-mcp-server, 213 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Stock Image Assets?

dotnetdreamer (a GitHub user) maintains it in dotnetdreamer/open-screenshot-generator, which has 127 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 10, 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.