Agent skill

Cinematic Scroll Storytelling

by nirholas in nirholas/three.ws

Create cinematic scroll-driven landing pages with Lenis smooth scrolling, GSAP ScrollTrigger, scroll-linked progression, staggered text reveals, sticky card stacks, parallax backgrounds…

Apache-2.0Auto-check passedFrontend & Design

Install Cinematic Scroll Storytelling

skills CLI
$ npx skills add nirholas/three.ws --skill cinematic-scroll-storytelling -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install nirholas/three.ws cinematic-scroll-storytelling --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/nirholas/three.ws.git skills-src && mkdir -p .claude/skills && cp -r skills-src/third_party/designcode-agent-skills/agent-skills/web-design/cinematic-scroll-storytelling .claude/skills/cinematic-scroll-storytelling && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
cinematic-scroll-storytelling
GitHub stars
229
Used in
1 other repo
Token cost
~3k tokens
SKILL.md length
579 words
Files
5
Skills in repo
92
Repo updated
First seen
Licence
Apache-2.0

At a glance

Create cinematic scroll-driven landing pages with Lenis smooth scrolling, GSAP ScrollTrigger, scroll-linked progression, staggered text reveals, sticky card stacks, parallax backgrounds…

  • Works in 7 steps: Preloader: black screen, progress bar,… → Hero: image parallax, masked headline… → Intro: word-by-word kinetic typography. → …
  • Building premium editorial scroll experiences
  • SKILL.md covers Use When, Effect Vocabulary, Target Feel and Core Stack, plus 12 more sections
  • Calls npm

What it does

Cinematic Scroll Storytelling is an agent skill from nirholas/three.ws. Create cinematic scroll-driven landing pages with Lenis smooth scrolling, GSAP ScrollTrigger, scroll-linked progression, staggered text reveals, sticky card stacks, parallax backgrounds, scroll-scrubbed transitions, footer reveals, and immersive preloaders. Use when analyzing or building premium editorial scroll experiences, sticky project stacks, kinetic typography, or section-by-section storytelling.

Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files (for example `REFERENCES.md` and `demo/PROMPT.md`).

It sits in Frontend & Design, covering Storytelling, Landing pages and Web animation and motion. It works with GSAP. The repository describes itself as: Open-source platform for 3D AI agents. Turn text or a photo into a rigged, animated GLB avatar, give it an LLM brain, memory and a wallet, and embed it anywhere with one web… The licence is Apache-2.0.

When your agent uses it

  • Building premium editorial scroll experiences
  • Sticky project stacks
  • Kinetic typography
  • Section-by-section storytelling

Example prompts

  • “/cinematic-scroll-storytelling”

Requirements

  • Node.js

Workflow steps

7 steps, taken from the first numbered list in SKILL.md.

  1. Preloader: black screen, progress bar, brand/title, intro fade.
  2. Hero: image parallax, masked headline reveal, subtle scroll cue.
  3. Intro: word-by-word kinetic typography.
  4. Story sections: scroll-triggered fade-up, blur-in, and clip reveals.
  5. Recent Projects: sticky card stack with scale and layered depth.
  6. Gallery or proof: scroll-scrubbed horizontal or progressive reveals.
  7. Footer: parallax reveal or slow upward handoff.

What it can do on your machine

Read from SKILL.md and the folder at commit 66624fb. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Cinematic Scroll Storytelling loads about 3k tokens when it runs. Until then it costs about 109 tokens; SKILL.md has 579 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~109
When it runs · the whole SKILL.md, loaded when a task matches
~3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from nirholas/three.ws at commit 66624fb, republished under its Apache-2.0 licence (© nirholas). 579 words, ~2,996 tokens.

Download SKILL.mdSave it as .claude/skills/cinematic-scroll-storytelling/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.
name
cinematic-scroll-storytelling
description
Create cinematic scroll-driven landing pages with Lenis smooth scrolling, GSAP ScrollTrigger, scroll-linked progression, staggered text reveals, sticky card stacks, parallax backgrounds, scroll-scrubbed transitions, footer reveals, and immersive preloaders. Use when analyzing or building premium editorial scroll experiences, sticky project stacks, kinetic typography, or section-by-section storytelling.

