<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Lookbk</title>
    <description>The latest articles on DEV Community by Lookbk (@lookbkdev).</description>
    <link>https://dev.to/lookbkdev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4228804%2F67f47b9c-5539-4506-911c-2ebd202e44ea.png</url>
      <title>DEV Community: Lookbk</title>
      <link>https://dev.to/lookbkdev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/lookbkdev"/>
    <language>en</language>
    <item>
      <title>Make Claude Code render a 6-second title video, not just write the code for one</title>
      <dc:creator>Lookbk</dc:creator>
      <pubDate>Fri, 06 Nov 2026 14:55:32 +0000</pubDate>
      <link>https://dev.to/lookbkdev/make-claude-code-render-a-6-second-title-video-not-just-write-the-code-for-one-3738</link>
      <guid>https://dev.to/lookbkdev/make-claude-code-render-a-6-second-title-video-not-just-write-the-code-for-one-3738</guid>
      <description>&lt;p&gt;Ask a coding agent for "an animated title for our launch" and you usually get a page of animation code that you still have to run, fix and screen-record. This walkthrough uses an agent skill that takes the agent all the way to a finished MP4: three words in, a 1920×1080 kinetic-type video out, rendered on your own machine.&lt;/p&gt;

&lt;p&gt;The skill is &lt;strong&gt;Kinetic Title Drop&lt;/strong&gt;. It is MIT-licensed and free, it never calls an AI model, and it doesn't need an API key.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpf4kzp4c60pf6qy8agek.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpf4kzp4c60pf6qy8agek.gif" alt="Kinetic Title Drop: three words dropping into place on a dark background" width="640" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What it makes
&lt;/h2&gt;

&lt;p&gt;A six-second, type-only film in three beats:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A huge first word opens the frame with a hairline slash through it, then settles into the top left.&lt;/li&gt;
&lt;li&gt;A second word drops in as an outline and fills with your accent colour.&lt;/li&gt;
&lt;li&gt;A payoff line whips in from the right with a motion smear, and an accent bar wipes under it. A small chip and a footer fade in, everything holds, then exits cleanly.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It works for launch openers, release announcements, reel intros and the first seconds of a demo video.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install it
&lt;/h2&gt;

&lt;p&gt;The skill is a folder with a &lt;code&gt;SKILL.md&lt;/code&gt;, a template and a couple of scripts. Any agent that reads &lt;code&gt;SKILL.md&lt;/code&gt; folders can use it. With the &lt;code&gt;skills&lt;/code&gt; CLI (Node.js 22.20 or later):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx skills add lookbkdev/lookbk-skills &lt;span class="nt"&gt;--skill&lt;/span&gt; kinetic-title-drop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It asks which agents to install it for (Claude Code, Codex, Cursor and others) and copies the folder into each one's skills directory. Add &lt;code&gt;-g&lt;/code&gt; to install it for every project.&lt;/p&gt;

&lt;p&gt;In Claude Code you can use the plugin marketplace instead:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/plugin marketplace add lookbkdev/lookbk-skills
/plugin install kinetic-title-drop@lookbk-skills
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You also need FFmpeg on your PATH. The first render downloads a headless Chrome.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ask for the video
&lt;/h2&gt;

&lt;p&gt;In a fresh session, describe the title in plain words:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Make a kinetic title video. Lines: "Ship", "it", "today." Chip: "v2.0 · Out now". Footer: "Release notes · 14 fixes" on the left and our changelog URL on the right. Dark background, orange accent.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The agent picks up the skill from its description and follows the steps in &lt;code&gt;SKILL.md&lt;/code&gt;. You don't have to name it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the agent actually does
&lt;/h2&gt;

