npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

yumoframe

v0.1.3

Published

Remotion-based CLI for agent-authored kinetic vertical videos from text or media

Readme

YumoFrame

English | 中文

npm version npm downloads skills.sh

YumoFrame 是基于 Remotion 的 CLI,用结构化项目数据制作可复用的竖屏视频。

内置模板包括 rotating-flow(旋转画布动态文字)、center-line(中央逐行文字)和 chat-bubbles(参与者与文字聊天气泡);center-line 提供 minimal-darkecho 两个 Preset。

日常用法是:装好工具 → 把需求交给 Agent → 在关键节点确认与修改一下 → 预览满意后再渲染。断行、高亮、分镜交给 Agent;不要手写 project.json

安装

npm install -g yumoframe
yumoframe --version
yumoframe doctor

# 安装 Skill
npx skills add yuchenii/YumoFrame --skill yumoframe

doctor 会检查 Nodeuvffmpeg、内置模板和 ASR/TTS processor。纯文字可以不装 uv / ffmpeg;本地 Qwen3-TTS 需要 uv,音视频转写需要 uv 和 ffmpeg。命令说明见 yumoframe --help

怎么用

在项目目录里直接说目标即可,例如:

  • 「用这段文案做一条 rotating-flow 竖屏视频:……」
  • 「把这段短句做成 center-line 的 echo 效果。」
  • 「把这段对话做成 chat-bubbles 聊天视频。」
  • 「用 assets/source.mp3 做视频,保留原声。」
  • 「把 text.txt 合成语音后再做一条有声视频。」

创建项目时选择数据结构对应的 Template;只有 center-line 还可选择同一数据结构下的视觉 Preset:

yumoframe init ./rotating-demo --template rotating-flow
yumoframe init ./center-demo --template center-line --preset echo
yumoframe init ./chat-demo --template chat-bubbles

文本、语音合成和音视频共用同一条创作链路,差别主要是声轨从哪来:

| 输入 | 流程概要 | 建议确认的节点 | | --- | --- | --- | | 文本 | init → 按 Template Guide 写作者数据(需要时含时间/持续时间)→ resolvevalidatestudiorender | 作者数据、studio 预览;同意后再 render | | 文本转语音 | init → 写 text.txtsynthesize(出声轨**+时间**;无时间戳时才用 transcribe 兜底)→ 校对 → sync → 写 lines/storyboard(不要编时钟)→ resolve → … | 合成声轨试听、project.md、studio 预览 | | 音视频 | init → 放媒体并 transcribe → 校对 transcript.mdsync → 写 lines/storyboard(不要编时钟)→ resolvevalidatestudiorender | 转写校对、project.md、studio 预览;同意后再 render |

synthesize(别名 tts)用 processors.tts 把文本合成为声轨(默认写到 paths.media)。时间只来自 transcript、不凭空编;TTS 场景尽量不走 ASR 回环,详见 语音合成指南

Skill 会要求逐步停顿确认,不会擅自连跑 validate → studio → render。

主要文件

| 文件 | 说明 | | --- | --- | | transcript.md | 转写校对稿。只改 校对:,保留时钟和 原文:;确认后执行 yumoframe sync transcript | | project.md | rotating-flow 的可读分镜预览;其他 Template 不强制使用 | | lines.json | rotating-flow 的扁平断行中间态;其他 Template 不使用 | | storyboard.json | Template 自己的作者契约:scenes[]lines[]participants[] + messages[];有 transcript 时不要编时钟 | | transcript.json / project.json | CLI 生成的机器文件;project.json 不要手改 |

需要时也可以自己跑:

yumoframe validate
yumoframe studio   # 别名:yumoframe dev
yumoframe render   # 预览确认后再渲染

其他命令

yumoframe templates       # 列出内置模板
yumoframe inspect --json  # 机器可读:当前项目的模板契约与能力(Skill 首选)
yumoframe layout          # rotating-flow 专属 SVG 布局预览
yumoframe eject           # 把运行时模板拷进当前项目
yumoframe doctor          # 检查 Node、uv、ffmpeg、模板与 processors

只有需要改模板源码时才用 eject。正常项目保持纯数据即可。

语音合成(TTS)

synthesize(别名 tts)用 processors.tts 把文本合成为声轨。按 runner 选择引擎:

| runner | 用途 | 用户需要 | | --------- | ------------------------------------- | ---------------- | | uv | 包内本地引擎(默认 Qwen3-TTS) | uv;首次会下模型 | | command | 外部 CLI(如 uvx edge-tts) | 有 uv 即可 | | api | 线上 TTS(DashScope / OpenAI 兼容等) | API key |

默认新项目:本地 Qwen3-TTS 0.6B + Vivian,并用 FunASR fa-zh 给已知原文标时间。Skill 配音流程必须先审核 speech.json,再 yumoframe synthesize --plan;也可用裸 synthesize 做整段合成。

yumoframe synthesize --capabilities   # 查看当前模型允许的 control
yumoframe synthesize --plan speech.json

时间来源按字幕 → 强制对齐 → ASR 三档自动降级,尽量避免「TTS 后再 ASR」造成原文漂移。

完整配置(模型表、edge-tts / DashScope 示例、表演计划、对齐降级)见 语音合成指南

文档