Cinematic Scroll Storytelling

Use When

  • A page should feel like a premium editorial story that unfolds as the user scrolls.
  • The user mentions scroll-driven storytelling, scroll-linked animation, sticky card stacks, parallax, split text, preloader, or cinematic progression.
  • A portfolio, studio, product, or landing page needs section-by-section reveals with layered depth.
  • The implementation can use GSAP, ScrollTrigger, and Lenis.

Effect Vocabulary

  • Scroll-driven storytelling: sections reveal as a sequence while scrolling.
  • Scroll-linked animation: progress is tied directly to scroll with scrub.
  • Scroll-triggered motion: animation starts when a section enters the viewport.
  • Staggered reveal: words, lines, cards, or elements enter with small delays.
  • Progressive reveal: opacity, scale, blur, clip, or position changes over scroll progress.
  • Sticky card stack: sticky cards layer, scale, and recede as the next card arrives.
  • Parallax scrolling: background and foreground layers move at different speeds.
  • Scroll scrubbing: animation follows the scrollbar through scrub: true or scrub: 1.
  • Kinetic typography: masked split-text movement, usually word-by-word or line-by-line.
  • Preloader: opening loading screen, progress bar, and intro transition.

Target Feel

  • Luxury editorial website.
  • High-end creative studio portfolio.
  • Apple-level motion polish.
  • Modern Awwwards interaction language.
  • Immersive cinematic landing page.

Avoid:

  • Bounce, elastic, or springy motion.
  • Aggressive scale jumps.
  • Flashy gaming-style effects.
  • Too many simultaneous scroll effects.
  • Scroll hijacking that makes the page hard to read.

Core Stack

bash
npm i gsap lenis
js
import Lenis from "lenis";
import "lenis/dist/lenis.css";
import { gsap } from "gsap";
import { ScrollTrigger } from "gsap/ScrollTrigger";

gsap.registerPlugin(ScrollTrigger);

const reduceMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches;

if (!reduceMotion) {
  const lenis = new Lenis({
    lerp: 0.08,
    smoothWheel: true,
    wheelMultiplier: 0.9,
  });

  lenis.on("scroll", ScrollTrigger.update);

  gsap.ticker.add((time) => {
    lenis.raf(time * 1000);
  });

  gsap.ticker.lagSmoothing(0);
}

window.addEventListener("load", () => ScrollTrigger.refresh());

Motion Tokens

  • Enter ease: power3.out or power4.out.
  • Scrubbed scenes: ease: "none" with scrub: 0.8 to 1.4.
  • Text reveal duration: 0.8s to 1.1s.
  • Card reveal duration: 0.9s to 1.2s.
  • Word stagger: 0.035s to 0.07s.
  • Line stagger: 0.08s to 0.14s.
  • Card stagger: 0.06s to 0.1s.
  • Reveal offset: y: 24 to 48.
  • Blur: 4px to 10px, then 0px.
  • Sticky card scale depth: 1 down to 0.92.

Page Anatomy

  1. Preloader: black screen, progress bar, brand/title, intro fade.
  2. Hero: image parallax, masked headline reveal, subtle scroll cue.
  3. Intro: word-by-word kinetic typography.
  4. Story sections: scroll-triggered fade-up, blur-in, and clip reveals.
  5. Recent Projects: sticky card stack with scale and layered depth.
  6. Gallery or proof: scroll-scrubbed horizontal or progressive reveals.
  7. Footer: parallax reveal or slow upward handoff.

Markup Pattern

html
<div class="preloader" data-preloader>
  <div class="preloader__bar" data-preloader-bar></div>
</div>

