asset-import
Installation
SKILL.md
Asset Import
Check browse_assets first when a file may already be imported.
Same-machine editor import (preferred)
- Open the target project using
browserHandoff.urloreditorUrl. Keep exactly one editor tab for this project open, on the same machine/network namespace as your shell. A remote sandbox's localhost is not the user's localhost. - Start the bundled server with Node from PATH, using the origin of the actual editor URL:
node <this-skill-dir>/scripts/serve-local-media.mjs --origin <editor-origin> /path/to/source.mp4
Keep this process alive using the host's background-process support while calling MCP. It prints one JSON line and automatically exits after 900 seconds. It serves only the listed files over loopback URLs without an access token. URLs use the public chatcut-local-media-v1 path prefix to remain compatible with existing editors. Legacy token-prefixed URLs remain supported; the JSON token field contains that public prefix, not a credential.
- Import multiple files in one
import_mediacall:{"action":"from_editor","files":[...]}. Copy each file'sassetId,url,filename, andsizeBytesfrom the printedimportsarray intofiles, omitting its per-fileaction. Each URL may come from a different running helper. Send 1–16 files per call; for larger sets, submit successive batches of 16. Up to eight files are processed concurrently; the editor streams each one straight into its local store, so a card with transfer progress appears as soon as the download starts. There is no loopback-specific file-size cap. The original top-level single-file arguments still work. - Inspect every entry in
results: successful entries haveok:trueandstatus:"locally_imported"; failed entries have anerror. Results preserve input order and includeassetIdandfilename, with top-levelsucceeded/failedcounts. Retry only failed files with the same asset IDs. Success means the editor has persisted local bytes and registered the asset locally. Stop the helpers only after all files succeed. Keep the editor open for server sync, background upload and transcription. - Use the returned asset IDs for timeline work. Wait on
track_progress target:"transcription"before transcript/caption work. Browser-renderable timelines defer original-file uploads; cloud-only or unsupported timelines upload automatically. Checkbrowse_assetsbefore waiting ontarget:"upload"; a deferred upload is not in progress. Use the editor's Upload action when cloud bytes are needed, preserving the same asset ID. If server sync is still catching up, retry the asset lookup.