Install
openclaw skills install @soraiabarroso/extract-assetsopenclaw skills install @soraiabarroso/extract-assetsWith the MiroMiro tools connected (Claude, ChatGPT, Cursor, Codex) use the tools in the
table. Without them (OpenClaw and other agents) call the matching REST endpoint:
/v1/images, /v1/svg, /v1/videos, /v1/audio, /v1/lottie.
curl -s "https://miromiro.app/api/v1/svg?url=github.com" -H "Authorization: Bearer $MIROMIRO_API_KEY"
No key yet? The user gets one free at https://miromiro.app/api/onboarding (300 credits a month, no card). Ask them for it; never invent one. Images, SVGs, videos and audio cost 1 credit; Lottie 3.
One tool per asset kind. All of them take a url and return resolved URLs tagged by where
they were found.
| Ask | Tool |
|---|---|
| Icons, vector logos, anything SVG | extract_svgs |
| Images, photos, og:image, favicons | extract_assets |
| Video files and player embeds | extract_videos |
| Audio files, podcast enclosures | extract_audio |
| Lottie / animation JSON | extract_lottie |
extract_svgs returns inline SVG markup sanitized and paste-ready, alongside external
.svg file references — so an icon set can usually be lifted straight into a project.
The API reads static HTML by default. Media is the category most often mounted at runtime, so thin results are common and expected:
When any of these come back empty or suspiciously short, call again with render: true.
That runs the page in a real browser so its JavaScript executes first (+5 credits). For
video, audio and Lottie specifically, an empty first result is a reason to retry, not a
reason to tell the user the page has none.
Check the note field on video and audio responses — it spells out the coverage caveat.
source: "embed" means a player page (YouTube, Vimeo, Wistia, Loom), not a downloadable
file. Do not present an embed URL as if the user can download it — link it as an embed.
Remote results are trimmed so a large page cannot flood the context, and every trimmed response states what was dropped. Two optional arguments loosen it:
limit — raise the item cap, up to 200full_output: true — return complete long strings, such as entire inline SVG markupReach for limit when the user wants everything on an asset-heavy page, and
full_output when a truncated SVG needs to be complete to be usable.
Assets on someone's site are usually theirs. Extracting for reference, analysis, or rebuilding your own version is ordinary work; redistributing their logo, photography, or video is a licensing question. Mention it when the user is clearly heading toward republishing rather than referencing.