&lt;p&gt;This is the part that makes the result reliable. The skill doesn't ask the agent to improvise animation code; it gives it a fixed pipeline with checks at every step.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. It writes a brief.&lt;/strong&gt; The agent copies the template into a new project folder and fills in &lt;code&gt;brief.json&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"line1"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Ship"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"line2"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"it"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"line3"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"today."&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"chip"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"v2.0 · Out now"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"metaLeft"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Release notes · 14 fixes"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"metaRight"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"relay.example/changelog"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"ground"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"#0f1013"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"ink"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"#f5f4ef"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"accent"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"#ff5b2e"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every field has a hard length limit: 10 characters for the first word, 6 for the second, 12 for the payoff, 24 for the chip.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. A script validates and applies it.&lt;/strong&gt; &lt;code&gt;apply-brief.mjs&lt;/code&gt; checks every value against the template's declared variables (type, length, colour format) and lists every problem at once, so the agent fixes the brief in one go instead of guessing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. It checks the layout before rendering.&lt;/strong&gt; The template is an HTML composition rendered by HyperFrames, an open-source HTML-to-video tool, with the motion done in GSAP. Its &lt;code&gt;check&lt;/code&gt; command plays the file in a browser, measures the layout over time and tests contrast:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx &lt;span class="nt"&gt;--yes&lt;/span&gt; hyperframes@0.8.192 check &lt;span class="nt"&gt;--json&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If a colour pair is too close, it reports &lt;code&gt;contrast_aa_failure&lt;/code&gt; with a suggested colour. If a footer runs into the bar, you get &lt;code&gt;text_box_overflow&lt;/code&gt; or &lt;code&gt;content_overlap&lt;/code&gt;. The skill tells the agent to fix the brief, never the template, so a finding can't be silenced by breaking the design.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. It looks before it renders.&lt;/strong&gt; The agent takes four snapshots (the opening frame, the second word landing, the payoff and the held end frame) and inspects them for collisions:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx &lt;span class="nt"&gt;--yes&lt;/span&gt; hyperframes@0.8.192 snapshot &lt;span class="nt"&gt;--at&lt;/span&gt; 0.3,1.6,3.6,5.2 &lt;span class="nt"&gt;-o&lt;/span&gt; snapshots
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;5. It renders the MP4.&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npx &lt;span class="nt"&gt;--yes&lt;/span&gt; hyperframes@0.8.192 render &lt;span class="nt"&gt;--quality&lt;/span&gt; delivery &lt;span class="nt"&gt;-o&lt;/span&gt; renders/title-drop.mp4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The text is measured in the real font and sized to fill the frame, so a short word and a long word land in the same space.&lt;/p&gt;

&lt;h2&gt;
  
  
  Writing copy that reads well
&lt;/h2&gt;

&lt;p&gt;A few tips from the skill's own notes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lines 1 and 2 share the top row, so together they should read as the start of one phrase: "Ship / it", "Meet / the", "Notes / that". Line 3 finishes it.&lt;/li&gt;
&lt;li&gt;Everything is set in capitals. Single words read best; the payoff can be two short words.&lt;/li&gt;
&lt;li&gt;Keep line 1 and line 2 under about 12 characters together, or the top row gets small next to the payoff.&lt;/li&gt;
&lt;li&gt;The footer holds for about two seconds, so keep it scannable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For colours, start from a preset if you don't have brand colours. "Ember" is &lt;code&gt;#0f1013&lt;/code&gt; / &lt;code&gt;#f5f4ef&lt;/code&gt; / &lt;code&gt;#ff5b2e&lt;/code&gt;, and "Fieldnote" is a light paper look: &lt;code&gt;#f1ede4&lt;/code&gt; / &lt;code&gt;#18201c&lt;/code&gt; / &lt;code&gt;#2f6b4f&lt;/code&gt;. The accent needs at least 3:1 contrast against the background, because the second word is drawn in it.&lt;/p&gt;

&lt;h2&gt;
  
  
  If something goes wrong
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;"Chrome is missing" on the first render:&lt;/strong&gt; run &lt;code&gt;npx --yes hyperframes@0.8.192 browser ensure&lt;/code&gt; once.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;The render hangs or the animation is missing:&lt;/strong&gt; the template loads GSAP from &lt;code&gt;cdn.jsdelivr.net&lt;/code&gt;, so that host has to be reachable.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;code&gt;check&lt;/code&gt; keeps failing on overflow:&lt;/strong&gt; shorten the chip or footer. That is almost always the cause.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why this pattern works
&lt;/h2&gt;

&lt;p&gt;The interesting part isn't the animation. It's that the skill turns a fuzzy request ("make a cool title") into a short loop the agent can't skip: fill a constrained brief, validate, measure, look, render. The agent does the tedious part, and the checks catch the mistakes agents usually make with layout and contrast.&lt;/p&gt;

&lt;p&gt;The same repository has seven more free skills built this way: an 8-bit promo video, a slide deck, link-preview images, an architecture diagram, two landing pages and a hero section visitors can drag around. They are at &lt;a href="https://github.com/lookbkdev/lookbk-skills" rel="noopener noreferrer"&gt;github.com/lookbkdev/lookbk-skills&lt;/a&gt;. We build &lt;a href="https://lookbk.dev/?utm_source=devto&amp;amp;utm_medium=article&amp;amp;utm_campaign=kinetic-title-drop" rel="noopener noreferrer"&gt;Lookbk&lt;/a&gt;, where the rest of the catalogue lives.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;This post was drafted with AI assistance and checked step by step against the skill's &lt;code&gt;SKILL.md&lt;/code&gt; and scripts.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>video</category>
    </item>
  </channel>
</rss>
