Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add ne11nn/cantos-plugin --skill scroll-videogit clone --depth 1 https://github.com/ne11nn/cantos-pluginWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/ne11nn/cantos-plugin/scroll-video)<a href="https://agentmods.dev/skills/ne11nn/cantos-plugin/scroll-video"><img src="https://agentmods.dev/badge/skills/ne11nn/cantos-plugin/scroll-video/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/ne11nn/cantos-plugin/scroll-video"><img src="https://agentmods.dev/badge/skills/ne11nn/cantos-plugin/scroll-video.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00040 | $0.03836 |
| Opus 5.5 | $0.00016 | $0.01534 |
| Sonnet 5.5 | $0.00008 | $0.00767 |
| Haiku 4.5 | $0.00004 | $0.00384 |
Grade A, and why
scroll-video scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 478 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Scroll-Driven Video — Foundation
The core mechanism: extract a video into still frames, preload them into memory, and paint the correct frame onto a canvas as the user scrolls. Lenis smooths the scroll; GSAP ScrollTrigger drives the frame index. A circle-wipe reveals the canvas as the hero section scrolls away. Text sections float over the canvas, appearing and disappearing at defined scroll positions with staggered entrance animations.
Step 1: Analyze the Video
ffprobe -v error -select_streams v:0 \
-show_entries stream=width,height,duration,r_frame_rate,nb_frames \
-of csv=p=0 "<VIDEO_PATH>"
Determine resolution, duration, frame rate, total frames. Then decide:
- Target frame count: 150–300 for a smooth scroll experience
- Short (<10s): extract at original fps, cap at ~300
- Medium (10–30s): 10–15fps
- Long (30s+): 5–10fps
- Output resolution: match aspect ratio, cap width at 1920px
Step 2: Extract Frames
mkdir -p frames
ffmpeg -i "<VIDEO_PATH>" \
-vf "fps=<CALCULATED_FPS>,scale=<WIDTH>:-1" \
-c:v libwebp -quality 80 \
"frames/frame_%04d.webp"
Count the output: ls frames/ | wc -l
Step 3: Project Scaffold
project-root/
index.html
css/style.css
js/app.js
frames/frame_0001.webp ...
No bundler. Vanilla HTML/CSS/JS + CDN libraries only.
Step 4: HTML Structure
Minimal required structure — in this order:
<!-- 1. Hero: .hero-standalone (100vh, solid bg) -->
<!-- 2. Canvas: .canvas-wrap > canvas#canvas (fixed, full viewport) -->
<!-- 3. Scroll container: #scroll-container (800vh+) containing text sections -->
<section class="hero-standalone">
<h1 class="hero-heading">Your Headline</h1>
</section>
<div class="canvas-wrap">
<canvas id="canvas"></canvas>
</div>
<div id="scroll-container">
<!-- Text section: appears at 20% scroll, leaves at 38% -->
<!-- data-enter / data-leave are percentages of total scroll progress -->
<!-- data-animation picks the entrance type (see 6e) -->
<section class="scroll-section"
data-enter="20" data-leave="38" data-animation="slide-left">
<div class="section-inner">
<span class="section-label">Label / category</span>
<h2 class="section-heading">Your headline here</h2>
<p class="section-body">Supporting text here.</p>
</div>
</section>
<!-- Add more sections — stagger their enter/leave ranges so they don't overlap -->
<section class="scroll-section"
data-enter="42" data-leave="60" data-animation="fade-up">
<div class="section-inner">
<span class="section-label">Another label</span>
<h2 class="section-heading">Second point</h2>
<p class="section-body">More detail here.</p>
</div>
</section>
<!-- Final section: data-persist keeps it visible at end of scroll -->
<section class="scroll-section"
data-enter="75" data-leave="95" data-animation="scale-up" data-persist="true">
<div class="section-inner">
<h2 class="section-heading">Closing statement or CTA</h2>
</div>
</section>
</div>
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 478 lines · 40 tokens per session scan A 61e9a51ccacf
scroll-video is a skill published in the GitHub repository ne11nn/cantos-plugin (1 stars, last pushed today), licensed MIT. It adds 40 tokens to every session and 3,836 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
stream-chain
Stream-JSON chaining for multi-agent pipelines, data transformation, and sequential workflows.
run
Run the agents-concerto multi-agent development pipeline for a task — classify by complexity, implement in isolated worktrees (TDD + Tidy First), review under a two-party boundary, and stop at open PRs for human merge. Invoke explicitly with a task description; a weak or empty description is shaped interactively first…
setup
Bootstrap agents-concerto in the current project by interviewing the user for every configurable option — target repos (with per-repo PR host), tasksource, base branch, commit convention, and fix-cycle cap — then writing a filled .agent-workspace/config.md. Detects sensible defaults and asks for confirmation rather…
shape
Turn a rough idea into a well-formed task the pipeline can run — interrogate the ambiguity, derive testable acceptance criteria, flag contradictions, and write .agent-workspace/feature-request.md in the exact shape /run consumes. The upstream step before /agents-concerto:run. Invoke explicitly with a rough idea.
foundry-hosted-agent-validation
Step-by-step process for validating a Python Foundry hosted agent sample (under python/samples/04-hosting/foundry-hosted-agents/) end to end — running it locally (native runtime and azd ai agent run) and after deploying it to an Azure AI Foundry project with azd. Use this when asked to validate a hosted agent sample.
python-feature-lifecycle
Guidance for package and feature lifecycle in the Agent Framework Python codebase, including stage meanings, feature-stage decorators, feature enums, and how to move APIs from one stage to the next.