shellbot-creative
by @cohnen
Opinionated creative production system for image/video generation, image editing, motion scenes, voiceovers, music, and Remotion assembly. Combines Freepik,...
clawhub install shellbot-creativeπ About This Skill
name: shellbot-creative version: 1.0.0 description: Opinionated creative production system for image/video generation, image editing, motion scenes, voiceovers, music, and Remotion assembly. Combines Freepik, fal.ai, Nano Banana 2 (Gemini 3.1 Flash Image Preview), and Remotion workflows for explainers, product marketing videos, social ads, and reusable asset pipelines. Use when users ask to create or edit visual assets, generate clips, produce narration/music, or deliver a polished final video from a brief. allowed-tools: Bash(curl *api.freepik.com*), Bash(curl *queue.fal.run*), Bash(curl *api.fal.ai*), Bash(curl *fal.run*), Bash(jq *), Bash(mkdir *), Bash(infsh *), Bash(node *), Bash(npx *), Bash(npm *), Bash(ffmpeg *), Bash(python3 scripts/*), Read, Write argument-hint: "
shellbot-creative
Create high-end creative outputs by chaining providers intentionally:
1. Generate reusable assets (Nano Banana 2 / Freepik / fal) 2. Generate scene motion (Freepik Kling / fal video models) 3. Add voice and music (Freepik ElevenLabs voiceover + music or fal equivalents) 4. Assemble and polish in Remotion
Use this skill as a production orchestrator, not as isolated single calls.
Arguments
$0 (plan | asset | edit | video | voice | music | remotion | pipeline | status | sample)$1 (provider, model, or workflow type)$2, $3, etc.$ARGUMENTSAuthentication and provider checks
Support any of these providers:
FREEPIK_API_KEY for Freepik APIFAL_KEY for fal.ai APIINFERENCE_API_KEY (or infsh login) for Nano Banana 2 via inference.shBefore any generation call:
[ -n "$FREEPIK_API_KEY" ] && echo "Freepik ready"
[ -n "$FAL_KEY" ] && echo "fal ready"
command -v infsh >/dev/null && echo "infsh available"
If a requested provider is not authenticated, route to another available provider and clearly explain the fallback.
Provider routing (opinionated defaults)
Read references/provider-matrix.md for exact model choices.
Command behavior
$0 = plan
Turn a user brief into a production storyboard and shot list.
python3 scripts/creative_brief_to_storyboard.py \
--brief "Launch video for a new fitness app aimed at busy professionals" \
--format product-marketing \
--duration 45 \
--aspect-ratio 16:9 \
--out storyboard.json
Then create a provider/model routing recommendation:
python3 scripts/creative_provider_router.py \
--goal full-video \
--priority quality \
--needs-consistency true \
--needs-typography true
$0 = asset
Generate still assets for scenes.
infsh app run google/gemini-3-1-flash-image-preview --input '{
"prompt": "Premium SaaS dashboard on a laptop, soft studio light",
"aspect_ratio": "16:9",
"num_images": 4,
"resolution": "2K"
}'
curl -s -X POST "https://api.freepik.com/v1/ai/mystic" \
-H "x-freepik-api-key: $FREEPIK_API_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt":"Studio product shot of matte black earbuds on reflective surface","resolution":"2k","styling":{"style":"photo"}}'
curl -s -X POST "https://queue.fal.run/fal-ai/flux-2" \
-H "Authorization: Key $FAL_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt":"Cyberpunk storefront, rainy night","image_size":"landscape_16_9"}'
$0 = edit
Perform image editing/upscaling/background work before animation.
See references/workflow-recipes.md for edit chains.
$0 = video
Generate motion scenes from prompts or keyframes.
kling-v3-omni-profal-ai/kling-video/v2/image-to-videoAlways save scene outputs in a structured project folder:
mkdir -p ./creative-output/{assets,scenes,audio,final,manifests}
$0 = voice
Generate narration.
Use concise script-first narration lines generated from storyboard scenes.
$0 = music
Generate background music and keep loudness headroom for voiceover.
music-generation$0 = remotion
Assemble final video with composited assets, generated clips, captions, and audio mix.
npx create-video@latest creative-video
cd creative-video
Generate a Remotion manifest from the storyboard:
python3 ../scripts/remotion_manifest_from_storyboard.py \
--storyboard ../storyboard.json \
--fps 30 \
--voiceover-url "https://example.com/voice.mp3" \
--music-url "https://example.com/music.mp3" \
--out ./src/creative-manifest.json
Then implement composition using assets/remotion/ProductMarketingTemplate.tsx as a baseline.
$0 = pipeline
Run end-to-end sequence:
1. plan from brief
2. asset generation per scene
3. edit and upscale selected assets
4. video generation for hero scenes
5. voice + music
6. remotion assembly + render
If the user asks for a product marketing or explainer video, this is the default command path.
$0 = status
Check async task status for Freepik/fal requests and report:
$0 = sample
Load ready-to-run workflows from references/samples.md.
Quality bar for "outstanding" creative output
Always enforce:
Production workflow policy
Local resources included in this skill
scripts/creative_brief_to_storyboard.py - brief -> timed scene planscripts/creative_provider_router.py - requirement -> provider/model routescripts/remotion_manifest_from_storyboard.py - storyboard -> Remotion-ready manifestscripts/run_full_dry_run.py - full local dry run that outputs storyboard, routes, manifest, and runnable API planscripts/package_skill.sh - build a distributable .tar.gz of the skillscripts/install_skill.sh - install the skill folder into an OpenClaw skills directoryreferences/creative-guidelines.md - durable standards for creative qualityreferences/provider-matrix.md - provider/model decision matrixreferences/workflow-recipes.md - end-to-end recipes for common outcomesreferences/samples.md - concrete command samplesreferences/remotion-playbook.md - Remotion-specific finishing guidanceassets/remotion/ProductMarketingTemplate.tsx - starter Remotion compositionassets/remotion/Root.tsx - composition registration sampleReferences
$0, $1, $ARGUMENTS): https://docs.openclaw.ai/tools/slash-commandsmetadata.openclaw): https://docs.openclaw.ai/tools/skills-config