Run Crun image, video, audio, music, and media-tool workflows through the bundled standalone runtime. Use whenever the user wants to generate, edit, or transform an image, video, voice, speech, or music clip — even if they never say "Crun" or name a model — as well as for model routing, model-schema inspection, credit estimation, local-media upload, asynchronous task execution, downloading generated media, or inline local previews.
npx mdskills install CrunTeam/crun-agent-skillsRelated
1---2name: crun-agent-skills3description: Run Crun image, video, audio, music, and media-tool workflows through the bundled standalone runtime. Use whenever the user wants to generate, edit, or transform an image, video, voice, speech, or music clip — even if they never say "Crun" or name a model — as well as for model routing, model-schema inspection, credit estimation, local-media upload, asynchronous task execution, downloading generated media, or inline local previews.4---56# Crun Media Agent Skills78Use this skill as the entry point for Crun media work. Resolve all commands from this directory:910- `runtime/crun_cli.py` handles model discovery, credit checks, task creation, status, polling, local-file upload, and11 generated-media downloads. Upload with `crun_cli.py upload <local-file>`.12- `catalog/models.json` is the local routing catalog.13- `skills/` contains the core pipeline skills, and `skills/scenarios/` the scenario skills, listed below; read the14 relevant child `SKILL.md` before performing that part of the workflow.1516## Select the workflow1718**Core pipeline skills** — the shared infrastructure every request flows through (route → estimate → create/monitor):1920| Need | Read and use |21|---------------------------------------------|----------------------------------------|22| Choose a model from a broad request | `skills/crun-model-router/SKILL.md` |23| Check balance or affordability | `skills/crun-account-credits/SKILL.md` |24| Create, monitor, resume, or retrieve a task | `skills/crun-task-runner/SKILL.md` |2526**Scenario skills** (`skills/scenarios/`) — matched by user intent; each one composes the core pipeline internally:2728| Need | Read and use |29|---------------------------------------------------------------------|---------------------------------------------------------|30| Generate static image or animated GIF memes | `skills/scenarios/crun-meme-generator/SKILL.md` |31| Generate multi-panel educational comics & storyboards | `skills/scenarios/crun-educational-comic/SKILL.md` |32| Enhance an uploaded image or video | `skills/scenarios/crun-media-enhancer/SKILL.md` |33| Enhance character action, pose & camera motion (T2I, I2I, T2V, I2V) | `skills/scenarios/crun-action-camera-enhancer/SKILL.md` |34| Generate character reference sheets | `skills/scenarios/crun-character-reference/SKILL.md` |35| Replicate, restyle, or remake photos (portrait, pose, style) | `skills/scenarios/crun-photo-replication/SKILL.md` |36| Discover and apply Kling, Vidu, or ByteDance effect templates | `skills/scenarios/crun-effect-template/SKILL.md` |37| Generate promotional images or videos directly from website/product URL | `skills/scenarios/crun-url-promo-generator/SKILL.md` |3839For a broad end-to-end request — the common case where the user describes the media they want but does not know Crun40model names or payloads — follow the "Orchestrate safely" steps below, reading each child skill as that step needs it.41Treat `crun-task-runner` as the single authority for task creation, authorization gates, timeout recovery, failure42handling, and result delivery. Read it before creating any task.4344## Pass JSON portably4546Prefer a UTF-8 JSON file on Windows and whenever shell quoting is uncertain:4748```text49python <skill-root>/runtime/crun_cli.py task estimate --model <model> --input-file <input.json>50python <skill-root>/runtime/crun_cli.py models route --intent-file <intent.json>51```5253Use `-` instead of a path to read that JSON object from stdin. Use `--input-json` or `--intent-json` only when the54current shell can preserve the JSON string exactly. Each JSON source must contain one object.5556Upload a new local input image, video, or audio file before constructing model input:5758```text59python <skill-root>/runtime/crun_cli.py upload <local-file>60```6162Use the returned `file_url`. Never send Base64, data URIs, or local paths as Crun media inputs. For derivative work,63reuse the resource URL returned by the earlier Crun task instead of downloading and uploading it again.6465## Orchestrate safely66671. Identify the output modality and operation. Collect only indispensable inputs, and require source media for edits,68 references, lip-sync, face-swap, watermark-removal, voice-cloning, and similar transformations.692. Upload only new local source media (`crun_cli.py upload`); reuse an existing Crun resource URL directly.703. Route only when the user did not specify an exact model (`crun-model-router`), then inspect the selected model's live71 schema and construct only supported input fields.724. Estimate the exact model input before every new task (`crun-account-credits`). For a routed model, report the model,73 estimated credits, and relevant settings, then obtain explicit confirmation. Skip only this extra confirmation when74 the user explicitly named the model — never treat the original generation request as the confirmation.755. Create once with `task create`, capture the returned `task_id`, and continue only with `task wait` or `task status`76 using that ID.776. Follow `crun-task-runner` for all failures, timeouts, retries, and result delivery.7879Use balanced quality and speed when the user has no preference. Ask about native audio only when it changes the viable80models, and do not ask the user to choose a provider unless the alternatives have materially different tradeoffs.8182Always estimate affordability before creating any task, including tasks for a user-specified model. Require83`affordable: true` from `task estimate` before `task create`. The reason is that `CreateTask` charges credits and is84never retried, so an unaffordable or malformed submission wastes a real charge that cannot be undone.8586Keep `task run` and `media run` only for compatibility or deliberate one-shot use. They create a task directly, so87estimate affordability yourself beforehand and confirm a routed model first — they do not gate on either. Do not use88them as the default agent workflow.8990## Handle sensitive media9192Before transforming a real person's face or voice, or removing a watermark, require confirmation that the user owns or93is authorized to transform the source. Preserve any disclosure or labeling request. Refuse impersonation, fraud,94non-consensual sexual content, and unauthorized removal of an ownership mark.9596Keep API keys out of task payloads, output, and committed files. Let the runtime resolve `CRUN_API_KEY` in this order:97the `~/.crun/.env` file first, then the `CRUN_API_KEY` environment variable. When no key is configured, the runtime98returns `configuration_options` — an ordered list with a permanent setup command for each method split by platform99(`macos_linux`, `windows_cmd`, `windows_powershell`). Recommend the first option: the CLI's own100`python "<absolute path to runtime>/crun_cli.py" config set-api-key <your_api_key>` command (already fully resolved in101the102payload), which validates the key and persists it into `~/.crun/.env` so it works across sessions on every platform.103
Full transparency — inspect the skill content before installing.