export
Export a selected element from the canvas as PNG, JPEG, OGraf bundle, Lottie, or video.
Skill by aiatelie
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/aiatelie-export
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/export
What's inside
- Skill name
export- Description
- Export a selected element from the canvas as PNG, JPEG, OGraf bundle, Lottie, or video. Saves to the project's exports/ folder; the chat renders the result inline as an artifact card.
- License
- MIT
- Instructions
- 143 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Export
The user wants to take an element from the active design canvas and save it for use in another tool — usually a video editor (DaVinci Resolve, FCP, Premiere, CapCut), sometimes a presentation tool. Pick the right format, call the matching capability, **then write a single short sentence**.
## Critical: do not narrate file creation
The host renders an **ArtifactCard** inline in the chat for every successful export — thumbnail + filename + size + Download / Preview / Discuss buttons. You don't need to tell the user what you saved or where it landed; the card already shows that. Your reply is a *one-sentence header* explaining the choice, not a status report.
**Bad** — narrates what the user can already see:
> I've saved the cat banner as a PNG file at exports/cat-banner.png. The file is 2.3MB and 3840×2160 pixels with a transparent background. You can download it using the link.
**Good** — confirms intent + invites iteration:
> Cat banner as a 2× transparent PNG — should work straight on a Resolve overlay track.
**Better** — confirms + offers next step via `mcp__ask-user__ask_user`:
> Saved as a 2× transparent PNG. Want me to also drop a 4K version for hero use?
> *(then call ask_user with kind:"enum", options:["Yes, 4K too", "No, this is enough"])*
## Capabilities
These are the tools the host registry exposes. Whatever runtime you're in (MCP today, OpenAI tools later), the names and arg shapes are identical. They all return an artifact envelope:
```json
{ "ok": true, "kind": "image|video|html-graphics|lottie", "filename": "...", "url": "...", "mime": "...", "bytes": N, "metadata": { ... } }
```
- **`export_element`** — PNG or JPEG via real headless Chromium. Captures everything the browser actually renders (canvas, video, backdrop-filter, mix-blend-mode all work).
- **`export_ograf`** — `.ograf.zip` bundle for DaVinci Resolve 21+'s native HTML graphics import.
(More may be registered — check the tool list. Video / Lottie may have landed by the time you read this.)
## Required args (every export)
- `projectId` — the active project id
- `route` — project-relative path to the page (e.g. `02 Opening Title.html`)
- `selector` — CSS selector for the target element
The host typically tells you these in the conversation context. If the user says "export this" without a clearer reference, the host's `selected.selector` is the canonical "this" — confirm with the user if you're unsure rather than guessing.
## Naming
**Pick a semantic name.** The user will see it in the chat card and on disk. Generate from element role + intent:
- `img-cat-photo` — better than `export-001`
- `papo-de-montanha-thumbnail` — better than `div-banner-2x`
- `kdu-titling-resolve-template` — better than `graphic`
The server sanitizes (filesystem-safe chars only) and collision-suffixes (`-2`, `-3`) automatically. Don't include the extension.
## Format picker — short rubric
| User said… | Use |
|---|---|
| "PNG", "transparent image", "thumbnail" | `export_element` with `format: "png"`, `backgroundColor: "transparent"` |
| "JPEG", "smaller file", "for the web" | `export_element` with `format: "jpeg"`, optional `quality: 90` |
| "for DaVinci", "Resolve", "video editor" with **static** content | `export_element` PNG with alpha (drag straight onto upper video track) |
| "OGraf", "HTML graphics", "Resolve template" | `export_ograf` |
| "video", "MP4", "animated", "for a timeline" | `export_video`. Default `duration: "auto"` (matches the animation's natural length); pick a number only when the user explicitly asks for a specific length. FPS doesn't change animation speed — only smoothness — so 30 fps is the safe default. For Resolve overlays, prefer `backgroundColor: "transparent"` (ProRes 4444 with real alpha). |
| "4K", "8K", "high quality video" | `export_video` with `resolution` set + `quality: "high"` or `"master"`. Vector content stays sharp at 4K/8K because the browser re-rasterizes at higher DPI. |
| Ambiguous | Use `mcp__ask-user__ask_user` with `kind: "enum"` and options like `["PNG (transparent)", "JPEG (smaller)", "OGraf (Resolve 21+)"]` |
## OGraf export — always elicit first
`export_ograf` is not a one-shot call. An OGraf bundle can be an overlay or a
whole page, animated or static, with or without inspector-editable fields —
and the right choice changes every time. **Before calling `export_ograf`, run
a short `ask_user` elicitation.** Then pass the answers as args.
Ask (one `ask_user` call per decision, or batch where natural):
1. **Scope** — `kind:"enum"`, options `["Just this element (overlay)", "The whole page"]`
→ `scope: "element"` or `"page"`. Element = transparent frame, CSS
shadow-scoped, sized to the element. Page = keeps the page background,
sized to the captured root. For `page`, pass the page's root wrapper as
`selector`, not `body`.
2. **Animation** — only if the element actually animates. `kind:"enum"`,
options `["Keep it animated", "Freeze it (static)"]` → `animated: true|false`.
Animated graphics stay seekable as Resolve scrubs the timeline.
3. **Editable props** — inspect the design, *propose* a concrete list, let the
user confirm/trim. e.g. "I can make these editable in Resolve's inspector:
**Headline text**, **Headline size**, **Headline font**, **Background
color**, **Entrance duration** — want all of them?" Each confirmed prop
becomes a `props[]` entry with a `key`, `label`, `type` (text/number/color),
`control` (text/background/color/fontSize/fontFamily/opacity/duration) and a
`target` CSS selector. **Default to offering BOTH `fontSize` AND
`fontFamily` for every prominent text element** — the user wants to resize
*and* re-pick the font inside Resolve. Resolve's OGraf renderer is Chromium,
so a `fontFamily` value resolves against the OS's installed fonts — typing
"Helvetica Neue" or "JetBrains Mono" in the Inspector switches to that
system font live. Empty `props` = a baked graphic (nothing editable) — fine
if the user doesn't need it.
What the exporter now guarantees (these were hard-won — don't second-guess
them): HTML/CSS/images are inlined (no runtime fetch — Resolve's sandbox
blocks it); CSS `@keyframes` are made seekable so they follow Resolve's
timeline; the graphic is sized by true layout pixels. Declared `props` show
up as real inspector controls and update live via the OGraf data API.
One Resolve-side gotcha to tell the user: the imported clip's **Composite
Mode must be Normal** (not Multiply) for a clean alpha overlay.
## Defaults
When the user doesn't specify:
- `format` → `png`
- `scale` → `2` (high-DPI; `4` for hero shots if the file size cost is acceptable)
- `backgroundColor` → `transparent` for PNG, omit for JPEG (which forces white)
- video `resolution` → `4K`, `quality` → `high` — this user works in 4K, so
high quality is the baseline, not an opt-in. Only go smaller when the user
explicitly asks for a lighter file.
## Feedback loop
After a successful export, when iteration is plausible, call `mcp__ask-user__ask_user`:
```
{
"message": "How does this look?",
"kind": "enum",
"options": ["Looks good", "Try a different format", "Higher quality / 4K", "Adjust background"]From aiatelie/ai-atelie, MIT.
More from aiatelie/ai-atelie
- 0.542score
frontend-design
aiatelie
Aesthetic and convention guide for editing AI Atelie's own chrome — the editor, canvas frame, toolbars, sidebars, dialogs, settings, projects screen.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
design-critique
aiatelie
Run a structured anti-slop audit on the design just produced before declaring done.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
design-md-author
aiatelie
Read or write a Google-spec DESIGN.md at the project root — the cross-tool aesthetic spec that grounds every prompt in this project.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
semantic-commit
aiatelie
Draft a Conventional Commits 1.0.0 message for the AI Atelie repo.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
canvas-sync
aiatelie
Keep the canvas surface coherent across its three places — the canonical starter at `mcp/starters/DesignCanvas.jsx`, the byte-identical demo copy at…
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
cuj-guardian
aiatelie
Run and triage AI Atelie's Critical User Journey (CUJ) for every PR — the single end-to-end test that proves a user can open the app, create a project, drive…
SkillCFreshness: C★ 11Claude Code +9 - 0.539score
interactive-prototype
aiatelie
Build a clickable, hi-fi prototype of a product or flow — not a wireframe, not a static mock.
SkillCFreshness: C★ 11Claude Code +9 - 0.539score
ship-task
aiatelie
Take an AI Atelie task — issue, ticket, or ad-hoc ask — all the way from description to merged-ready PR.
SkillCFreshness: C★ 11Claude Code +9 - 0.539score
animated-video
aiatelie
Timeline-based motion design — animated explainer-style HTML artifacts where time advances and elements enter or exit on a schedule.
SkillCFreshness: C★ 11Claude Code +9 - 0.539score
design-aesthetic-presets
aiatelie
Pick one of eleven named aesthetic directions before writing any code, then execute it with discipline.
SkillCFreshness: C★ 11Claude Code +9 - 0.538score
verify-with-playwright
aiatelie
Drive a real browser against AI Atelie's running dev server to verify a change works, and capture screenshots + video as PR evidence.
SkillCFreshness: C★ 11Claude Code +9 - 0.538score
pr-evidence
aiatelie
Run AI Atelie's journey suite and inject inline-rendering evidence (per-journey video + screenshot, in a 4-column markdown table) into the current PR's body.
SkillCFreshness: C★ 11Claude Code +9
Signals
- Stars
- 11
- Forks
- 0
- Open issues
- 40
- Last commit (this folder)
- May 21, 2026 (5 months ago)
- Last release
- Jun 3, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/aiatelie/ai-atelie
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from aiatelie
- 0.542score
semantic-commit
aiatelie
Draft a Conventional Commits 1.0.0 message for the AI Atelie repo.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
frontend-design
aiatelie
Aesthetic and convention guide for editing AI Atelie's own chrome — the editor, canvas frame, toolbars, sidebars, dialogs, settings, projects screen.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
design-critique
aiatelie
Run a structured anti-slop audit on the design just produced before declaring done.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
canvas-sync
aiatelie
Keep the canvas surface coherent across its three places — the canonical starter at `mcp/starters/DesignCanvas.jsx`, the byte-identical demo copy at…
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
cuj-guardian
aiatelie
Run and triage AI Atelie's Critical User Journey (CUJ) for every PR — the single end-to-end test that proves a user can open the app, create a project, drive…
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
design-md-author
aiatelie
Read or write a Google-spec DESIGN.md at the project root — the cross-tool aesthetic spec that grounds every prompt in this project.
SkillCFreshness: C★ 11Claude Code +9
Cite this page
export skill. Agent Mart. https://agentmart.dev/skills/aiatelie-export (last updated 2026-10-24)