<main>
  <section class="hero" data-parallax-section>
    <img data-parallax-layer data-speed="-0.18" src="/hero.jpg" alt="">
    <h1 data-split-reveal>Design that unfolds with cinematic restraint.</h1>
  </section>

  <section data-story-section>
    <p data-split-reveal="words">Every block arrives with quiet intent.</p>
  </section>

  <section class="project-stack" data-sticky-stack>
    <article data-stack-card>Project One</article>
    <article data-stack-card>Project Two</article>
    <article data-stack-card>Project Three</article>
  </section>

  <footer data-footer-parallax>...</footer>
</main>
Show full SKILL.md (237 more words)Show less

Preloader Sequence

Use a preloader to set the cinematic tone, then hand off into the hero reveal.

js
function initPreloader() {
  const loader = document.querySelector("[data-preloader]");
  const bar = document.querySelector("[data-preloader-bar]");
  if (!loader) return Promise.resolve();

  if (reduceMotion) {
    loader.remove();
    return Promise.resolve();
  }

  return new Promise((resolve) => {
    const tl = gsap.timeline({
      defaults: { ease: "power3.out" },
      onComplete: () => {
        loader.remove();
        resolve();
      },
    });

    tl.fromTo(bar, { scaleX: 0, transformOrigin: "left" }, { scaleX: 1, duration: 1.1 })
      .to(loader, { yPercent: -100, duration: 0.9, ease: "power4.inOut" }, "+=0.15");
  });
}

Split Text Reveal

Use masked overflow containers. Avoid splitting text that contains links or meaningful inline markup.

js
function splitWords(element) {
  if (element.dataset.splitReady === "true") return;

  const text = element.textContent || "";
  const parts = text.split(/(\s+)/);
  element.textContent = "";
  element.setAttribute("aria-label", text.trim());

  parts.forEach((part) => {
    if (!part.trim()) {
      element.appendChild(document.createTextNode(part));
      return;
    }

    const mask = document.createElement("span");
    const word = document.createElement("span");
    mask.className = "split-word-mask";
    word.className = "split-word";
    word.textContent = part;
    mask.setAttribute("aria-hidden", "true");
    mask.appendChild(word);
    element.appendChild(mask);
  });

  element.dataset.splitReady = "true";
}

function initSplitReveals() {
  if (reduceMotion) {
    gsap.set("[data-split-reveal]", { autoAlpha: 1 });
    return;
  }

  gsap.utils.toArray("[data-split-reveal]").forEach((element) => {
    splitWords(element);
    const words = element.querySelectorAll(".split-word");

    gsap.fromTo(
      words,
      { yPercent: 110, autoAlpha: 0, filter: "blur(8px)" },
      {
        yPercent: 0,
        autoAlpha: 1,
        filter: "blur(0px)",
        duration: 0.95,
        ease: "power4.out",
        stagger: 0.05,
        scrollTrigger: {
          trigger: element,
          start: "top 82%",
          once: true,
        },
      }
    );
  });
}
css
.split-word-mask {
  display: inline-block;
  overflow: hidden;
  vertical-align: top;
}

.split-word {
  display: inline-block;
  will-change: transform, opacity, filter;
}

Scroll-Triggered Reveals

Use these for normal sections. They should play once and feel composed, not twitchy.

js
function initSectionReveals() {
  if (reduceMotion) {
    gsap.set("[data-story-section], [data-reveal-item]", { autoAlpha: 1, clearProps: "all" });
    return;
  }

  gsap.utils.toArray("[data-story-section]").forEach((section) => {
    const items = section.querySelectorAll("[data-reveal-item]");
    const targets = items.length ? items : section.children;

    gsap.fromTo(
      targets,
      { y: 36, autoAlpha: 0, filter: "blur(8px)" },
      {
        y: 0,
        autoAlpha: 1,
        filter: "blur(0px)",
        duration: 1,
        ease: "power4.out",
        stagger: 0.08,
        scrollTrigger: {
          trigger: section,
          start: "top 82%",
          once: true,
        },
      }
    );
  });
}

Scroll-Linked Progression

