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

framely-cli

v0.7.3

Published

framely — the typed, undoable video-project surface an AI agent (Claude Code, any MCP host) drives. Installs the `framely` command.

Readme

framely

AI-native video editor — a CLI (+ MCP server) that AI agents operate. framely ships the tool, not the brain: the calling agent (Claude Code, any MCP host) is the intelligence; framely gives it a typed, safe, undoable video-project surface. All render/analysis runs on your machine (headless Chrome + WebCodecs) — no media leaves it except the audio slice you explicitly send to hosted captions.

The npm package is framely-cli; it installs the framely command.

Install

npm i -g framely-cli      # installs the `framely` command

Requirements: Node ≥ 22 and Google Chrome installed (used headless for analyze/render; macOS + Linux first-class, Windows best-effort). Nothing else to download.

Use with Claude Code (MCP)

framely's primary surface is an MCP server — the agent is the brain, framely is the typed hand:

claude mcp add framely -- framely mcp                       # current directory is the project
claude mcp add framely -- framely mcp --project /path/to/proj

Tools exposed: ops_schema, init_project, add_asset, get_project, apply_ops (atomic, undoable; {dryRun:true} previews), undo/redo, get_facts, analyze, cut_silences, captions_build, transcribe, render. Invalid ops come back as typed, retryable tool errors — nothing is persisted on failure. There is no LLM inside framely.

Quick start (CLI)

framely init demo
framely add clip.mp4                     # auto-probes duration/kind
framely ops --schema                     # the op contract an agent reads
echo '[{"op":"addClip","assetId":"<id>","startSec":0,"durationSec":10}]' | framely apply -
framely cut-silences                     # the marquee: analyze silence → cut → close gaps
framely render -o out.mp4                # proof, on your machine
framely show
framely undo
sudo npm i -g framely-cli && framely bridge   # global install (needs admin) — or `npx framely-cli@latest bridge` (no install)

framely bridge — URL import for the web editor

The web editor (framely.video) can't download a YouTube URL itself — a Cloudflare Worker's datacenter IP is bot-blocked by YouTube, and the browser can't read cross-origin media. framely bridge runs a small HTTP loopback server on http://127.0.0.1:47700 (IPv4 + IPv6). The web page reaches it via Chrome 142+ Local Network Access (targetAddressSpace:"loopback"), which exempts the loopback literal from mixed-content and prompts to allow local-network access. Extraction is self-contained: it pulls YouTube formats with bundled youtubei.js from your own IP and merges video+audio with mediabunny (no yt-dlp, no ffmpeg); the web editor fetches from it (CORS-granted to framely.video only). So the download happens entirely on your machine — nothing goes through framely's servers, and you install nothing beyond the CLI. framely bridge installs a background service (macOS launchd / Linux systemd) that auto-starts on login and returns to the prompt — run it once. framely bridge --stop removes it; --status checks it; --run runs in the foreground. Then in the editor: File → Import from URL (Chrome may ask to allow local-network access — click Allow).

A project is project.json + an append-only event log at .framely/log.jsonl (undo = replay). Entity ids are assigned once, at apply time, and stay stable across later commands (deterministic replay).

Run framely --help (or framely <verb> --help) for the full verb list and flags. Design SSOT and exploration log live in the repository.