AI Image Generation and Editing
zhayujie/CowAgent
Generates or edits images from text prompts through a Python script that picks an image backend based on which API keys are configured.
Resize photos and videos to exact pixel dimensions or aspect ratios using Adobe tools.
$ npx skills add adobe/skills --skill adobe-resize-photos-and-videos -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install adobe/skills adobe-resize-photos-and-videos --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/adobe/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/creative-cloud/adobe-for-creativity/skills/adobe-resize-photos-and-videos .claude/skills/adobe-resize-photos-and-videos && 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 "adobe-resize-photos-and-videos" agent skill from https://github.com/adobe/skills/tree/main/plugins/creative-cloud/adobe-for-creativity/skills/adobe-resize-photos-and-videos into .claude/skills/adobe-resize-photos-and-videos/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adobe-resize-photos-and-videos", 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/adobe/skills/tree/main/plugins/creative-cloud/adobe-for-creativity/skills/adobe-resize-photos-and-videosType 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 adobe/skills --skill adobe-resize-photos-and-videos -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install adobe/skills adobe-resize-photos-and-videos --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/creative-cloud/adobe-for-creativity/skills/adobe-resize-photos-and-videos .agents/skills/adobe-resize-photos-and-videos && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "adobe-resize-photos-and-videos" agent skill from https://github.com/adobe/skills/tree/main/plugins/creative-cloud/adobe-for-creativity/skills/adobe-resize-photos-and-videos into .agents/skills/adobe-resize-photos-and-videos/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adobe-resize-photos-and-videos", 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 adobe/skills --skill adobe-resize-photos-and-videos -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install adobe/skills adobe-resize-photos-and-videos --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/creative-cloud/adobe-for-creativity/skills/adobe-resize-photos-and-videos .cursor/skills/adobe-resize-photos-and-videos && 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 "adobe-resize-photos-and-videos" agent skill from https://github.com/adobe/skills/tree/main/plugins/creative-cloud/adobe-for-creativity/skills/adobe-resize-photos-and-videos into .cursor/skills/adobe-resize-photos-and-videos/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adobe-resize-photos-and-videos", 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/adobe/skills.git --path plugins/creative-cloud/adobe-for-creativity/skills/adobe-resize-photos-and-videos--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 adobe/skills --skill adobe-resize-photos-and-videos -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install adobe/skills adobe-resize-photos-and-videos --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/creative-cloud/adobe-for-creativity/skills/adobe-resize-photos-and-videos .gemini/skills/adobe-resize-photos-and-videos && 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 "adobe-resize-photos-and-videos" agent skill from https://github.com/adobe/skills/tree/main/plugins/creative-cloud/adobe-for-creativity/skills/adobe-resize-photos-and-videos into .gemini/skills/adobe-resize-photos-and-videos/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adobe-resize-photos-and-videos", 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 adobe/skills adobe-resize-photos-and-videosInstalls 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 adobe/skills --skill adobe-resize-photos-and-videos -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/creative-cloud/adobe-for-creativity/skills/adobe-resize-photos-and-videos .github/skills/adobe-resize-photos-and-videos && 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 "adobe-resize-photos-and-videos" agent skill from https://github.com/adobe/skills/tree/main/plugins/creative-cloud/adobe-for-creativity/skills/adobe-resize-photos-and-videos into .github/skills/adobe-resize-photos-and-videos/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adobe-resize-photos-and-videos", 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 adobe/skills --skill adobe-resize-photos-and-videos -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install adobe/skills adobe-resize-photos-and-videos --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/adobe/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/creative-cloud/adobe-for-creativity/skills/adobe-resize-photos-and-videos .opencode/skills/adobe-resize-photos-and-videos && 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 "adobe-resize-photos-and-videos" agent skill from https://github.com/adobe/skills/tree/main/plugins/creative-cloud/adobe-for-creativity/skills/adobe-resize-photos-and-videos into .opencode/skills/adobe-resize-photos-and-videos/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "adobe-resize-photos-and-videos", 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.
adobe-resize-photos-and-videosResize photos and videos to exact pixel dimensions or aspect ratios using Adobe tools.
Adobe Resize Photos And Videos is an agent skill from adobe/skills. Resize photos and videos to exact pixel dimensions or aspect ratios using Adobe tools. Use this skill whenever a user wants to resize, scale, or change the dimensions of an image or video file — including phrases like "resize this to 1920x1080", "make this 4K", "scale to 800x600", "change the aspect ratio to 16:9", "resize my video", "make the image smaller", "crop to square", "fit this to a specific size", "resize for print", "resize for web", "make it 300 DPI ready", "change canvas size", "resize a batch of…
Its SKILL.md is about 4.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including assets.
It sits in Media & Creative, covering Image editing. The repository describes itself as: Adobe Skills for Agents. The licence is Apache-2.0.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit c8f44ec. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are javascript and json).
From 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.
Adobe Resize Photos And Videos loads about 4.7k tokens when it runs. Until then it costs about 242 tokens; SKILL.md has 1,422 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 adobe/skills at commit c8f44ec, republished under its Apache-2.0 licence (© adobe). 1,422 words, ~4,681 tokens.
.claude/skills/adobe-resize-photos-and-videos/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Resizes images or videos to user-specified dimensions, aspect ratio, or named size.
For social media platform sets (Instagram, TikTok, etc.) → use the adobe-create-social-variations skill instead.
| Step | Tool | Notes |
|---|---|---|
| Open file picker | asset_add_file | Returns presignedAssetUrl, assetId, and mediaType |
| Find asset in CC | asset_search | Re-stage result via asset_add_file for image; use id directly for video |
| Render PSD/AI | document_render_vector | Converts to JPEG before resize |
| Resize image | image_crop_and_resize | One call per dimension; reframe by default |
| Preview outputs | asset_preview_file | All outputs in a single call |
| Upload to CC (start) | asset_initialize_file_upload | First call in block upload pipeline |
| Upload to CC (finish) | asset_finalize_file_upload | Second call; returns presigned CC URL for board |
| Create Firefly board | create_firefly_board | Pass import_adobe_storage with finalize URL |
| Resize video | video_resize | Returns statusId for polling |
| Poll video resize | resizeVideoPoll | Deferred tool — load before calling |
Call adobe_mandatory_init first. This returns file handling rules and tool routing guidance required for the rest of the workflow.
{ "skill_name": "adobe-resize-photos-and-videos", "skill_version": "1.1.0" }Now that adobe_mandatory_init confirmed that the "Adobe for creativity" connector is live, check which tools are available through the "Adobe for creativity" connector by cross checking against the Tool Reference table above.
Step 1: If parameters are missing or ambiguous → run the multi-step intake (Step 2 below).
Step 2: If no file is uploaded, run Step 3 (asset_add_file({})).
Step 3: Detect image vs. video and route to the correct workflow (Step 5 Image/Video).
Run this when the user hasn't provided complete parameters (type + dimensions + fit mode). Skip entirely if the user's message already contains all three.
Use AskUserQuestion to collect parameters step by step.
AskUserQuestion([{
question: "Photo or video?",
type: "single_select",
options: ["Photo", "Video"]
}])If Photo (multi_select — user can pick one or more):
AskUserQuestion([{
question: "Dimensions — select all you need",
type: "multi_select",
options: [
"1080 × 1080 — Instagram square",
"1080 × 1350 — Instagram portrait",
"1080 × 1920 — Stories / Reels",
"1920 × 1080 — YouTube / landscape",
"1280 × 720 — YouTube thumbnail",
"1200 × 675 — X / Twitter post",
"1200 × 630 — Facebook / OG image",
"1080 × 566 — LinkedIn post",
"2560 × 1440 — YouTube banner",
"3840 × 2160 — 4K / UHD",
"400 × 400 — Profile / avatar",
"2480 × 3508 — A4 print (300 dpi)",
"Custom — I'll type it"
]
}])If user includes "Custom" → follow up: "Enter your custom dimensions (e.g. 1500×800):"
If user selects multiple presets → run image_crop_and_resize once per dimension,
using the same source URI and parameters each time. Preview all outputs together at the end.
If Video (multi_select — user can pick one or more):
AskUserQuestion([{
question: "Dimensions — select all you need",
type: "multi_select",
options: [
"1080 × 1920 — Reels / TikTok / Stories",
"1920 × 1080 — YouTube / landscape",
"1080 × 1080 — Square post",
"1280 × 720 — YouTube 720p",
"3840 × 2160 — 4K / UHD",
"854 × 480 — SD / 480p",
"Custom — I'll type it"
]
}])If user selects multiple video presets → submit a separate video_resize job per dimension,
poll each to completion, preview all outputs together.
If Photo (single_select):
AskUserQuestion([{
question: "Fit mode",
type: "single_select",
options: [
"Reframe — crop to fill",
"Pad — letterbox, no crop",
"Extract — isolate subject"
]
}])If Video (single_select):
AskUserQuestion([{
question: "Fit mode",
type: "single_select",
options: [
"Letterbox — preserve ratio",
"Crop — fill, no bars",
"Stretch — force exact (distort)"
]
}])AskUserQuestion([{
question: "Smart focus — where should the crop center?",
type: "single_select",
options: [
"Subject",
"Face / portrait",
"Upper body",
"Center (geometric)",
"Named object — I'll describe it"
]
}])If user selects "Named object" → follow up: "Describe the object (e.g. 'the red car', 'the logo'):"
AskUserQuestion([{
question: "Any additional options?",
type: "multi_select",
options: [
"Batch — multiple images",
"Output: JPEG",
"Output: PNG"
]
}])AskUserQuestion([{
question: "Where is the video?",
type: "single_select",
options: [
"Upload from device",
"From Creative Cloud"
]
}])Critical — /mnt/user-data/uploads/ paths are NOT usable URLs.
Even when the user has attached a file and it appears in context at a /mnt/user-data/uploads/ path,
you cannot pass this path to any Adobe tool. Call asset_add_file() to stage the file — /mnt/user-data/uploads/ paths are not fetchable by Adobe tools.
WRONG ❌ imageURI: "/mnt/user-data/uploads/photo.jpg"
WRONG ❌ imageURI: "file:///mnt/user-data/uploads/photo.jpg"
CORRECT ✅ call asset_add_file() → use presignedAssetUrl from picker contextNo file yet → open the picker immediately:
asset_add_file()Detect type from returned mediaType:
image/* → IMAGE WORKFLOWvideo/* → VIDEO WORKFLOW| User says | Resolve to |
|---|---|
1920×1080, 1920x1080 | width: 1920, height: 1080 |
4K | 3840 × 2160 |
HD, 1080p | 1920 × 1080 |
720p | 1280 × 720 |
480p | 854 × 480 |
A4 print | 2480 × 3508 (300 DPI portrait) |
Letter print | 2550 × 3300 (300 DPI portrait) |
16:9, 1:1, 4:5, 9:16 | ratio string → pass as output: "16:9" |
square | output: "1:1" |
Width only (800px wide) | width: 800, use ratio string to maintain aspect |
If no target was specified in the form AND none in the user's message → ask:
"What dimensions do you need? (e.g. 1920×1080, A4, 16:9)"
Only these work as imageURI:
presignedAssetUrl from asset_add_file() ✅outputUrl from a prior tool call ✅Not usable as imageURI:
/mnt/user-data/uploads/ paths ❌renditionURL from asset_search directly ❌file:// URIs ❌| Source | Resolution |
|---|---|
| Uploaded file | asset_add_file() → presignedAssetUrl |
| CC storage asset | asset_search → re-stage via asset_add_file() → presignedAssetUrl |
| Prior tool output | Use outputUrl directly |
| PSD / AI file | document_render_vector (JPEG, 300 DPI) → outputPresignedUrl |
| Intent | Mode | Notes |
|---|---|---|
| "resize to WxH" / default | reframe | Largest crop at target ratio, centered — no distortion |
| "no cropping", "letterbox", "fit inside" | pad | Fills empty space with white |
| "isolate subject", "tight crop" | extract | Tight crop around detected region |
Default: reframe. Change only when user is explicit.
⛔
fit: "extract"is incompatible with an explicit{ width, height }— it stretches the image. Use a ratio string or omitoutput.
image_crop_and_resizeimage_crop_and_resize({
imageURI: presignedAssetUrl,
options: {
output: { width: 1920, height: 1080 }, // or "16:9"
fit: "reframe",
focus: "subject", // or "face", "upper_body", { prompt: "the car" }, { x:0.5, y:0.5 }
quality: 7
},
outputFileType: "jpeg" // or "png" if transparency needed
})
// result.outputUrl → use for preview or chainingFocus guide:
"subject" — default; full-body detection, landscapes, objects"face" — portraits, headshots"upper_body" — chest-up crops{ prompt: "the logo" } — named object from user's form input{ x: 0.5, y: 0.5 } — geometric center (no clear subject)If batch was selected in the form OR the user provided multiple files:
asset_add_file() for each file to get individual presigned URLsimage_crop_and_resize for each with the same parametersoutputUrl valuesasset_preview_file with all outputs in a single callCalls run sequentially in this environment. For >10 images, confirm with the user before starting.
Pagination across turns (batches >20): For large batches, the conversation context may fill before all images are processed, causing Claude to pause mid-batch. This is expected — not an error. When it happens:
asset_preview_file({
assets: [
{ name: "photo_1920x1080.jpg", presignedAssetUrl: result.outputUrl },
// all successful outputs
]
})After preview, upload each output to CC storage using the block upload pipeline
(asset_initialize_file_upload → PUT chunk → asset_finalize_file_upload).
Then call the firefly board tool with the final output urls:
create_firefly_board({
import_adobe_storage: [
final_output_url_1,
final_output_url_2,
// ...
]
})✅ Confirmed working (Stage):
import_adobe_storagewith presigned URLs fromasset_finalize_file_uploadsuccessfully populates boards.❌ Does not work:
import_generic_assetswith CC asset IDs (urn:aaid:sc:US:...) — USS indexing lag causes blank boards.If board creation fails or the URL is malformed, omit the board link (retrying does not help).
Post the completion summary after the board step:
✅ Done! [N] image(s) resized and ready.
📥 Download:
• resized_1920x1080.jpg → <cc_storage_url>
[list individually if N ≤ 3, or single folder link if N > 3]
🎨 View in Firefly Board → <board_url> ← omit if board creation failedVideo tools require assetId, not a URL.
| Source | How |
|---|---|
Upload via asset_add_file | Use returned assetId |
| CC storage | asset_search with filters.mediaType: "video/mp4" → use asset id |
| Name | Dimensions |
|---|---|
| 4K / UHD | 3840 × 2160 |
| 1080p / HD | 1920 × 1080 |
| 720p | 1280 × 720 |
| 480p | 854 × 480 |
| Vertical 9:16 | 1080 × 1920 |
| Square 1:1 | 1080 × 1080 |
video_resize⚠️
resizeVideoPollis a deferred tool — load it first before attempting to poll. Direct calls without loading will fail with "not loaded" error.
video_resize({
assetId: videoAssetId,
width: targetW,
height: targetH,
mode: "letterbox" // default; see mode table below
})
// Returns { jobStatus: "pending", statusId }Mode — use exact API values (not user-facing labels):
| User says | API value | Behavior |
|---|---|---|
| "fit", "preserve ratio", "letterbox" | "letterbox" | Preserves ratio, adds black bars (default) |
| "fill", "crop to fill", "no bars" | "crop" | Crops edges to fill target exactly |
| "stretch", "force exact" | "stretch" | Distorts to exact target |
ℹ️ Auto-reframe for video is not available in Claude yet, but new tools are being added all the time. If you need more control, try using Adobe Premiere.
Polling: load the deferred tool resizeVideoPoll before calling it — direct calls fail with "not loaded".
// Step 1: load the deferred tool resizeVideoPoll
// Step 2: poll until complete
resizeVideoPoll({ statusId })
// Repeat until jobStatus === "completed"
// Show progress % to user while waitingIf polling succeeds and returns outputUrl, upload to CC storage via the block upload pipeline
(asset_initialize_file_upload → PUT → asset_finalize_file_upload) to get a presigned URL, then:
asset_preview_file({
assets: [{ name: "resized_video.mp4", presignedAssetUrl: result.outputUrl }]
})
create_firefly_board({
import_adobe_storage: [ presignedAssetUrl_from_finalize ]
})✅ Pass
import_adobe_storagewith the finalize presigned URL. If board creation fails, omit the link.
✅ Done! Video resized to [WxH].
📥 Download → <cc_storage_url>
🎨 View in Firefly Board → <board_url> ← omit if board creation failedIf polling is unavailable → skip preview, deliver the CC storage fallback message from Step 7.
| Error | Action |
|---|---|
/mnt/user-data/uploads/ or file:// passed as URI | Stop. Call asset_add_file() first. |
| Image too large after resize | Re-run with quality: 5 |
Video assetId not found | Re-upload via asset_add_file |
| Source too small for target | Warn user upscaling won't add detail; proceed if confirmed |
Invalid video_resize mode | API only accepts "letterbox", "crop", or "stretch" — "fit" and "fill" will be rejected. |
extract + {W,H} → stretching | Switch to reframe |
| No dimensions given | Render form or ask explicitly before calling any tool |
| Unsupported format | Ask user to export as JPG/PNG (images) or MP4 (video) |
resizeVideoPoll not loaded / unavailable | Known gap in current connector. Skip polling. Tell user to check CC Files for output. |
| Use Case | Dimensions |
|---|---|
| Full HD / web hero | 1920 × 1080 |
| 4K | 3840 × 2160 |
| Web thumbnail | 1280 × 720 |
| Square | 1080 × 1080 |
| A4 print (300 DPI) | 2480 × 3508 |
| US Letter print (300 DPI) | 2550 × 3300 |
| Blog featured image | 1200 × 630 |
| Email header | 600 × 200 |
| Avatar / profile | 400 × 400 |
| Instagram portrait | 1080 × 1350 |
| Stories / Vertical | 1080 × 1920 |
assets/intake-form.html — Interactive intake form for resize parameters.
Render at the start of any resize workflow where parameters are missing or ambiguous.
Covers photo (target size, fit mode, smart focus, batch, output format) and video (target size, fit mode, source).
© adobe, Apache-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 1 other file (assets) in plugins/creative-cloud/adobe-for-creativity/skills/adobe-resize-photos-and-videos of adobe/skills.
Open the folder on GitHubat commit c8f44ec
Adobe Resize Photos And Videos 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 |
|---|---|---|---|---|---|---|
| Adobe Resize Photos And Videos this skilladobe/skills | 197 | — | ~4.7k | Automated safety check: Pass | Apache-2.0 | |
| AI Image Generation and Editingzhayujie/CowAgent | 47k | — | ~1.3k | Automated safety check: Pass | MIT | |
| Generate Imageynulihao/AgentSkillOS | 618 | 10 repos | ~1.7k | Automated safety check: Notes | None | |
| GPT Image Generation CLIwuyoscar/GPT-Image2-Skill | 5.7k | — | ~2.5k | Automated safety check: Notes | MIT | |
| HyperFrames Media Useheygen-com/hyperframes | 60k | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| Media Useedenfunf/reelmimic | 1.9k | 1 repos | ~2k | Automated safety check: Pass | MIT |
zhayujie/CowAgent
Generates or edits images from text prompts through a Python script that picks an image backend based on which API keys are configured.
ynulihao/AgentSkillOS
Generate or edit images using AI models (FLUX, Gemini). An agent skill from ynulihao/AgentSkillOS.
wuyoscar/GPT-Image2-Skill
Generates and edits images with GPT Image 2 or 2.5 through a packaged CLI and a prompt gallery, after settling which model fits the request.
heygen-com/hyperframes
Finds, generates and edits media for HyperFrames video projects: music, sound effects, images, icons, logos, voiceovers, captions and color grades.
edenfunf/reelmimic
Agent Media OS, the single skill for every media need in a HyperFrames project.
BlockRunAI/ClawRouter
Generates or edits images through ClawRouter's local image API, with a choice of models and sizes and payment handled automatically through x402.
adobe/skills
Scaffolds, implements, deploys and debugs Adobe Runtime actions in App Builder projects, with templates for webhooks, events, database CRUD, sequences and Asset Compute workers.
adobe/skills
Launches Chrome with an unpacked extension over CDP, opens its sidepanel, popup or options page, and hands over to cdp-connect for clicks, typing and screenshots.
adobe/skills
Extracts icons, metadata, text, forms, videos and social links from any web page with playwright-cli, with SVG icon classification and cleanup.
adobe/skills
Detect all languages used on a webpage — both declared (html@lang, hreflang alternate links, nested lang= attributes, meta content-language) and actually present in the body text (Google CLD3 via…
adobe/skills
Prepare any webpage for clean interaction by detecting and removing disruptive overlays (cookie banners, GDPR consent, modals, popups, newsletter signups, paywalls, login walls).
adobe/skills
Reduce a webpage to a structural skeleton with semantic tokens.
Categories
Resize photos and videos to exact pixel dimensions or aspect ratios using Adobe tools. Adobe Resize Photos And Videos is an agent skill from adobe/skills. Resize photos and videos to exact pixel dimensions or aspect ratios using Adobe tools.
Adobe Resize Photos And Videos fits situations like: A user wants to resize; change the dimensions of an image; video file — including phrases like resize this to 1920x1080; scale to 800x600.
Run `npx skills add adobe/skills --skill adobe-resize-photos-and-videos -a claude-code`. Or copy the skill folder (plugins/creative-cloud/adobe-for-creativity/skills/adobe-resize-photos-and-videos in adobe/skills) into .claude/skills/adobe-resize-photos-and-videos in your project. Claude Code loads it when a task matches its description.
Run `npx skills add adobe/skills --skill adobe-resize-photos-and-videos -a codex`. Or copy the skill folder (plugins/creative-cloud/adobe-for-creativity/skills/adobe-resize-photos-and-videos in adobe/skills) into .agents/skills/adobe-resize-photos-and-videos 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 adobe/skills --skill adobe-resize-photos-and-videos -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/adobe-resize-photos-and-videos, .gemini/skills/adobe-resize-photos-and-videos, .github/skills/adobe-resize-photos-and-videos and .opencode/skills/adobe-resize-photos-and-videos in your project.
SKILL.md names no scripts, command-line tools or credentials: Adobe Resize Photos And Videos is instructions for the agent only.
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. Review the folder before installing.
Adobe Resize Photos And Videos is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.7k tokens (SKILL.md is roughly 19k 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 Adobe Resize Photos And Videos: AI Image Generation and Editing (zhayujie/CowAgent, 47k stars), Generate Image (ynulihao/AgentSkillOS, 618 stars), GPT Image Generation CLI (wuyoscar/GPT-Image2-Skill, 5.7k stars) and HyperFrames Media Use (heygen-com/hyperframes, 60k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
adobe (a GitHub organization) maintains it in adobe/skills, which has 197 GitHub stars. The repository holds 66 skills in this directory. The repository was last updated on October 10, 2026.
Source: adobe/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.