Use scrubbed timelines for cinematic progression. Keep scrubbed animation linear and let the scroll position do the timing.

js
function initProgressionScenes() {
  if (reduceMotion) return;

  gsap.utils.toArray("[data-progress-scene]").forEach((scene) => {
    const media = scene.querySelector("[data-progress-media]");
    const copy = scene.querySelectorAll("[data-progress-copy]");

    gsap.timeline({
      scrollTrigger: {
        trigger: scene,
        start: "top top",
        end: "+=140%",
        scrub: 1.1,
        pin: true,
        anticipatePin: 1,
      },
    })
      .fromTo(media, { scale: 1.08 }, { scale: 1, ease: "none" })
      .fromTo(copy, { autoAlpha: 0, y: 40 }, { autoAlpha: 1, y: 0, stagger: 0.15, ease: "none" }, 0.15);
  });
}

Sticky Card Stack

Use position: sticky for layout, and ScrollTrigger for layered scale/depth. Earlier cards should recede as later cards arrive.

css
[data-sticky-stack] {
  position: relative;
}

[data-stack-card] {
  position: sticky;
  top: 12vh;
  transform-origin: center top;
  will-change: transform, opacity;
}
js
function initStickyCardStack() {
  if (reduceMotion) return;

  gsap.utils.toArray("[data-sticky-stack]").forEach((stack) => {
    const cards = gsap.utils.toArray(stack.querySelectorAll("[data-stack-card]"));

    cards.forEach((card, index) => {
      const nextCard = cards[index + 1];
      if (!nextCard) return;

      gsap.to(card, {
        scale: 0.92 + index * 0.015,
        autoAlpha: 0.72,
        y: -24,
        ease: "none",
        scrollTrigger: {
          trigger: nextCard,
          start: "top 78%",
          end: "top 24%",
          scrub: true,
          invalidateOnRefresh: true,
        },
      });
    });
  });
}

Parallax

Use parallax for hero images, background layers, and footer reveals. Keep distance small.

js
function initParallax() {
  if (reduceMotion) return;

  gsap.utils.toArray("[data-parallax-layer]").forEach((layer) => {
    const speed = Number(layer.dataset.speed || -0.16);
    const section = layer.closest("[data-parallax-section]") || layer;

    gsap.to(layer, {
      y: () => window.innerHeight * speed,
      ease: "none",
      scrollTrigger: {
        trigger: section,
        start: "top bottom",
        end: "bottom top",
        scrub: 1,
        invalidateOnRefresh: true,
      },
    });
  });
}

Footer parallax reveal:

js
function initFooterReveal() {
  if (reduceMotion) return;

  const footer = document.querySelector("[data-footer-parallax]");
  if (!footer) return;

  gsap.fromTo(
    footer,
    { yPercent: -12, autoAlpha: 0.85 },
    {
      yPercent: 0,
      autoAlpha: 1,
      ease: "none",
      scrollTrigger: {
        trigger: footer,
        start: "top bottom",
        end: "top 45%",
        scrub: 1,
      },
    }
  );
}

Build Order

  1. Build the static page first.
  2. Add preloader and hero entrance.
  3. Add split text reveals.
  4. Add section-by-section reveals.
  5. Add sticky card stack progression.
  6. Add parallax layers.
  7. Add scrubbed pinned scenes only where the story needs them.
  8. Add reduced-motion and touch fallbacks.
  9. Run browser QA across desktop and mobile.

Prompt Template

txt
Create a cinematic scroll-driven landing page with smooth Lenis scrolling, GSAP ScrollTrigger animations, staggered text reveals, sticky card stack progression, parallax backgrounds, scroll-scrubbed transitions, section-by-section storytelling, and an immersive preloader animation. Use layered depth, scaling transitions, progressive opacity changes, and smooth viewport-triggered motion for a premium editorial experience.

