Agent Native

adobe-resize-photos-and-videos

Resizes photos and videos to specific pixel dimensions or aspect ratios using Adobe tools.

by Adobe, Inc.Official publisherNot reviewed

Identity proven by GitHub's verified organisation badge (adobe)

Agents
Claude Code
License
Apache-2.0 (permissive)
Pin
940b879pinned Oct 9, 2026
Context cost
about 4,400 tokenswhen the skill loads
GitHub stars
197on adobe/skills
Scripts
None found

What it does

“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 photos", or any request specifying target dimensions (W×H, ratio, or named size like "4K", "HD", "A4"). Also triggers for: "make this fit a specific size", "resize to [any dimension]", "I need this at [WxH]", "scale my video down", "change resolution", "downscale", "upscale". NOT for social media platform sets (use adobe-create-social-variations for that). Uses image_crop_and_resize for photos, video_resize for videos.”
The author's description, from SKILL.md

Generated summary from the skill's own text

Resizes photos and videos to specific pixel dimensions or aspect ratios using Adobe tools. The skill handles single or batch resizing of images and videos, supports multiple target formats, and can intelligently crop around subjects or objects. Outputs are previewed and optionally saved to Creative Cloud storage with a Firefly board.

When to use it

  • User requests exact pixel dimensions like 1920x1080 or named sizes like 4K, HD, A4 print
  • Need to resize single or batch photos or videos for web, print, or social delivery
  • Require intelligent cropping around faces, subjects, or specific objects
  • Must change aspect ratio or add letterboxing without distortion

When not to

  • Creating multiple social media platform variations at once, use adobe-create-social-variations instead
  • User needs video editing beyond resizing like effects or transitions

Install

These commands install from the publisher's repository and need no account.

skills CLI

npx skills add adobe/skills --skill adobe-resize-photos-and-videos

Installs from the repository's default branch, which may have changed since the commit we checked.

GitHub CLI 2.90 or later

gh skill install adobe/skills adobe-resize-photos-and-videos@940b8795c0df3e25de68ce3881dc90855129b215

Installs the commit we checked (940b879).

Copy by hand

Download the folder at 940b879 and put it in .claude/skills/adobe-resize-photos-and-videos for Claude Code and in .agents/skills/adobe-resize-photos-and-videos for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.

Skill folder on GitHub at 940b879

Claude Code plugin

/plugin install adobe-for-creativity@claude-plugins-official

The publisher's plugin in Claude's official marketplace. It may hold more than this skill, and we have not pinned it.

Copy for your agent

A prompt for any coding agent. It installs this skill from GitHub at the pinned commit, copies the files as they are, and runs nothing unless you ask.

Prompt

Install the agent skill "adobe-resize-photos-and-videos" by Adobe, Inc..

Source, pinned to commit 940b8795c0df3e25de68ce3881dc90855129b215:
https://github.com/adobe/skills/tree/940b8795c0df3e25de68ce3881dc90855129b215/plugins/creative-cloud/adobe-for-creativity/skills/adobe-resize-photos-and-videos

1. Download that folder at exactly this commit. Do not use the default branch.
2. Copy every file unchanged, keeping the folder structure, into .claude/skills/adobe-resize-photos-and-videos/ for Claude Code and .agents/skills/adobe-resize-photos-and-videos/ for Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. Create the folders if they do not exist.
3. Do not edit the files, and do not run any script in the folder unless I ask you to.
4. When you are done, list the files you copied and where you put them.

Listing and checks: https://www.agentnative.dev/skills/adobe-inc/adobe-resize-photos-and-videos

SKILL.md at the pin

---
name: adobe-resize-photos-and-videos
description: >
  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 photos", or any request
  specifying target dimensions (W×H, ratio, or named size like "4K", "HD", "A4").
  Also triggers for: "make this fit a specific size", "resize to [any dimension]",
  "I need this at [WxH]", "scale my video down", "change resolution", "downscale", "upscale".
  NOT for social media platform sets (use adobe-create-social-variations for that).
  Uses image_crop_and_resize for photos, video_resize for videos.
license: Apache-2.0
metadata:
  version: 1.1.0
  visibility: public
  surface: [claude]
---

# Adobe Resize Photos and Videos

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.

