Skip to content

showtime 0.3.0

Choose a tag to compare

@FavioVazquez FavioVazquez released this 30 Sep 05:24
· 71 commits to main since this release
924fcd3

showtime 0.3.0 reviews every video before you see it, makes videos less alike, and checks what viewers complain about
most: text that moves too fast, is too small on a phone, or a look every agent video seems to share. It also adds
explainers for repos and papers, a release-video command with a GitHub Action, and a receipt for every job that says what
the video took. Same idea as before: your coding agent directs, your machine renders, nothing is uploaded.

In my blind vote in benchmark round 4, 0.3.0 in lean mode was preferred to 0.2.0 on 4 of 6 tasks and to plain Claude
Code on 7 of 8, and its launch video beat a tool built only for launch videos for the first time in four rounds. The
full review, now the default, came after that round and was not part of it. One author, one run per task: anecdotes, not
a result (report).

A full review by default, lean when you ask

  • Quality mode is the default. Every finished video gets looks, qa and a critic round (a reviewer that did not build
    it) before delivery. qa and deliver warn "review pending" until the critic round has run.
  • Lean mode is one word away. Say "lean", run showtime config mode lean, pass --mode lean, or set it through MCP,
    for a lighter pass without the critic round. The mode is recorded in the job and in its receipt.
  • showtime look makes one 1280 px composite of the key frames and a brief for a disposable reviewer that answers
    in text with timestamps. Your agent no longer has to open a stack of full-size images.
  • Short command output. Without a terminal (agents, pipes, MCP), check, qa, doctor and render print the
    verdict, the findings with their fixes and the paths; the full report is in a file. --verbose prints everything.
  • showtime guide <topic> [section] prints a reference's rules or one section instead of the whole file. Every
    reference now opens with an Essentials block.
  • Check before render. render warns when the project changed since the last check, and after a second full
    render it names --from S --to S, which renders only that span and splices it into the full video.
  • showtime job init checks setup and prints setup: ready or the failures with their fixes.

Better videos

  • Variety guard. Each finished job's look (template, theme, palette, type pair, transitions, camera moves, music,
    structure, tone) is kept in a history on your machine. showtime check warns look_repeat when a project repeats one
    of the last five and offers two alternatives. showtime history off turns it off; nothing is uploaded.
  • Style references. showtime reference <video> measures a video's cut rhythm, shot lengths, palette, camera moves,
    rough type scale and loudness, and writes a brief. The storyboard borrows the grammar, never the words, logos or
    shots; the credit is written for you, and showtime qa fails a render that copies the reference's pictures.
  • Phone check. showtime check ends with phone check: PASS or FAIL with timestamps: text held long enough to
    read (per language), a minimum type size at phone width (16:9 5 pt, 1:1 10, 4:5 11, 9:16 15) and nothing under the
    platform's buttons. In qa a failure is a warning.
  • Pairwise review. For publish-bound work, showtime review-pack --against best sets the new render beside the best
    so far as a blind pair, judged twice with the order swapped. showtime review-verdict ships the new one only if it
    wins both; a tie or a split keeps the older render. Up to three rounds, no scores.
  • Brand first for launches. showtime brand capture <repo|url> --job <job> takes the product's palette, fonts, logo,
    wordmark, real copy (with file and line) and real UI before the storyboard; showtime new launch applies it. A launch
    with no kit records why, and check warns when the page ignores the kit. The launch workflow now states length
    defaults (teaser 10 to 15 s, feature 30 to 40 s, launch 45 to 60 s) and the two-second hook.
  • Fixes where agents tripped in the 0.2.0 runs: frames of a clip that is not active no longer depend on seek order,
    retime --from-voice --total works when every scene is narrated, Manim silent films and --mix paths work,
    manim check runs qa's black-frame and frozen-frame detectors on a draft, font errors name the exact missing
    characters and the fix, and doctor warns when the showtime command on your path is not your agent's.
  • Partial renders splice into the full video. render --from/--to --job re-renders a span and writes a complete
    final; a span file is never the deliverable. The Manim templates pass their own check, and qa no longer reads a dark
    design as a black frame.
  • Math by ear. voice script warns when a line repeats a word across a sentence break ("One. One plus three" is
    heard as "one one plus three"); the voice guide says how to read sums and symbols aloud.
  • Charts keep their numbers. A bar or point added to a chart grows in with its own label, while the labels already
    on screen stay lit and move with their bars (they used to blink out and back). Callouts carry their year or value
    ("2015: first year above 400 ppm") and move clear of the line's end label. check warns chart_labels_hidden when
    a page hides chart labels during motion.
  • Pacing you can feel. check warns slow_scene when a scene holds well past the time its text needs; launch
    films warn on still stretches from 3.5 s (they read as a frozen video); qa's dead_stop flags a fast move that halts
    in one frame, and check's same_frame_entrance three or more items landing on one frame, each with its fix. Data
    films dip between text-heavy scenes instead of blurring them together, and showtime look includes the middle of
    the fastest transition, where doubled text hides.
  • "Make it like this video" lands on the reference's style. showtime reference now measures the reference in
    frames (every cut, shot lengths, moves and easing, palette roles, margins and type sizes, tempo and every sound hit)
    and writes a spec with what to keep and what to change, plus a style.css that showtime new --job links into the
    project. The reference's colours carry over unless you have a brand kit or ask otherwise; its words, logos and shots
    never do. showtime reference diff <job> checks the render against the reference and names what drifted, by frame.

