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

@aioproductoscom/mcp-studio

v0.2.1

Published

AIOProductOS Studio — an MCP server that turns your AI host into a product videographer: scripted screen recordings of YOUR web app with a smooth on-screen cursor, camera zooms, highlight callouts, caption cards, branded transitions, and marketing-grade s

Downloads

87

Readme

AIOProductOS Studio · MCP

Your AI teammate becomes your product videographer. Studio is an MCP server that records scripted walkthroughs of your own web app — a visible cursor that glides to every click, camera punch-ins, highlight callouts, storyline captions, designed scene transitions — and takes marketing-grade screenshots. Tell your AI host what story to shoot; get back a share-ready MP4.

The videos PMs hate making — demo clips, explainers, changelog GIFs, launch screenshots — become one prompt.

Free · MIT · runs 100% locally (your browser, your URLs, your logged-in session — nothing is uploaded anywhere). By AIOProductOS, built from the same pipeline we use for our own launch videos.

Install

# Claude Code
claude mcp add studio -- npx -y @aioproductoscom/mcp-studio

# Cursor / Codex — .mcp.json
{ "mcpServers": { "studio": { "command": "npx", "args": ["-y", "@aioproductoscom/mcp-studio"] } } }

Requirements: Node 18+, Playwright Chromium (npx playwright install chromium, one-time), and ffmpeg on PATH for MP4/GIF export (brew install ffmpeg — without it you still get the raw WebM).

Use

Then just direct the film:

"Record a 30-second walkthrough of https://app.example.com — theme it to our brand (#0d1117 bg, #f97316 accent), open on the dashboard with the title 'Meet Example', caption the three key features, zoom in on the analytics chart, and end with 'Start free · example.com'. Also grab a hero screenshot."

Your host runs the shoot tool by tool; files land in ./studio-output/.

The tools

| Tool | What it does | |---|---| | studio_start | open a themed recording browser (viewport, brand colors, logged-in state) | | studio_goto | navigate behind a designed title card — no loading flashes on tape | | studio_click / studio_type | cursor glides to the target; typing is human-paced | | studio_scroll | cubic-eased scroll, never a jump cut | | studio_caption | bottom-left storyline caption — also the spoken voice-over script | | studio_narrate | record a spoken line with no on-screen caption (narration over action) | | studio_highlight | accent ring + label callout around any element or visible text | | studio_zoom | smooth camera punch-in on a metric, button, or result | | studio_hold | hold the shot (micro-drift keeps frames flowing) | | studio_end_card | closing glass card: title, subtitle, CTA URL | | studio_screenshot | high-DPI PNG of the frame, an element, or the full page | | studio_finish | stop, auto-remove dark frames, export MP4 — plus voice-over, subtitles, music, social crops, GIF | | studio_cancel | abandon the take |

Sound & social (v0.2)

Your captions are the script. studio_finish turns them into a finished, shareable cut:

studio_finish({
  name: "onboarding",
  voiceover: true,          // narrate the caption lines with a LOCAL voice — no cloud, no API key
  voice: "Samantha",        // any installed system voice (optional)
  subtitles: "srt",         // ".srt" sidecar from the captions · "burn" to render them in-frame
  music: "./bed.mp3",       // optional local music bed, ducked under the narration
  aspects: ["9:16", "1:1"], // extra Reels/TikTok/feed crops beside the 16:9 master
  gif: true,
})

Voice-over is 100% local and offline — it uses macOS say, piper (set STUDIO_PIPER_MODEL to a downloaded .onnx voice), or espeak-ng, whichever it finds. No account, no key, nothing uploaded. No engine on the machine → the video is simply silent (with a hint how to enable it). Narration timing is auto-corrected for the frames the dark-frame trimmer removes, so speech stays in sync.

Recording logged-in areas

Studio never sees your credentials. Save a Playwright storageState once (npx playwright codegen --save-storage=auth.json https://app.example.com), then pass storage_state_path: "auth.json" to studio_start.

Keeping junk off the tape

  • Cookie banner? Pass your consent cookie via cookies so it never mounts.
  • Chat bubble / dev overlay? List selectors in hide_selectors — hidden from frame 1.
  • Wrong flash color on page loads? Set theme.bg to your app's real background.

Why it looks good (the hard-won part)

No white flash on page commits (the theme background paints before any page CSS), no black frames (navigations hide behind designed title cards, and residual dark frames are detected and cut deterministically with ffmpeg), no stutter (every camera move is compositor-friendly easing), and action that reads on camera (a visible cursor glides to every target before it acts).

Links

MIT © AIOProductOS Inc.