---

## Tool Reference

| 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 |

---

## Workflow

### Step 0 — Initialize Adobe Tools

Call `adobe_mandatory_init` first. This returns file handling rules and tool routing guidance required for the rest of the workflow.

```json
{ "skill_name": "adobe-resize-photos-and-videos", "skill_version": "1.1.0" }
```

---

### Step 1 — Entitlement Check

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.

---

## IMMEDIATE ACTION REQUIRED

**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).

---

### Step 2 — Multi-Step Intake

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.

#### Step 2a — Type

```
AskUserQuestion([{
  question: "Photo or video?",
  type: "single_select",
  options: ["Photo", "Video"]
}])
```

#### Step 2b — Dimensions

**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.

#### Step 2c — Fit mode

**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)"
  ]
}])
```

#### Step 2d — Smart focus (Photo only)

```
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'):"

#### Step 2e — Options (Photo only)

```
AskUserQuestion([{
  question: "Any additional options?",
  type: "multi_select",
  options: [
    "Batch — multiple images",
    "Output: JPEG",
    "Output: PNG"
  ]
}])
```

#### Step 2f — Source (Video only)

```
AskUserQuestion([{
  question: "Where is the video?",
  type: "single_select",
  options: [
    "Upload from device",
    "From Creative Cloud"
  ]
}])
```

---

### Step 3 — Get the Source File

