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

perso-dubbing

v0.8.15

Published

Perso AI video auto-dubbing agent skill — dubbing, lip-sync, audio separation, SRT subtitle extraction & translation (Claude Code / Codex / Cursor / Antigravity)

Readme

Perso Dubbing Plugin

Every video, every language. Dub, subtitle, and clip right from your coding agent. "Dub this video into English" is the whole workflow.

Perso AI Node.js Agent Skills Hosts MIT skills.sh

English | 한국어 | Español | Português | Русский | Bahasa Indonesia | Deutsch | ไทย | 日本語 | 繁體中文 | 简体中文 | Tiếng Việt | Français

| Feature | You say | You get | | |---|---|---|---| | Dubbing | "Dub this video into Japanese" | The same video, re-voiced | | | Lip-sync | "…with lip-sync" | Mouth matched to the dubbed audio | | | Voice separation | "Split the voice from the music" | Voice and background tracks | | | Subtitles from speech | "Make me an English SRT" | An SRT extracted via STT | | | Subtitle translation | "Translate subs.srt into Spanish" | Translated SRT, timing intact, QA included | FREE | | Styled subtitles | "Burn these subtitles onto the video" | Styled subtitles on the video | FREE | | Short clips | "Cut 2:00–3:00 as a short" | A 9:16 clip, reframed | FREE | | AI highlights | "Pick the best moments as shorts" | AI-selected highlight clips | |

Files, folders, and YouTube/TikTok URLs all work.

Install

Agent installing from this repo URL? In Claude Code, run this now (non-interactive, safe to re-run):

claude plugin marketplace add perso-ai/perso-dubbing-plugin && claude plugin install perso-dubbing@perso-ai

Have the user restart so /dubbing, /srt, /clip load. Other hosts: npx perso-dubbing. No terminal (ChatGPT / Gemini): docs/chatgpt-setup.md · docs/gemini-setup.md

Claude desktop app (paid plan): open the Code tab, pick a folder, choose Local, paste:

claude marketplace add perso-ai/perso-dubbing-plugin && claude install perso-dubbing@perso-ai

Claude Code CLI: /plugin marketplace add perso-ai/perso-dubbing-plugin, then /plugin install perso-dubbing@perso-ai

Codex · Antigravity · anything else: npx perso-dubbing detects your hosts and installs into each — or, cross-agent via skills.sh:

npx skills add perso-ai/perso-dubbing-plugin

Requires Node.js 18+, nothing else. Visual walkthrough · FAQ

Styled subtitles

Pick one of twelve presets, or just describe the look in plain words: "yellow text, black outline, bottom." The burn runs locally on ffmpeg: no upload, no queue, no account. Several languages? Each SRT gets its own finished video.

Translate subtitles

Hand over any SRT and name the languages you want. Several at once is fine, one pass covers them all. Every line keeps its exact original timing, appearing and disappearing at the same moments as before. Before delivery, the result is checked for lines that run too long or read too fast.

Short clips

Timecodes in, vertical shorts out: reframed 16:9 → 9:16, named, and ready for subtitles. Or hand over the transcript and AI picks the moments that work as shorts: opens on a hook, rides the reaction to its peak, cuts before the energy drops. 30–90 seconds each.

Dubbing and lip-sync

One run takes a file, a whole folder, or a YouTube/TikTok URL and dubs it into several languages from a single upload. Videos over the plan limit split, process, and merge back on their own; an interrupted run resumes exactly where it stopped, never re-billing finished parts. Dubbing clones the original voice into the new language, and lip-sync moves the mouth to match that cloned audio.

Subtitles from speech (STT)

No subtitles yet? Speech-to-text runs on Perso's servers and uses credits to turn the video's audio into an SRT in the original language, for one file or a whole folder. Every step after the SRT exists is free: translating, styling, burning.

Voice separation

Splits a video or audio into clean tracks: the voice and the background. With several speakers, each person's voice comes out as its own track. Swap the soundtrack, remaster the dialogue, or reuse any track on its own.

Free where it can be. Paid where it must be.

MIT, free and open-source. Everything that runs on your machine costs nothing and needs no account: styling and burning subtitles, translating an SRT you have, cutting clips at timecodes. Credits come in only when a job runs on Perso's servers: dubbing, lip-sync, voice separation, and speech-to-text, billed per processed second via the Perso Dubbing API.

No setup ceremony. The first time a server job runs, a browser opens: sign in, one click, key stored encrypted. Free steps never ask.


Privacy: /dubbing, /srt, and /clip send usage events to improve the skills, covering what ran and how it went, media length, style choices, coarse locale, app version/OS, and whether a Perso API key was used (and registered). Each event has a random per-install ID and your workspace number; never your key, media, filenames, or subtitle text. Opt out with PERSO_NO_TELEMETRY.

License: the skill code is MIT. API usage is subject to the Perso AI Terms of Service and pricing.