repo-demo-generator

Original🇺🇸 English
Translated
2 scripts

Generate marketing demo HTML for any repository using a hook+demo pipeline. This skill scans source code into <code="..."> blocks, creates plan outlines, generates hook/demo HTML, and optionally merges them. Use when you need one-click demo generation for arbitrary repos with Gemini CLI (`gemini -m`), including selectable hook templates (`text`, `shorts`, `4methods`).

11installs
Added on

NPX Install

npx skill4agent add topvibecoder/repo-demo-generator repo-demo-generator

Tags

Translated version includes tags in frontmatter

Repo Demo Generator

Generate demo assets from any codebase in 3 stages:
  1. Extract code context as
    <code="path">...
    blocks
  2. Generate outlines (hook outline + demo outline)
  3. Generate HTML (hook, demo, and merged)

Quick Start

bash
.gemini/skills/repo-demo-generator/scripts/run_demo.sh .

Common Commands

bash
# Full hook+demo pipeline (default: mix mode)
.gemini/skills/repo-demo-generator/scripts/run_demo.sh . --mode mix --hook random

# Force a specific hook template
.gemini/skills/repo-demo-generator/scripts/run_demo.sh . --hook text

# Demo only
.gemini/skills/repo-demo-generator/scripts/run_demo.sh . --mode demo

# Hook only
.gemini/skills/repo-demo-generator/scripts/run_demo.sh . --mode hook --hook 4methods

# Skip non-critical paths and enforce scan token budget
.gemini/skills/repo-demo-generator/scripts/run_demo.sh . --mode mix \
  --ignore docs --ignore assets --ignore youtube \
  --token-limit 200000

# Custom model and requirement
.gemini/skills/repo-demo-generator/scripts/run_demo.sh . \
  --model gemini-3-pro-preview \
  --requirements "强调商业价值与一分钟内可读性"

Notes

  • Core script:
    scripts/run_demo.sh
  • Scanner:
    scripts/scan_codebase.py
  • Default provider in
    .gemini
    path:
    gemini
  • Output directory default:
    ./.demos/demo_<timestamp>_<repo>/
  • Default scan token guard:
    200000
    estimated tokens; use
    --token-limit 0
    to disable.
  • Source scan default: unlimited (
    --max-chars 0
    ); set
    --max-chars <n>
    only when you need truncation.