New kinds of video

  • Repo explainers and paper explainers (workflows repo-explainer and paper-explainer). A codebase explained in
    five parts, with one request traced through real files and lines at a pinned commit; a paper explained with claims
    tied to pages, figures shown only when their license allows, and Manim for the math. Every claim has a row pointing at
    its source. There is no example in the gallery yet.
  • showtime release-video turns release notes, a CHANGELOG section or a PR description into a ready-to-render
    project with no agent: the notes' own words, holds long enough to read, the people credited.
  • A GitHub Action (.github/actions/showtime-video, guide in docs/github-action.md) renders a release or PR video
    on the runner, checks it, exports an HTML video and a copy under 10 MB, and uploads them. It needs no API key unless
    you choose the mode that runs your own agent.
  • showtime adopt <folder | page | script> takes a video someone already wrote as a function of time (an HTML page
    with seek(t), a canvas draw(t), a CSS-animated page, a Python frame function) and gives it showtime's checks,
    sound, captions, qa, HTML export and review without a rewrite. Your original files are never changed.

Honesty

  • A receipt for every job. receipt.md, receipt.json and a line in share.txt: your request as typed, the
    assumptions, review rounds, full and partial renders, images made for looking, wall time, and tokens and cost when your
    agent's session log is named. Anything unknown says "not reported by this agent"; nothing is estimated. Claude Code
    costs are labelled API-equivalent, because a plan does not pay per video; Codex gives tokens only.
  • showtime qa re-extracts its contact-sheet frames when the video is newer than them (a re-render to the same
    final.mp4 used to show the old frames), and a 1:1 or 4:5 master is no longer an aspect warning for X or LinkedIn.
  • SECURITY.md says how to report a vulnerability privately.

Upgrading from 0.2.0

  • Claude Code: /plugin marketplace update showtime. Other agents: showtime install --agent <name> again, or pull the
    repository. No setup step is needed; showtime job init now checks setup itself.
  • New files appear in your job folders (receipt.md, receipt.json, work/look/) and a line in share.txt between
    receipt markers (delete it if you like).
  • The look history is a file at ~/.showtime/history/looks.json on your machine. showtime history off stops it,
    showtime history clear deletes it.
  • Commands print less when there is no terminal. If you scripted against the old long output, use --verbose or
    SHOWTIME_OUTPUT=full.
  • Launch jobs now warn (brand_missing) until they have a brand kit or a recorded reason.
  • MCP: tool results are capped at 40 lines, and there are new guide and receipt tools; snap takes look: true.
  • The review mode: 0.3.0 runs the full review by default. To keep 0.2.0's lighter behaviour for drafts, run
    showtime config mode lean.
  • The Claude Desktop bundle showtime-0.3.0.mcpb is attached to this release; the npm package
    @faviovazquez/showtime-mcp is 0.3.0.

Known limits

  • Tokens and cost come only from agents that expose a session log we can read (Claude Code and Codex); everything else
    says "not reported by this agent". Through MCP there is no session log.
  • Hosts without a sub-agent tool keep the look composite in the main context; it is one image of about 1.5k tokens, but
    the agent has to open it.
  • showtime reference takes local files, or a direct link to a video file; it does not fetch pages or streaming sites.
  • The phone check and the look history read project files. They catch what can be measured, not whether a video is good.
  • A model reviewer's preference is steadier than its score, but it is still an opinion.
  • adopt cannot make code deterministic that is not: timers and libraries that run their own clock do not follow the
    virtual clock (the check names them). Python scripts run on a copy with a time limit and no network to other machines.
  • The GitHub Action's agent mode is tested only for its plumbing, not with a particular agent.
  • Platforms and agents: same as 0.2.0. Claude Code, Codex, Cursor, Devin and OpenCode are tested; the others should
    work. Windows 10/11 desktop and Windows 11 on Arm are still to run.

Benchmark

Round 4 compared showtime 0.3.0 in lean mode (the default when the round ran) with 0.2.0 in its default mode, plain
Claude Code on Opus 5.5 and, for the launch video, a tool built only for launch videos: 8 tasks, one run each, automatic
checks, an AI judge that must prove it looked at every frame, and a blind vote by me.

  • Blind vote: 0.3.0 lean preferred to 0.2.0 on 4 of 6 tasks (launch, filler cut, HTML report, math) and to plain Claude
    Code on 7 of 8. It lost the data story and the vertical short to 0.2.0, and "make it like this reference" to plain
    Claude Code.
  • The AI judge preferred 0.2.0 on most tasks, for polish: holds, a blurred crossfade, a missing year label. That is why
    the full review is now the default, and why the fixes above were made; they were not re-run in a blind round.
  • Process, lean runs: a median of 4.5 images read into the agent's context, one full render per job, no qa failures,
    a receipt on every job, and no run touched another showtime install.

I'm showtime's author, so treat it as anecdotes, not a result. Every number, limit and loss is in the
benchmark report; the 0.2.0 report is still there, a click away.

The full list of changes is in the changelog.
Install steps per agent: docs/agents.md.