<!doctype html>
<html lang="en" data-world="undertow" data-theme="dark">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover" />
    <title>Skill: enkindle · SoulStack docs</title>
    <meta name="description" content="Make a wild, beat-synced hype edit (a meme-energy &quot;speed is life&quot; style video) about a project, product or person, set to a song from YouTube. The agent fetches the song and its credits, splits it into stems, measures every kick, drop, break and sung word, maps the project's story onto the song's sections, and renders a 1080p wide and a 1080x1920 vertical cut in Rust with fframes and Skia shaders. Every bass hit moves something; captions land with the voice; text is written on, slammed, scrambled and exploded; features fly out of a laptop; screenshots cut on every downbeat; numbers count up on a receipt. Use when the user asks for a hype edit, a meme edit, a phonk/edit-style video, a &quot;fun edit to show friends&quot;, or a beat-synced promo of their project." />
    <meta property="og:type" content="website" />
    <meta property="og:site_name" content="SoulStack" />
    <meta property="og:title" content="Skill: enkindle · SoulStack docs" />
    <meta property="og:description" content="Make a wild, beat-synced hype edit (a meme-energy &quot;speed is life&quot; style video) about a project, product or person, set to a song from YouTube. The agent fetches the song and its credits, splits it into stems, measures every kick, drop, break and sung word, maps the project's story onto the song's sections, and renders a 1080p wide and a 1080x1920 vertical cut in Rust with fframes and Skia shaders. Every bass hit moves something; captions land with the voice; text is written on, slammed, scrambled and exploded; features fly out of a laptop; screenshots cut on every downbeat; numbers count up on a receipt. Use when the user asks for a hype edit, a meme edit, a phonk/edit-style video, a &quot;fun edit to show friends&quot;, or a beat-synced promo of their project." />
    <meta property="og:url" content="https://soulstack.proxysoul.com/docs/skills/enkindle" />
    <meta property="og:image" content="https://soulstack.proxysoul.com/og/docs.png" />
    <meta property="og:image:width" content="1200" />
    <meta property="og:image:height" content="630" />
    <meta name="twitter:card" content="summary_large_image" />
    <meta name="twitter:image" content="https://soulstack.proxysoul.com/og/docs.png" />
    <link rel="icon" href="/brand/logo-undertow.webp" />
    <link rel="alternate" type="text/markdown" href="/index.md" title="This page as Markdown" />
    <link rel="help" href="/llms.txt" title="Docs for agents" />
    <link rel="preload" href="/fonts/recursive-living.woff2" as="font" type="font/woff2" crossorigin />
    <script>
      (() => {
        const q = new URLSearchParams(location.search);
        const worlds = ["empryo", "soul", "coffee", "water", "crimson", "undertow"];
        let saved = null;
        try {
          saved = JSON.parse(localStorage.getItem("soulstack-world") || "null");
        } catch (err) {
          console.warn("soulstack: ignoring saved world", err);
        }
        const world = q.get("world") || saved?.world || worlds[Math.floor(Math.random() * worlds.length)];
        const mode = q.get("mode") || saved?.mode || (matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark");
        const r = document.documentElement;
        r.dataset.world = worlds.includes(world) ? world : "undertow";
        r.dataset.theme = mode === "light" ? "light" : "dark";
        r.dataset.motion = q.get("motion") === "still" || matchMedia("(prefers-reduced-motion: reduce)").matches ? "still" : "live";
        const icon = document.querySelector("link[rel=icon]");
        if (icon) icon.href = "/brand/" + ({ empryo: "logo-mark", soul: "logo-proxysoul" }[r.dataset.world] || "logo-" + r.dataset.world) + ".webp";
      })();
    </script>
    <script type="module" crossorigin src="/assets/index-Br3ApnuQ.js"></script>
    <link rel="stylesheet" crossorigin href="/assets/index-HTfMgXpx.css">
  </head>
  <body>
    <div id="app"></div>
  </body>
</html>
