{"id":"557e3074-22fe-4e0a-80de-c56f8647e14b","shortId":"wEwaYG","kind":"skill","title":"marketing-demo","tagline":"Record product demos and walkthroughs for marketing assets. Two modes: quick screenshot-stitch demos via ply + ffmpeg, or polished Remotion compositions. Use when the user mentions product demo, demo video, walkthrough video, feature showcase, screen recording, GIF demo, product ","description":"# /marketing-demo — Product Demo Recorder\n\nRecord product demos for marketing. Two production paths: quick (ply + ffmpeg) for rough demos, polished (Remotion) for branded marketing videos.\n\n## Reads\n\n- `brand/creative-kit.md` — Colors, fonts, logo paths for branded overlays\n- `brand/voice-profile.md` — Tone guidance for text overlays\n- `brand/stack.md` — Available tools (ply, ffmpeg, remotion)\n\n## On Activation\n\n1. Read `brand/creative-kit.md` for colors, fonts, logo paths. If missing, ask for brand colors and logo.\n2. Read `brand/voice-profile.md` for tone guidance on text overlays. If missing, use clear/neutral tone.\n3. Read `brand/stack.md` to confirm available tools. If missing, detect tools directly.\n4. Check tool availability:\n   ```bash\n   command -v ply && echo \"ply: ready\" || echo \"ply: missing\"\n   command -v ffmpeg && echo \"ffmpeg: ready\" || echo \"ffmpeg: missing\"\n   command -v npx && echo \"remotion: available\" || echo \"remotion: unavailable\"\n   ```\n5. If `ply` or `ffmpeg` missing, warn and suggest install.\n\n## Shot Duration Rules\n\n| Demo Type | Duration per Shot | Notes |\n|-----------|------------------|-------|\n| Quick overview | 0.5-1s | Fast cuts, build excitement |\n| Feature demo | 2-3s | Time to read + comprehend |\n| Walkthrough | 4-5s | Instructional pacing |\n| Social clip | 1-2s | Attention-grabbing, fast |\n\n## Demo Storytelling Principles\n\nDemos fail when they show the product mechanically instead of telling a story. The viewer needs a reason to keep watching. These principles come from what actually gets engagement on landing pages and social:\n\n1. **Open with the outcome, not the setup.** The first 2 seconds decide if someone watches the rest. Show the \"after\" state — the dashboard with data, the completed design, the result. Setup (login, loading, navigation) earns zero attention.\n2. **One feature = one demo.** Trying to cram 5 features into 30 seconds makes all of them forgettable. A focused demo of one feature is worth more than a rushed tour.\n3. **Show the magic moment.** Every product has one interaction where users go \"oh wow.\" Find that moment and build the demo around it — it's why people click \"try it.\"\n4. **Add context with text overlays.** Social videos autoplay muted. Without text callouts, viewers see UI changing with no idea what's happening or why it matters. Every shot needs a 3-6 word overlay explaining the value.\n5. **Pacing: 2-3 seconds per concept.** This feels fast, but viewer attention is brutal. If a shot doesn't earn its screen time with new information, cut it.\n\n## Step 1: Determine Demo Type\n\n| Type | Duration | Resolution | Format | Use Case |\n|------|----------|-----------|--------|----------|\n| Hero demo | 15-30s | 1280x800 | MP4 | Landing page above-fold |\n| Feature highlight | 5-15s | 1280x800 | GIF/MP4 | Feature section, docs |\n| Full walkthrough | 60-180s | 1280x800 | MP4 | YouTube, sales deck |\n| Social clip | 5-15s | 1080x1080 | MP4 | Instagram, Twitter/X |\n| Email GIF | 3-8s | 600x400 | GIF | Email campaigns |\n| How-to | 30-90s | 1280x800 | MP4 | Help docs, onboarding |\n\nAsk the user which type, or infer from context.\n\n## Step 2: Plan Shot List\n\nBefore recording, plan each shot:\n\n```markdown\n## Shot List\n\n1. [Action: Navigate to landing page]\n   - URL: https://example.com\n   - Wait: 1s for load\n   - Highlight: Hero section\n\n2. [Action: Click \"Get Started\" button]\n   - Wait: transition animation\n   - Highlight: Signup form\n\n3. [Action: Fill demo data]\n   - Type: demo@example.com\n   - Highlight: Success state\n```\n\nEach shot = one `ply` screenshot or interaction sequence.\n\n## Step 3: Choose Production Mode\n\n### Mode A: Quick Demo (ply + ffmpeg)\n\nFast, rough demos from screenshots stitched into video.\n\n**Capture screenshots:**\n```bash\n# Navigate and screenshot each shot\nply navigate \"https://example.com\"\nply screenshot --output marketing/demos/shot-01.png\nply click \"Get Started\"\nply screenshot --output marketing/demos/shot-02.png\n```\n\n**Stitch with ffmpeg:**\n```bash\n# MP4 from screenshots (2 seconds per frame)\nffmpeg -framerate 0.5 -i marketing/demos/shot-%02d.png \\\n  -c:v libx264 -pix_fmt yuv420p \\\n  -vf \"scale=1280:800:force_original_aspect_ratio=decrease,pad=1280:800:(ow-iw)/2:(oh-ih)/2\" \\\n  marketing/demos/demo.mp4\n\n# Preview GIF (lower quality, smaller file)\nffmpeg -i marketing/demos/demo.mp4 \\\n  -vf \"fps=10,scale=640:-1:flags=lanczos\" \\\n  -c:v gif marketing/demos/demo-preview.gif\n\n# Email GIF (600px wide, optimized)\nffmpeg -i marketing/demos/demo.mp4 \\\n  -vf \"fps=8,scale=600:-1:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse\" \\\n  marketing/demos/demo-email.gif\n\n# Square crop for social (1080x1080)\nffmpeg -i marketing/demos/demo.mp4 \\\n  -vf \"crop=min(iw\\,ih):min(iw\\,ih),scale=1080:1080\" \\\n  marketing/demos/demo-square.mp4\n```\n\n### Mode B: Polished Demo (Remotion)\n\nFor marketing-grade output with transitions, text overlays, branded intros.\n\n**Generate Remotion composition:**\n```bash\n# Initialize if needed\nnpx remotion init marketing/demos/remotion-demo\n\n# Render final video\nnpx remotion render marketing/demos/remotion-demo/src/index.tsx \\\n  --output marketing/demos/demo-polished.mp4\n```\n\n**Composition structure:**\n```\nsrc/\n├── index.tsx          # Root composition\n├── Intro.tsx          # Branded intro (logo, tagline)\n├── DemoScene.tsx      # Screenshot with text overlay\n├── Transition.tsx     # Fade/slide between scenes\n└── Outro.tsx          # CTA + URL\n```\n\n**Key Remotion patterns** (see [references/remotion-examples.md](references/remotion-examples.md) for complete component code):\n- Use `<Img>` for screenshots, `<AbsoluteFill>` for layout\n- `useCurrentFrame()` + `interpolate()` for animations\n- Pull brand colors from `brand/creative-kit.md`\n- 30fps for smooth playback, 1280x720 or 1920x1080\n- Add text overlays calling out features with `<Sequence>`\n\n**Intro scene (2-3s):** Logo centered, tagline fades in. Brand colors as background gradient. Keep it short — the product is the star.\n\n**Demo scene (per shot):** Screenshot fills 80% of frame. Text overlay at top or bottom with 1-line feature callout. Use `interpolate()` for a subtle zoom-in (1.0 → 1.05 over the scene duration) to add life.\n\n**Transition between scenes:** Fade + slight slide (200ms). Never use fancy wipes — they distract from the product.\n\n**Outro scene (3-4s):** CTA text (\"Try it free at [url]\"), logo, and optional social proof line. This is the only slide that sells — keep all other slides focused on showing.\n\n### Error Recovery\n\n**ply failures** (page doesn't load, element not found, timeout): Skip to shot N+1 and document the failure in the shot list. After all shots complete, review skipped shots and retry once. If still failing, use manual screenshots as fallback.\n\n**ffmpeg failures** (codec not found, format error): Check `ffmpeg -codecs` for available codecs. If libx264 is missing, try `-c:v h264` or install via `brew install ffmpeg`. For GIF palette issues, simplify the filter chain — drop `split/palettegen/paletteuse` and use basic `-vf \"fps=10,scale=640:-1\"`.\n\n**Remotion failures** (render crashes, composition errors): Check node version (`node -v`, needs 18+). If `npx remotion render` fails, try `npx remotion render --gl=angle` or `--gl=swangle` for GPU issues. For composition errors, verify all `<Img>` src paths are correct and images exist.\n\n## Step 4: Convert & Output\n\nAll outputs go to `marketing/demos/`. Name by type:\n\n| Output | Filename | Notes |\n|--------|----------|-------|\n| MP4 (desktop) | `demo-hero.mp4` | H.264, 1280x800 |\n| MP4 (social) | `demo-social-1080.mp4` | Square, 1080x1080 |\n| GIF (preview) | `demo-preview.gif` | 640px wide, <5MB |\n| GIF (email) | `demo-email.gif` | 600px wide, <2MB |\n| MP4 (polished) | `demo-polished.mp4` | Remotion output |\n\n## Step 5: Completion Summary\n\n```markdown\n## Demo Assets Created\n\n| Asset | Size | Format | Suggested Use |\n|-------|------|--------|--------------|\n| demo-hero.mp4 | 1.2MB | MP4 1280x800 | Landing page hero |\n| demo-preview.gif | 3.4MB | GIF 640px | README, docs |\n| demo-email.gif | 1.1MB | GIF 600px | Email campaigns |\n| demo-social-1080.mp4 | 800KB | MP4 1080x1080 | Instagram, X |\n\nAll assets saved to `marketing/demos/`.\n```\n\n## Viewport Configs\n\n| Platform | Width | Height | Scale |\n|----------|-------|--------|-------|\n| Desktop | 1280 | 800 | 1x |\n| Desktop HD | 1920 | 1080 | 1x |\n| Mobile | 390 | 844 | 2x |\n| Instagram | 1080 | 1080 | 1x |\n| Twitter/X | 1200 | 675 | 1x |\n| Email | 600 | 400 | 1x |\n\n## Anti-Patterns\n\n| Mistake | Why It Fails |\n|---------|-------------|\n| Recording login/signup flows | Nobody cares about your auth screen. Start after login. |\n| Showing loading spinners | Edit them out or skip to the loaded state. Spinners kill momentum. |\n| No text overlays on silent autoplay | Social videos autoplay muted. Without text, viewers have no idea what they're watching. |\n| Demo longer than 60s without chapter breaks | Attention drops after 15s. If it's long, add clear section titles. |\n| Recording at inconsistent viewport sizes | Shots that jump between sizes look amateur. Lock viewport before recording. |\n| Showing every feature | Pick 3-5 features max. Demos that show everything sell nothing. |\n| Mouse cursor wandering aimlessly | Plan each click. Cursor should move with purpose — straight lines to targets. |\n\n## Related Skills\n\n- `/creative` — Ad visuals, product photos (static assets, not demos)\n- `/content-atomizer` — Turn demo into platform-specific posts\n- `/page-cro` — Audit the page the demo showcases","tags":["marketing","demo","cli","moizibnyousaf","agent-skills","ai-agents","ai-marketing","brand-memory","brand-voice","claude-code","claude-code-skills","cmo"],"capabilities":["skill","source-moizibnyousaf","skill-marketing-demo","topic-agent-skills","topic-ai-agents","topic-ai-marketing","topic-brand-memory","topic-brand-voice","topic-claude-code","topic-claude-code-skills","topic-cli","topic-cmo","topic-marketing-automation","topic-marketing-cli","topic-seo"],"categories":["marketing-cli"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/MoizIbnYousaf/marketing-cli/marketing-demo","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add MoizIbnYousaf/marketing-cli","source_repo":"https://github.com/MoizIbnYousaf/marketing-cli","install_from":"skills.sh"}},"qualityScore":"0.459","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 18 github stars · SKILL.md body (9,520 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:05:50.603Z","embedding":null,"createdAt":"2026-05-04T19:06:14.383Z","updatedAt":"2026-05-18T19:05:50.603Z","lastSeenAt":"2026-05-18T19:05:50.603Z","tsv":"'+1':934 '-1':187,660,680,1006 '-15':447,467 '-180':457 '-2':211 '-3':196,395,813 '-30':435 '-4':889 '-5':204,1279 '-6':386 '-8':476 '-90':486 '/2':640,644 '/content-atomizer':1315 '/creative':1306 '/marketing-demo':44 '/page-cro':1323 '0.5':186,615 '02d.png':618 '1':91,210,254,422,515,849 '1.0':861 '1.05':862 '1.1':1133 '1.2':1118 '10':657,1003 '1080':710,711,1077,1142,1167,1174,1175 '1080x1080':469,697,1080,1146 '1200':1178 '1280':627,635,1161 '1280x720':800 '1280x800':437,449,459,488,1071,1121 '15':434 '15s':1249 '18':1019 '1920':1166 '1920x1080':802 '1s':524 '1x':1163,1168,1176,1180,1184 '2':107,195,264,292,394,503,530,609,812 '200ms':876 '2mb':1092 '2x':1172 '3':121,323,385,475,542,561,888,1278 '3.4':1126 '30':303,485 '30fps':796 '390':1170 '4':133,203,354,1050 '400':1183 '5':165,300,392,446,466,1102 '5mb':1086 '60':456 '600':679,1182 '600px':669,1090,1136 '600x400':478 '60s':1242 '640':659,1005 '640px':1084,1129 '675':1179 '8':677 '80':839 '800':628,636,1162 '800kb':1144 '844':1171 'above-fold':441 'action':516,531,543 'activ':90 'actual':246 'ad':1307 'add':355,803,868,1254 'aimless':1291 'amateur':1269 'angl':1030 'anim':538,790 'anti':1186 'anti-pattern':1185 'around':345 'ask':101,493 'aspect':631 'asset':11,1107,1109,1150,1312 'attent':214,291,404,1246 'attention-grab':213 'audit':1324 'auth':1199 'autoplay':362,1224,1227 'avail':84,126,136,161,972 'b':714 'background':823 'bash':137,581,605,732 'basic':1000 'bottom':847 'brand':65,75,103,727,756,792,820 'brand/creative-kit.md':69,93,795 'brand/stack.md':83,123 'brand/voice-profile.md':77,109 'break':1245 'brew':985 'brutal':406 'build':191,342 'button':535 'c':619,663,979 'call':806 'callout':366,852 'campaign':481,1138 'captur':579 'care':1196 'case':431 'center':816 'chain':995 'chang':370 'chapter':1244 'check':134,968,1013 'choos':562 'clear':1255 'clear/neutral':119 'click':351,532,595,1294 'clip':209,465 'code':781 'codec':963,970,973 'color':70,95,104,793,821 'come':243 'command':138,147,156 'complet':281,779,946,1103 'compon':780 'composit':25,731,749,754,1011,1038 'comprehend':201 'concept':398 'config':1155 'confirm':125 'context':356,501 'convert':1051 'correct':1045 'cram':299 'crash':1010 'creat':1108 'crop':694,702 'cta':770,891 'cursor':1289,1295 'cut':190,419 'dashboard':277 'data':279,546 'decid':266 'deck':463 'decreas':633 'demo':3,6,18,32,33,42,46,50,61,178,194,217,220,296,312,344,424,433,545,568,573,716,833,1067,1075,1096,1106,1115,1140,1239,1282,1314,1317,1328 'demo-email.gif':1089,1132 'demo-hero':1066,1114 'demo-polish':1095 'demo-preview.gif':1083,1125 'demo-soci':1074,1139 'demo@example.com':548 'demoscene.tsx':760 'design':282 'desktop':1065,1160,1164 'detect':130 'determin':423 'direct':132 'distract':882 'doc':453,491,1131 'document':936 'doesn':410,923 'drop':996,1247 'durat':176,180,427,866 'earn':289,412 'echo':141,144,150,153,159,162 'edit':1207 'element':926 'email':473,480,667,1088,1137,1181 'engag':248 'error':918,967,1012,1039 'everi':328,381,1275 'everyth':1285 'example.com':522,589 'excit':192 'exist':1048 'explain':389 'fade':818,873 'fade/slide':766 'fail':221,955,1024,1191 'failur':921,938,962,1008 'fallback':960 'fanci':879 'fast':189,216,401,571 'featur':37,193,294,301,315,444,451,808,851,1276,1280 'feel':400 'ffmpeg':21,58,87,149,151,154,169,570,604,613,652,672,698,961,969,987 'file':651 'filenam':1062 'fill':544,838 'filter':994 'final':741 'find':338 'first':263 'flag':661,681 'flow':1194 'fmt':623 'focus':311,915 'fold':443 'font':71,96 'forc':629 'forgett':309 'form':541 'format':429,966,1111 'found':928,965 'fps':656,676,1002 'frame':612,841 'framer':614 'free':895 'full':454 'generat':729 'get':247,533,596 'gif':41,474,479,647,665,668,989,1081,1087,1128,1135 'gif/mp4':450 'gl':1029,1032 'go':335,1055 'gpu':1035 'grab':215 'grade':721 'gradient':824 'guidanc':79,112 'h.264':1070 'h264':981 'happen':376 'hd':1165 'height':1158 'help':490 'hero':432,528,1068,1116,1124 'highlight':445,527,539,549 'how-to':482 'idea':373,1234 'ih':643,705,708 'imag':1047 'inconsist':1260 'index.tsx':752 'infer':499 'inform':418 'init':738 'initi':733 'instagram':471,1147,1173 'instal':174,983,986 'instead':228 'instruct':206 'interact':332,558 'interpol':788,854 'intro':728,757,810 'intro.tsx':755 'issu':991,1036 'iw':639,704,707 'jump':1265 'keep':239,825,911 'key':772 'kill':1217 'lanczo':662,682 'land':250,439,519,1122 'layout':786 'libx264':621,975 'life':869 'line':850,903,1301 'list':506,514,942 'load':287,526,925,1205,1214 'lock':1270 'login':286,1203 'login/signup':1193 'logo':72,97,106,758,815,898 'long':1253 'longer':1240 'look':1268 'lower':648 'magic':326 'make':305 'manual':957 'markdown':512,1105 'market':2,10,52,66,720 'marketing-demo':1 'marketing-grad':719 'marketing/demos':1057,1153 'marketing/demos/demo-email.gif':692 'marketing/demos/demo-polished.mp4':748 'marketing/demos/demo-preview.gif':666 'marketing/demos/demo-square.mp4':712 'marketing/demos/demo.mp4':645,654,674,700 'marketing/demos/remotion-demo':739 'marketing/demos/remotion-demo/src/index.tsx':746 'marketing/demos/shot-':617 'marketing/demos/shot-01.png':593 'marketing/demos/shot-02.png':601 'matter':380 'max':1281 'mb':1119,1127,1134 'mechan':227 'mention':30 'min':703,706 'miss':100,117,129,146,155,170,977 'mistak':1188 'mobil':1169 'mode':13,564,565,713 'moment':327,340 'momentum':1218 'mous':1288 'move':1297 'mp4':438,460,470,489,606,1064,1069,1072,1078,1093,1098,1117,1120,1143,1145 'mute':363,1228 'n':933 'name':1058 'navig':288,517,582,588 'need':235,383,735,1018 'never':877 'new':417 'nobodi':1195 'node':1014,1016 'note':183,1063 'noth':1287 'npx':158,736,743,1021,1026 'oh':336,642 'oh-ih':641 'onboard':492 'one':293,295,314,331,554 'open':255 'optim':671 'option':900 'origin':630 'outcom':258 'output':592,600,722,747,1052,1054,1061,1100 'outro':886 'outro.tsx':769 'overlay':76,82,115,359,388,726,764,805,843,1221 'overview':185 'ow':638 'ow-iw':637 'p':688,690 'pace':207,393 'pad':634 'page':251,440,520,922,1123,1326 'palett':990 'palettegen':687 'paletteus':691 'path':55,73,98,1043 'pattern':774,1187 'peopl':350 'per':181,397,611,835 'photo':1310 'pick':1277 'pix':622 'plan':504,509,1292 'platform':1156,1320 'platform-specif':1319 'playback':799 'pli':20,57,86,140,142,145,167,555,569,587,590,594,598,920 'polish':23,62,715,1094,1097 'post':1322 'preview':646,1082 'principl':219,242 'product':5,31,43,45,49,54,226,329,563,829,885,1309 'proof':902 'pull':791 'purpos':1299 'qualiti':649 'quick':14,56,184,567 'ratio':632 're':1237 'read':68,92,108,122,200 'readi':143,152 'readm':1130 'reason':237 'record':4,40,47,48,508,1192,1258,1273 'recoveri':919 'references/remotion-examples.md':776,777 'relat':1304 'remot':24,63,88,160,163,717,730,737,744,773,1007,1022,1027,1099 'render':740,745,1009,1023,1028 'resolut':428 'rest':271 'result':284 'retri':951 'review':947 'root':753 'rough':60,572 'rule':177 'rush':321 's0':684,686 's1':685,689 'sale':462 'save':1151 'scale':626,658,678,709,1004,1159 'scene':768,811,834,865,872,887 'screen':39,414,1200 'screenshot':16,556,575,580,584,591,599,608,761,784,837,958 'screenshot-stitch':15 'second':265,304,396,610 'section':452,529,1256 'see':368,775 'sell':910,1286 'sequenc':559 'setup':261,285 'short':827 'shot':175,182,382,409,505,511,513,553,586,836,932,941,945,949,1263 'show':224,272,324,917,1204,1274,1284 'showcas':38,1329 'signup':540 'silent':1223 'simplifi':992 'size':1110,1262,1267 'skill':1305 'skill-marketing-demo' 'skip':930,948,1211 'slide':875,908,914 'slight':874 'smaller':650 'smooth':798 'social':208,253,360,464,696,901,1073,1076,1141,1225 'someon':268 'source-moizibnyousaf' 'specif':1321 'spinner':1206,1216 'split':683 'split/palettegen/paletteuse':997 'squar':693,1079 'src':751,1042 'star':832 'start':534,597,1201 'state':275,551,1215 'static':1311 'step':421,502,560,1049,1101 'still':954 'stitch':17,576,602 'stori':232 'storytel':218 'straight':1300 'structur':750 'subtl':857 'success':550 'suggest':173,1112 'summari':1104 'swangl':1033 'taglin':759,817 'target':1303 'tell':230 'text':81,114,358,365,725,763,804,842,892,1220,1230 'time':198,415 'timeout':929 'titl':1257 'tone':78,111,120 'tool':85,127,131,135 'top':845 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-marketing' 'topic-brand-memory' 'topic-brand-voice' 'topic-claude-code' 'topic-claude-code-skills' 'topic-cli' 'topic-cmo' 'topic-marketing-automation' 'topic-marketing-cli' 'topic-seo' 'tour':322 'transit':537,724,870 'transition.tsx':765 'tri':297,352,893,978,1025 'turn':1316 'twitter/x':472,1177 'two':12,53 'type':179,425,426,497,547,1060 'ui':369 'unavail':164 'url':521,771,897 'use':26,118,430,782,853,878,956,999,1113 'usecurrentfram':787 'user':29,334,495 'v':139,148,157,620,664,980,1017 'valu':391 'verifi':1040 'version':1015 'vf':625,655,675,701,1001 'via':19,984 'video':34,36,67,361,578,742,1226 'viewer':234,367,403,1231 'viewport':1154,1261,1271 'visual':1308 'wait':523,536 'walkthrough':8,35,202,455 'wander':1290 'warn':171 'watch':240,269,1238 'wide':670,1085,1091 'width':1157 'wipe':880 'without':364,1229,1243 'word':387 'worth':317 'wow':337 'x':1148 'youtub':461 'yuv420p':624 'zero':290 'zoom':859 'zoom-in':858","prices":[{"id":"db001759-ba23-4b89-8867-d0eb33072dc7","listingId":"557e3074-22fe-4e0a-80de-c56f8647e14b","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"MoizIbnYousaf","category":"marketing-cli","install_from":"skills.sh"},"createdAt":"2026-05-04T19:06:14.383Z"}],"sources":[{"listingId":"557e3074-22fe-4e0a-80de-c56f8647e14b","source":"github","sourceId":"MoizIbnYousaf/marketing-cli/marketing-demo","sourceUrl":"https://github.com/MoizIbnYousaf/marketing-cli/tree/main/skills/marketing-demo","isPrimary":false,"firstSeenAt":"2026-05-04T19:06:14.383Z","lastSeenAt":"2026-05-18T19:05:50.603Z"}],"details":{"listingId":"557e3074-22fe-4e0a-80de-c56f8647e14b","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"MoizIbnYousaf","slug":"marketing-demo","github":{"repo":"MoizIbnYousaf/marketing-cli","stars":18,"topics":["agent-skills","ai-agents","ai-marketing","brand-memory","brand-voice","claude-code","claude-code-skills","cli","cmo","marketing-automation","marketing-cli","seo","skills-sh","typescript"],"license":"mit","html_url":"https://github.com/MoizIbnYousaf/marketing-cli","pushed_at":"2026-05-13T21:06:05Z","description":"Agent-native marketing cli: 51 skills, 5 research agents, brand memory that compounds, plus a local Studio dashboard (beta). single agent-native cli, then /cmo in ur coding agent..","skill_md_sha":"bdde386b2321ac0e8a1f4cec47312b9e5ed22123","skill_md_path":"skills/marketing-demo/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/MoizIbnYousaf/marketing-cli/tree/main/skills/marketing-demo"},"layout":"multi","source":"github","category":"marketing-cli","frontmatter":{"name":"marketing-demo","description":"Record product demos and walkthroughs for marketing assets. Two modes: quick screenshot-stitch demos via ply + ffmpeg, or polished Remotion compositions. Use when the user mentions product demo, demo video, walkthrough video, feature showcase, screen recording, GIF demo, product tour, onboarding video, visual tutorial, feature walkthrough, landing page video, hero video, product video, app preview video, or wants to show their product in action. Even if they just say 'show what it does', 'make a video of the app', 'I need a demo for my landing page', or 'record the app' — this is the skill. If someone has a working product and needs marketing assets that show it off, start here."},"skills_sh_url":"https://skills.sh/MoizIbnYousaf/marketing-cli/marketing-demo"},"updatedAt":"2026-05-18T19:05:50.603Z"}}