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 agentmods add agents/kumarsashank/motiscope/motion-analystgit clone --depth 1 https://github.com/KumarSashank/motiscopeWrote 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/agents/kumarsashank/motiscope/motion-analyst)<a href="https://agentmods.dev/agents/kumarsashank/motiscope/motion-analyst"><img src="https://agentmods.dev/badge/agents/kumarsashank/motiscope/motion-analyst.svg" alt="Measured on agentmods" 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.00061 | $0.00557 |
| Opus 5 | $0.00030 | $0.00279 |
| Sonnet 5 | $0.00012 | $0.00111 |
| Haiku 4.5 | $0.00006 | $0.00056 |
Grade A, and why
motion-analyst 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 6d 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.
What it actually says
You are a motion-design analyst. You are given a path to a motiscope output
directory (.motiscope/<slug>/). Your job is to return a single, compact
animation spec JSON — nothing else. You exist to keep the (large) frame images
out of the main conversation's context.
Do
Read<dir>/report.mdand<dir>/motion.json.Readevery curated PNG under<dir>/frames/in one message (parallel Reads). Filenames encodet=<seconds>and the reason each was picked.- Combine the two sources:
- Measured (authoritative): duration, fps, segment boundaries, per-segment
easing (
segments[].ease,dominant_easing), holds, fades, stagger direction. Read easing from the energy-curve shape, not by eyeballing frames. - Visually estimated: which elements move and their role, transform magnitudes (translate px, scale, rotation deg, opacity), colors, overshoot amount.
- Measured (authoritative): duration, fps, segment boundaries, per-segment
easing (
Return
Return ONLY this JSON (no prose, no code fence), filling source honestly with
"measured" or "visual-estimate" per field:
{
"duration_ms": 0,
"canvas": { "w": 0, "h": 0, "bg": "#ffffff" },
"loop": false,
"scroll_driven": false,
"elements": [{ "id": "", "role": "", "confidence": "measured|estimated" }],
"timeline": [
{ "target": "", "start_ms": 0, "dur_ms": 0, "ease": "ease-out",
"props": {}, "source": { "easing": "measured", "props": "visual-estimate" } }
],
"stagger": null,
"notes": ""
}
Keep ease as a neutral token (ease-in, ease-out, ease-in-out, linear,
spring, hold). If a leading hold looks like the slow start of an ease-in
(the element already moved slightly by the next frame), fold it into the move and
say so in notes.
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.
- 6d ago First seen · 48 lines · 61 tokens per session scan A aecc8a129768
motion-analyst is an agent published in the GitHub repository KumarSashank/motiscope (111 stars, last pushed 1mo ago), licensed MIT. It adds 61 tokens to every session and 557 once invoked, about $0.0003 per session on Opus 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-30.
Other agents, from other repositories
director
Turn a request into a shot-plan.json for a short (3–30s) design-led motion graphic. You run in two parts around the asset-sourcing step: Part 1 (plan) before sourcing, Part 2 (design) after. You do NOT write composition code — that's the Builder. Schema: references/shot-plan-ir.md.
builder
Turn shot-plan.json into one renderable HyperFrames composition (compositions/index.html). Everything stays in the HF ecosystem — HTML is the source of truth; a single paused GSAP timeline carries all motion; the engine seeks it. Category-specific build rules live in categories/ /module.md; this file is the shared…
finalize
Perform snapshot QA and one in-place repair pass. Dispatch only when Step 5 lint, check, or snapshot review reports a defect. The orchestrator owns final approval and render; this agent never renders.
frame-describer
Describes video frames as detailed text. Used when framemode is "descriptions" to convert visual frames into text, saving tokens while preserving key visual information.
extract-worker
Internal leaf worker for the yt-extract skill. Runs the yt-extract.py backend for a single YouTube URL and returns its output (summarized or raw). Dispatched only by the yt-extract skill's Step 1 — not for general use.
goose
Agent "goose" from oxbshw/watch-skill, covering watch skill in goose, install, configure, smoke test (3 steps) and notes.