QA Checklist

  • Content is readable with JavaScript disabled.
  • Reduced-motion users see static content and no smooth-scroll layer.
  • Scroll-triggered reveals play once.
  • Scroll-linked scenes use scrub intentionally.
  • Sticky cards do not overlap the footer or trap the page.
  • Parallax movement stays subtle and does not harm readability.
  • Preloader exits reliably even if images load slowly.
  • ScrollTrigger.refresh() runs after images/fonts/layout shifts.
  • Mobile has simplified pinning or no pinning if performance drops.

© nirholas, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 4 other files in third_party/designcode-agent-skills/agent-skills/web-design/cinematic-scroll-storytelling of nirholas/three.ws.

  • SKILL.md
  • REFERENCES.md
  • demo/PROMPT.md
  • demo/index.html
  • demo/preview.jpg

Open the folder on GitHubat commit 66624fb

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in nirholas/three.ws, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Cinematic Scroll Storytelling next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Cinematic Scroll Storytelling compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Cinematic Scroll Storytelling this skillnirholas/three.ws2291 repos~3kAutomated safety check: PassApache-2.0
Auteuragiwhitelist/auteur1k—~5kAutomated safety check: PassMIT
Scroll Experiencedavila7/claude-code-templates33k3 repos~1.5kAutomated safety check: PassMIT
Scroll ExperiencebenjaminasterA/antigravity-awesome-skills3771 repos~1.5kAutomated safety check: PassMIT
Gsapboraoztunc/skills3985 repos~1.9kAutomated safety check: PassApache-2.0
Motion DesignLottieFiles/motion-design-skill2.1k—~3.1kAutomated safety check: PassMIT

Similar skills

  • Auteur

    agiwhitelist/auteur

    Design and build complete web experiences from scratch — award-level product and marketing pages, cinematic scroll-directed sites where the page is directed like a film, and multi-screen products…

    1k GitHub stars~5k tokensUpdated 2 mo ago
    Frontend & DesignAuto-check passed
  • Scroll Experience

    davila7/claude-code-templates

    Expert in building immersive scroll-driven experiences - parallax storytelling, scroll animations, interactive narratives, and cinematic web experiences.

    33k GitHub starsUsed in 3 repos~1.5k tokens
    Frontend & DesignAuto-check passed
  • Scroll Experience

    benjaminasterA/antigravity-awesome-skills

    Expert in building immersive scroll-driven experiences - parallax storytelling, scroll animations, interactive narratives, and cinematic web experiences.

    377 GitHub starsUsed in 1 repo~1.5k tokens
    Frontend & DesignAuto-check passed
  • Gsap

    boraoztunc/skills

    GSAP animation reference for HyperFrames. An agent skill from boraoztunc/skills.

    398 GitHub starsUsed in 5 repos~1.9k tokens
    Frontend & DesignAuto-check passed
  • Motion Design

    LottieFiles/motion-design-skill

    Applies motion design principles to create emotionally-driven, technically sound animations and transitions.

    2.1k GitHub stars~3.1k tokensUpdated 4 mo ago
    Frontend & DesignAuto-check passed
  • Animate Text

    pixel-point/animate-text

    Curated text animation catalog with exact JSON specs for headings, labels, counters, and text swaps.

    149 GitHub starsUsed in 1 repo~1.6k tokens
    Frontend & DesignAuto-check passed

More from nirholas/three.ws

