image-studio
Skill106 starsChanged 9 months agoMITView on GitHub
Create, edit, find, or reuse images, logos, icons, illustrations, and visual assets through a private Image Studio library and MCP workflow.
3 other projects use a version of this.
Adopted by
Most recently taken up by
- Remote-Arc/remote-arctheir own version, first seen Nov 1, 2026
- yaohuangguan/remote-arctheir own version, first seen Oct 17, 2026
- flurdy/agent-skillstheir own version, first seen Aug 9, 2026
Other versions3 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 3
- flurdy/agent-skills★ 9same name
- Remote-Arc/remote-arc★ 5same name
- yaohuangguan/remote-arc★ 5same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository186 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- accessibility-a11ySkill
- agent-accessibility-expertSkill
- agent-android-developerSkill
- agent-api-designerSkill
- agent-api-integration-specialistSkill
- agent-audio-engineerSkill
- agent-auth-specialistSkill
- agent-blockchain-developerSkill
- agent-brand-strategistSkill
- agent-browser-extension-developerSkill
- agent-browserSkill
- agent-cli-developerSkill
- agent-cloud-architectSkill
- agent-code-explainerSkill
- agent-compliance-engineerSkill
- agent-cpp-expertSkill
- agent-database-expertSkill
- agent-data-engineerSkill
- agent-desktop-developerSkill
- agent-desktopSkill
- agent-devops-engineerSkill
- agent-devsecops-engineerSkill
- agent-django-fastapi-expertSkill
- agent-documentation-writerSkill
- agent-e2e-test-specialistSkill
- agent-email-specialistSkill
- agent-embedded-developerSkill
- agent-event-driven-architectSkill
- agent-flutter-developerSkill
- agent-game-developerSkill
- agent-go-expertSkill
- agent-graphic-designerSkill
- agent-graphql-architectSkill
- agent-i18n-specialistSkill
- agent-ios-developerSkill
- agent-kotlin-expertSkill
- agent-macos-developerSkill
- agent-microservices-architectSkill
- agent-migration-specialistSkill
- agent-ml-engineerSkill
- agent-mobile-architectSkill
- agent-mobile-release-managerSkill
- agent-monetization-expertSkill
- agent-motion-designerSkill
- agent-next-js-expertSkill
- agent-observability-engineerSkill
- agent-payment-billing-specialistSkill
- agent-product-analytics-specialistSkill
- agent-product-managerSkill
- agent-pwa-specialistSkill
- agent-python-expertSkill
- agent-realtime-specialistSkill
- agent-rust-expertSkill
- agent-seo-specialistSkill
- agent-serverless-specialistSkill
- agent-startup-advisorSkill
- agent-svelte-expertSkill
- agent-teamsSkill
- agent-technical-writerSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
4 rules. 0 are common, 3 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 3 edited versions we read keep these.
3
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 20
Write a concise, sanitized visual brief: purpose, subject, composition, style, palette, aspect/dimensions, background/transparency, exact …
- Distinctive: line 48
If a response was lost without a job ID:
- Very specific: line 50
Read the durable request record and any existing native tool receipt.
- Distinctive: line 52
If that read-only route is unavailable, inaccessible, or inconclusive, ask the maintainer to locate the original job by the preserved …
“Common” is measured: kept by at least 6 in 10 of the 3 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Image Studio
Use for any request to create, edit, find, or reuse an image, logo, icon, illustration, or visual asset, including assets needed inside another task. Start automatically; no slash command is required. An explicit request for another tool still wins. Pure layout/CSS or code-only changes do not require an image job.
Private context and reuse
- Read
~/.claude/local/image-studio.mdbefore calling tools. It supplies the trusted origin, native server names, dynamic knowledge-root resolution, confidentiality exclusions, job-record location, and local media routing. Keep those details private. If it is missing, stop service operations and report the missing descriptor; never guess an endpoint or credential. - Discover the connected native MCP server and its advertised schemas. Use its operations directly; do not manufacture a tool name or connection. A missing or unauthenticated connection is a setup blocker, never authority to use another paid provider or change login state.
- Call
list_assetsfirst, with only safe filters, before refinement or generation. Use optionalq,project,favorite,limit(1–100), and the returned opaquenextCursorascursorwith unchanged filters. Reuse a fitting asset viaget_asset; do not regenerate an adequate match. Token-scoped results cover only accessible assets, not the full library. For a find-only request, stop after reuse/search results or explain the gap; finding does not authorize a paid replacement. - For a named host, project, brand, person, or someone's project, resolve its meaning with a relevant-only filename/index search under the descriptor's dynamically resolved knowledge root. Read only matching context. If context changes the safe search terms, narrow the library search again. Do not send private names as search/project metadata merely to find their meaning.
- Private knowledge may guide interpretation locally. It must not enter provider briefs, prompts, reference images, labels, filenames, idempotency keys, or service metadata. Apply the descriptor's exclusions to all outbound fields and references. Use a safe visual abstraction (shape, palette, mood, composition) that carries no confidential identity or facts. If the task cannot be represented safely, ask for an allowed abstraction or explain the blocker; do not silently disclose. Recheck the refined prompt before image submission.
Brief, options, and admission
Write a concise, sanitized visual brief: purpose, subject, composition, style, palette, aspect/dimensions, background/transparency, exact approved visible text, references, and must-avoid details. Include only what the asset needs. Preserve source originals; editing requires a derived result.
Call get_options ({}) for supported preset IDs, model IDs, constraints, prices, and refinement availability; call budget ({}) before paid work. Select supported combinations rather than guessing IDs or features. A reservation or estimate is not an actual charge or a guaranteed ceiling. Respect existing authorization and caps. Stop on paused, stale balance, missing cycle, expiry, allowance, token-cap, or project restrictions; never switch tokens, increase limits, or use a new key to bypass a denial.
Default prompt refinement for an authorized new image/edit is refine_prompt using Claude Opus 5.5, model claude-opus-5-5, effort high, unless the user requests otherwise. This is a task-specific service setting, not a change to the agent's own model. Confirm that pair in get_options; if unavailable or refinement is not authorized, report the limitation and obtain the user's choice before substituting a paid model. Refinement itself spends Anthropic budget. A find/reuse task needs no refinement.
Use Later / Batch when the user allows waiting and the catalog supports it. Explain the longer completion window and estimate; do not imply a local queue is discounted Batch. Otherwise use standard delivery. Never create extra variants or larger image counts merely because a cap allows them.
Durable intent and submission
Before each paid operation, persist a unique opaque idempotency key and the exact sanitized payload in the descriptor's private, non-repository request store. Use separate keys for refinement and each intended image. A key contains no host, person, project, path, or credential; a UUID is suitable. Default to one image per intended job (n: 1); requested variants are separate intended jobs with separate keys. Preserve all keys across restarts and lost replies. Record returned job/asset IDs, provider receipts, observed status, and separate refinement/image cost evidence immediately; do not rely on chat memory. Never persist credentials there.
Current input contracts (live advertised schemas take precedence):
refine_prompt:{idempotencyKey, prompt, presetId, model?, effort?, project?}→{prompt, usd}. Pin the selected model and effort explicitly. Sanitize its result before the next call.generate_image:{idempotencyKey, prompt, presetId, project?, overrides?}→{job, created}.edit_image: generation fields plusreferenceAssetIds(1–16 existing accessible asset IDs, subject to model limits) →{job, created}. There is no external-image upload tool or route. A local attachment cannot be turned into an asset ID by inventing an upload operation; report that constraint.overrides: supportedmodel,quality,size,background,outputFormat,n,outputCompression,moderation, and edit-onlyinputFidelity. Do not sendkindormodeto single-image tools, or image reasoning controls that the catalog does not support.submit_batch:{items: [...]}(1–100); each item has the creation fields and its own key, optionalkind(generateoredit), and editreferenceAssetIds. One model and kind per batch; mode is batch. Returns{jobs}. Persist every returned ID and its key mapping.
Additional properties are rejected. Successful MCP results are JSON inside a text content block; inspect isError and the parsed error, not just HTTP success.
Status and uncertain outcomes
Poll get_job({id}) using a known job ID at a modest interval, backing off for Batch. Never resubmit to ask for status. queued, dispatching, and submitted are in progress; succeeded, failed, and cancelled need final accounting inspection. unknown requires human reconciliation: stop automatic paid actions and preserve the reservation and original request.
Never automatically resend after a timeout, lost reply, connection error, or unknown outcome, even under the same key. Do not create a fresh key to get past uncertainty. Existing idempotency protects exact same-caller/key/payload receipt replay, but does not authorize an automatic replay or a new generation. A deliberately new paid attempt after reconciliation needs explicit user intent and a new key.
If a response was lost without a job ID:
- Read the durable request record and any existing native tool receipt.
list_assetscan recover an output'sjobId; match evidence, never infer absence from missing files. - There is no MCP
list_jobsor lookup-by-key tool. The existing authenticated, same-origin read-only HTTPGET /api/jobs?limit=100returns{items, nextCursor}with jobidempotencyKey; match the original key locally and paginate with the unchanged returned cursor. Use only the existing credential route described privately; never print whole job listings or introduce new authentication. Persist the recovered ID, then useget_job. - If that read-only route is unavailable, inaccessible, or inconclusive, ask the maintainer to locate the original job by the preserved opaque key/time. Keep the outcome uncertain and do not resend. An empty current list does not establish no charge.
- Refinements are separate charge records, not image jobs. MCP has no refinement status lookup; admin-only
GET /api/chargescan support maintainer reconciliation. Agent tokens cannot administer it. Keep the refinement key and payload; do not invoke refinement again to discover status or repeat it with a new key.
Retrieve and report
On success, locate outputs by matching jobId in list_assets; paginate with nextCursor until found/exhausted, then call get_asset({id}). It returns metadata plus downloadUrl; the URL alone does not authorize a download.
Validate that downloadUrl has exactly the trusted HTTPS scheme/host/port from the private descriptor and the expected /files/<asset-id>/original route. Download with the same bearer credential using the existing private credential mechanism. Never send a bearer to another origin, follow credential-bearing redirects, put a token in a URL, or expose it in shell arguments, history, logs, chat, or files. Stop on an unexpected URL. No broad config reads or secret dumps to locate a credential. If safe download access is unavailable, return the asset ID/link with its authentication requirement and exact blocker.
Save the unmodified original at the requested permitted location without overwriting unrelated files, or return an authenticated asset link. Respect the descriptor's local media routing for resizing, thumbnailing, compositing, vectorization, and other processing; cloud-only calls and direct downloads do not authorize local rendering on another host. Do not promise SVG/vector output, uploads, or unsupported generation modes. Copy-only source-logo rules still apply.
Report asset/job IDs or permitted links, delivery location, chosen settings, and cost evidence: refinement usd separately from image actualUsd; label estimates and reservedUsd as such. actualUsd: null means unknown, never zero. Job status or missing assets alone do not prove no charge; charged success can lack files and charged failure can retain some files. Do not multiply a whole-job cost by its number of assets. State incomplete status, recovery needs, and cost uncertainty plainly.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