**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 context
```

**No file yet** → open the picker immediately:
```javascript
asset_add_file()
```

Detect type from returned `mediaType`:
- `image/*` → IMAGE WORKFLOW
- `video/*` → VIDEO WORKFLOW

---

### Step 4 — Resolve Target Dimensions

| 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)"

---

## IMAGE WORKFLOW

### Step 5 (Image) — Valid URI Sources

Only these work as `imageURI`:
- `presignedAssetUrl` from `asset_add_file()` ✅
- `outputUrl` from a prior tool call ✅
- Public HTTPS URL provided by user ✅

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`        |

---

### Step 6 (Image) — Fit Mode

| 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 omit `output`.

---

### Step 7 (Image) — Call `image_crop_and_resize`

```javascript
image_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 chaining
```

**Focus 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)

---

### Step 8 (Image) — Batch

If batch was selected in the form OR the user provided multiple files:
1. Call `asset_add_file()` for each file to get individual presigned URLs
2. Call `image_crop_and_resize` for each with the same parameters
3. Collect all `outputUrl` values
4. Call `asset_preview_file` with all outputs in a single call

> Calls 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:
- State how many have been completed and how many remain (e.g. "20 / 24 done — say 'continue' for the rest")
- Wait for the user to confirm before resuming
- On resume, pick up from the next unprocessed image and continue to the end
- Preview all outputs together only after the final image completes

---

### Step 9 (Image) — Preview + Deliver + Firefly Board

```javascript
asset_preview_file({
  assets: [
    { name: "photo_1920x1080.jpg", presignedAssetUrl: result.outputUrl },
    // all successful outputs
  ]
})
```

#### Save to CC + Create Firefly Board

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:

```javascript
create_firefly_board({
  import_adobe_storage: [
    final_output_url_1,
    final_output_url_2,
    // ...
  ]
})
```

> ✅ **Confirmed working (Stage):** `import_adobe_storage` with presigned URLs from `asset_finalize_file_upload` successfully populates boards.
>
> ❌ **Does not work:** `import_generic_assets` with 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 failed
```

---

## VIDEO WORKFLOW

### Step 5 (Video) — Get Asset ID

Video 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` |

---

### Step 6 (Video) — Common Targets

| 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 |

---

### Step 7 (Video) — Call `video_resize`

> ⚠️ `resizeVideoPoll` is a **deferred tool** — load it first before attempting to poll.
> Direct calls without loading will fail with "not loaded" error.

```javascript
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".
```javascript
// Step 1: load the deferred tool resizeVideoPoll
// Step 2: poll until complete
resizeVideoPoll({ statusId })
// Repeat until jobStatus === "completed"
// Show progress % to user while waiting
```

---

### Step 8 (Video) — Preview + Deliver + Firefly Board

If 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:

```javascript
asset_preview_file({
  assets: [{ name: "resized_video.mp4", presignedAssetUrl: result.outputUrl }]
})

create_firefly_board({
  import_adobe_storage: [ presignedAssetUrl_from_finalize ]
})
```

> ✅ Pass `import_adobe_storage` with 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 failed
```

If polling is unavailable → skip preview, deliver the CC storage fallback message from Step 7.

---

## Error Handling

| 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.             |

---

## Common Dimension Reference

| 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

`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).

From adobe/skills at 940b879, shown as plain text under its license: Apache-2.0 (permissive). The license text is in plugins/creative-cloud/adobe-for-creativity/skills/adobe-resize-photos-and-videos/SKILL.md.

View SKILL.md on GitHub at 940b879

Files

2 files, 36 KB in total. Each file has a sha256 in the pin's manifest; the first 12 characters are shown.

Skill folder on GitHub at 940b879
All 50 skills from Adobe, Inc.

More from Adobe, Inc.

  • adobe

    This skill provides an onboarding tour of the Adobe for creativity connector, displaying available capabilities, example workflows, and which Adobe product…

    Claude Code, Codex, Cursor +4 · about 2.2K tokens · pinned 6 days ago

  • adobe-anydocx

    This skill routes DOCX conversion tasks that have a PDF source to Adobe's pdf_export tool with the appropriate format setting.

    Claude Code, Codex, Cursor +4 · about 680 tokens · pinned 6 days ago

  • adobe-anyexcel

    This skill routes PDF-to-Excel conversion tasks to the Adobe pdf_export tool with xlsx target format.

    Claude Code, Codex, Cursor +4 · about 690 tokens · pinned 6 days ago

  • adobe-anypdf

    This skill routes PDF tasks to Adobe Acrobat tools for higher fidelity than local Python libraries.

    Claude Code, Codex, Cursor +4 · about 2.1K tokens · pinned 6 days ago

  • adobe-anypptx

    This skill routes PowerPoint conversion tasks that have a PDF source to Adobe's pdf_export tool with PPTX output format.

    Claude Code, Codex, Cursor +4 · about 670 tokens · pinned 6 days ago

  • adobe-batch-edit-photos

    This skill applies consistent visual adjustments to a set of photos so they appear edited together as a cohesive collection.

    Claude Code · about 9.9K tokens · pinned 6 days ago

  • all-images-ai-automation

    This skill automates All Images AI operations by discovering and executing tools through Composio's All Images AI toolkit via Rube MCP.

    by ComposioOfficial publisher

    Agents not labelled yet · about 710 tokens · pinned 6 days ago

  • remotion-best-practices

    This skill routes the agent through Remotion's specialized knowledge bases for video creation, editing, and deployment.

    by RemotionOfficial publisher

    Contains scripts

    Claude Code, Codex, Cursor +3 · about 920 tokens · pinned 6 days ago

  • remotion-best-practices

    This skill routes the agent to specialized Remotion sub-skills based on the user's task, covering video creation, project setup, React markup, maps…

    by RemotionOfficial publisher

    Claude Code, Codex, Cursor +3 · about 1K tokens · pinned 6 days ago

  • remotion-captions

    This skill enables video caption workflows including transcribing audio to generate captions, displaying captions in videos, and importing captions from SRT…

    by RemotionOfficial publisher

    Claude Code, Codex, Cursor +3 · about 220 tokens · pinned 6 days ago

  • remotion-captions

    This skill enables the agent to work with captions in Remotion videos by transcribing audio to generate captions, displaying them in videos, and importing…

    by RemotionOfficial publisher

    Claude Code, Codex, Cursor +3 · about 270 tokens · pinned 6 days ago

  • remotion-create

    This skill scaffolds a new Remotion video project, opens the browser-based Studio for live preview, and guides composition development using React markup.

    by RemotionOfficial publisher

    Claude Code, Codex, Cursor +3 · about 680 tokens · pinned 6 days ago

The skills listed here are third-party software, collected from public GitHub repositories as a catalog of recent skills and provided as is. Agent Native does not write or control them and is not responsible for any harm, loss or damage caused by installing or using them. Labels and checks describe what we saw at one commit and are not a guarantee. Read a skill's files before you run it. Terms of use