All 92 skills in this repo
  • Add Shader Cursor Trail

    nirholas/three.ws

    Add the Shaders WebGPU mouse effect used for the Tidal Commons hero: a white twinkling halftone cursor trail driven by ChromaFlow, masked through a DotGrid, finished with chromatic ripples and film…

    230 GitHub starsUsed in 1 repo~760 tokens
    Auto-check passed
  • Publish Project To GitHub

    nirholas/three.ws

    Package a finished local project into an intentional GitHub repository, create a strong README and visual preview, push it safely, configure a public GitHub Pages URL when the project is compatible…

    230 GitHub starsUsed in 1 repo~2.2k tokens
    Auto-check: notes
  • Audit a website or digital experience against its supplied source references for originality and plagiarism risk.

    230 GitHub starsUsed in 1 repo~1.8k tokens
    Auto-check passed
  • Turn a completed daily UI inspiration capture into exactly five original landing-page builds, one per separate Codex task, using Sites.

    230 GitHub starsUsed in 1 repo~1.9k tokens
    Auto-check passed
  • Write Like Meng On X

    nirholas/three.ws

    Write, rewrite, review, or continuously refine X/Twitter posts in Meng To's current voice using his deduplicated authored-post corpus, personal and product context, shared resources, and Content…

    230 GitHub starsUsed in 1 repo~2k tokens
    Auto-check passed
  • Browser Video Recording

    nirholas/three.ws

    Create polished 60 fps 4:3 4K browser screen-recording style videos from Codex in-app browser captures, with browser-only crop, natural macOS cursor styling, deliberate click choreography…

    230 GitHub starsUsed in 1 repo~1.5k tokens
    Auto-check passed

Works with

Questions about Cinematic Scroll Storytelling

What does Cinematic Scroll Storytelling do?

Create cinematic scroll-driven landing pages with Lenis smooth scrolling, GSAP ScrollTrigger, scroll-linked progression, staggered text reveals, sticky card stacks, parallax backgrounds…. ws. Create cinematic scroll-driven landing pages with Lenis smooth scrolling, GSAP ScrollTrigger, scroll-linked progression, staggered text reveals, sticky card stacks, parallax backgrounds, scroll-scrubbed transitions, footer reveals, and immersive preloaders.

When should I use Cinematic Scroll Storytelling?

Cinematic Scroll Storytelling fits situations like: building premium editorial scroll experiences; sticky project stacks; kinetic typography; section-by-section storytelling.

How do I install Cinematic Scroll Storytelling in Claude Code?

Run `npx skills add nirholas/three.ws --skill cinematic-scroll-storytelling -a claude-code`. Or copy the skill folder (third_party/designcode-agent-skills/agent-skills/web-design/cinematic-scroll-storytelling in nirholas/three.ws) into .claude/skills/cinematic-scroll-storytelling in your project. Claude Code loads it when a task matches its description.

How do I install Cinematic Scroll Storytelling in Codex?

Run `npx skills add nirholas/three.ws --skill cinematic-scroll-storytelling -a codex`. Or copy the skill folder (third_party/designcode-agent-skills/agent-skills/web-design/cinematic-scroll-storytelling in nirholas/three.ws) into .agents/skills/cinematic-scroll-storytelling in your project. Codex loads it when a task matches its description.

Can I use Cinematic Scroll Storytelling in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nirholas/three.ws --skill cinematic-scroll-storytelling -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cinematic-scroll-storytelling, .gemini/skills/cinematic-scroll-storytelling, .github/skills/cinematic-scroll-storytelling and .opencode/skills/cinematic-scroll-storytelling in your project.

What does Cinematic Scroll Storytelling need to run?

Going by SKILL.md and its folder, Cinematic Scroll Storytelling needs the command-line tools its instructions call (npm). Our summary lists: Node.js.

Does Cinematic Scroll Storytelling access the network?

SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Cinematic Scroll Storytelling safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Cinematic Scroll Storytelling use?

Cinematic Scroll Storytelling is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Cinematic Scroll Storytelling use?

About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Cinematic Scroll Storytelling?

Skills that share tags, products or a category with Cinematic Scroll Storytelling: Auteur (agiwhitelist/auteur, 1k stars), Scroll Experience (davila7/claude-code-templates, 33k stars), Scroll Experience (benjaminasterA/antigravity-awesome-skills, 377 stars) and Gsap (boraoztunc/skills, 398 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Cinematic Scroll Storytelling?

nirholas (a GitHub user) maintains it in nirholas/three.ws, which has 229 GitHub stars. The repository holds 92 skills in this directory. The repository was last updated on October 10, 2026.

Source: nirholas/three.ws on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.