skills/showtime/references/onboarding.mdOnboarding: the first-run conversation
Read this when showtime doctor --quick reports failures, when a command says setup has not been run,
or when the user is new to showtime ("how do I set this up?", "what do I need?"). The goal is one
short exchange: what is there, what is missing, one decision, then the install, then back to the video.
1. Look before you talk#
showtime doctor --json --quick
Read checks[]: each row has check, status (pass, warn, fail, skip), detail and hint
(the one-line fix). --quick skips the test encode and the browser launch (about 1 s); run the full
showtime doctor after installing.
Also run showtime setup --estimate (installs nothing) for the size and time of the default install,
and showtime setup --list when the user asks about extras.
2. Tell the user in one table, then ask one thing#
Group the rows into what they mean for videos, not into package names:
| Area | Status | Means |
|---|---|---|
| ffmpeg, browser, Node | ok | rendering works |
| Python venv, models | missing | voice, transcription and captions need setup |
| audio library | not fetched | generated music and effects still work; library tracks need a fetch |
Then one decision, with the default recommended:
showtime needs a one-time install into
~/.showtime: about 0.6-0.9 GB of downloads, usually 2-6 minutes. Nothing outside that folder changes. Install the default now? (recommended)
Use the numbers setup --estimate printed, not the ones in this file. Do not ask about tiers or extras
up front: the default tier covers every workflow in SKILL.md, and extras are fetched when a feature
needs one.
3. Install#
showtime setup # the core tier; prints progress, resumes after interruptions
showtime doctor # full check, including a real browser launch and test encode
- setup is idempotent: running it again skips what is present and resumes partial downloads.
- It needs uv and Node.js 20+. If either is missing, setup stops and prints the exact install command for this OS. Installing system software is the user's call: show them the command and let them run it (or run it only after they say yes), then run setup again.
- A long setup should run in the background with progress checks, not block your turn:
showtime setup --background, thenshowtime status <id> --wait 240until it ends. - Inside an agent's sandbox (doctor fails
home writableornetworkand names the host setting to change): ask the user to runshowtime setuponce in their own terminal, or to change that setting; or install into the project withSHOWTIME_HOME=.showtime showtime setup(showtime then finds./.showtimeby itself in that project). - The first doctor (or render) after a restart can take a few minutes while the OS checks native libraries, macOS especially; doctor says so and shows what it is checking. Tell the user it is not stuck; later runs take seconds.
- Behind a proxy or offline:
showtime setup --seed DIRreuses files downloaded elsewhere (matched by size and sha256).
Done when showtime doctor shows 0 fail. Warnings each come with a fix: line; most are optional.
4. What works now, what arrives later#
Say this in two or three lines so nothing surprises the user later:
| Works right after the core install | Fetched automatically on first use (a one-line notice with the size) |
|---|---|
| HTML and canvas videos, all templates, preview, render, check, snap | the audio library's starter part (~41 MB) on first library use; category parts, produced-music tracks and extra SFX packs when a mix or search needs them; all of it: showtime audio lib fetch (~249 MB) |
| generated music, all 56 effect types, mixing, mastering | the transcription model, Parakeet v3 (~465 MB), before the first transcription; the Whisper engine + a Whisper model only for languages outside Parakeet's 25; the vocal separator (67 MB) for speech under loud music |
| Kokoro voices (English, Spanish, more) with word timings | Manim (~60 MB) before the first Manim scene; icons one at a time (a few KB each) |
| footage edits, captions (transcripts after the first-use fetch) | Piper voices, the English aligner, background removal outside macOS (rembg; its model is about 170 MB) |
| site capture, demo recording, auto zoom, fonts, exports | a headed browser (--headed without Chrome/Edge: full Chromium, ~200 MB) |
Still explicit (showtime setup --with <name>): Whisper turbo (asr-turbo), speaker labels (diarize),
audio event tags (events), Supertonic voices (supertonic), DeepFilterNet (deepfilter).
showtime setup --plan lists every component with its size, URL, sha256 and when it is fetched. On a
machine that will be offline later, run showtime setup --full while online (everything now, nothing
fetched later), or copy the files from showtime setup --plan --urls and use --seed DIR. A
first-use fetch while offline fails with exit code 3 and says exactly that.
When a feature needs a missing extra, the command fails with exit code 3 and prints the exact
showtime setup --with <name> line and its size. Relay it, ask, install, continue. Setting
SHOWTIME_AUTO_INSTALL=1 lets it install without asking; only set it if the user says so.
5. Where things live#
showtime paths prints them. Everything is under ~/.showtime (move it with SHOWTIME_HOME): the
ffmpeg build, the Python venv, Node packages, models, SoundFonts, the audio library, fonts and caches.
Videos go to ./showtime-out/ in the folder the user works in (SHOWTIME_OUT moves it).
6. If setup fails#
- Re-run
showtime setup: most failures are interrupted downloads, and it resumes. showtime setup --verifyre-hashes installed files;--forcereinstalls.- Still failing:
showtime doctor --reportwrites a redactedbug-report.md(nothing is uploaded). Readdiagnosing.mdfor the triage order.