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

cutscene-mcp

v0.5.1

Published

Cutscene from a terminal and for an assistant: a command line and an MCP server that search the Cutscene library, assemble motion-design films, change them, check them, preview them and export MP4 files on your own machine.

Readme

Cutscene: command line and MCP server

Cutscene assembles motion-design films (product launches, feature drops, demos, teasers) from a library of ready-made pieces: you place pieces and write your words, you never animate by hand. This package brings it to a terminal (cutscene) and to an assistant that speaks the Model Context Protocol (cutscene-mcp): search the library, create a film from a template, change it, look at it, check it and export MP4 files, all on your own machine.

The same films open in the editor at https://app.cutscene.studio.

Using Claude, ChatGPT or Le Chat? You do not need this package. Add Cutscene as a custom connector with the address https://app.cutscene.studio/mcp, then sign in to Cutscene and click “Allow”. An assistant cannot add it by itself: you add it once.

  • Claude, on claude.ai or the desktop app: Customize → Connectors → “+ Add” → “Add custom connector”. On a phone, add it once on claude.ai in a web browser: it then shows in the app.
  • ChatGPT, on chatgpt.com: Plugins → + button → “Add custom MCP server”.
  • Claude Code: claude mcp add --transport http cutscene https://app.cutscene.studio/mcp, then /mcp to sign in.

Every step, for each assistant: https://app.cutscene.studio/connect. This package is the other way: the connector on your own machine, without an account.

Français plus bas

Install

Node.js 20 or later.

npm install -g cutscene-mcp       # gives the commands cutscene and cutscene-mcp
cutscene help

Without installing anything for good, npx runs the same programs:

npx -y -p cutscene-mcp cutscene help

The browser, once

Pictures (contact sheets, stills, MP4 exports) are drawn by a headless Chromium, which is not downloaded with the package. Install it once per machine, about 100 MB:

cutscene install-browser
# without a global install:
npx -y -p cutscene-mcp cutscene install-browser

With an assistant there is nothing to do: the MCP server downloads it by itself the first time a picture is asked (that first answer takes a minute or two). From a terminal, until it is installed, a command that needs a picture says so in one sentence. Everything else (searching the library, creating, editing and checking a film) works without the browser.

On a bare Linux, cutscene install-browser --with-deps also installs the system libraries Chromium needs (it may ask for your password). The browser is kept where Playwright 1.63.0 keeps its browsers; PLAYWRIGHT_BROWSERS_PATH chooses another place.

Made and tested on macOS. On Linux everything works except the MP4 export with sound: the browser there encodes H.264 but not AAC sound, so export without sound (--no-sound), or export the film from the editor at https://app.cutscene.studio. Windows has not been tried yet.

With an assistant (MCP)

Add the server to your assistant's MCP configuration:

{
  "mcpServers": {
    "cutscene": {
      "command": "npx",
      "args": [
        "-y",
        "cutscene-mcp"
      ],
      "env": {
        "CUTSCENE_DIR": "/path/to/your/films"
      }
    }
  }
}

CUTSCENE_DIR is the folder your films are written in: give an absolute path, an assistant does not always start the server where you think. With a global install, "command": "cutscene-mcp" with no args does the same.

Then ask in your own words: "make a 20-second launch film for my product, here is what it does, here are three screenshots". The server gives the assistant a guide, the catalogue, and tools to search the library, create and change a film, look at it as a contact sheet, check it and export it.

cutscene-mcp --http [port] serves the same server over HTTP on http://127.0.0.1:<port>/mcp (default port 3310), for a program on this machine that connects to a server instead of starting one. With CUTSCENE_MCP_TOKEN set, every request must carry Authorization: Bearer <token>.

From a terminal

cutscene montages                                   # the templates: films that are already cut
cutscene new my-film --montage montage/launch --lang en
cutscene show my-film                               # its shots and every word they show; a leading * marks an example nobody wrote yet
cutscene edit my-film '[{"op":"set_text","shot":1,"layer":"title","text":"Hello"}]'
cutscene brand my-film --name "Acme" --accent "#2f6bff" --logo logo.svg
cutscene pieces phone --kind shot                   # search the library, in English or French
cutscene piece shot/phone-hero                      # one piece: its settings and the words it shows
cutscene check my-film                              # what is left before a good export, and what to do next
cutscene sheet my-film                              # my-film.sheet.jpg: one frame per shot
cutscene still my-film --shot 3                     # my-film.still.jpg: one frame at full size
cutscene render my-film                             # exports/my-film-16x9.mp4
cutscene undo my-film                               # the film as it was before its last change

cutscene help lists every command, cutscene guide explains how to make a good film with them, and cutscene tools lists what an assistant gets (cutscene tools edit_film for every change a film takes).

Where things are written

Everything lives in one working folder, CUTSCENE_DIR (default: cutscene-films in the folder the command is run from):

| Path | What | |---|---| | <name>.cutscene.json | A film. The same file opens in the editor | | <name>.sheet.jpg, <name>.still.jpg | The pictures sheet and still write | | exports/ | MP4 files (<name>-16x9.mp4…), posters, and projects for After Effects or DaVinci Resolve (<name>-16x9-after-effects.zip, <name>-16x9-davinci-resolve.zip) | | pictures/ | Copies of the screenshots and logos you gave | | sounds/ | Your voice-overs and sounds: copies of the files you gave, and those created with your ElevenLabs account | | pieces/ | Pieces of your own | | .history/<name>/ | The 20 most recent earlier versions of each film (undo, versions, restore) | | .trash/ | Deleted films: nothing is erased |

Ask your assistant to export a film as a project for After Effects (CS6 or later) or DaVinci Resolve (18 or later, the free version is enough): it is made on your machine and opens in that program, with a README that says how. To bring an animation in, give your assistant a Lottie file, a composition sent from After Effects with the « Send to Cutscene » script (in every After Effects project), or a DaVinci Resolve timeline (FCPXML, OTIO) or Fusion nodes: it becomes a piece of your own. After Effects is a trademark of Adobe. DaVinci Resolve and Fusion are trademarks of Blackmagic Design. Cutscene is not affiliated with either.

A film can also be given as the path of a .cutscene.json file: its folder is then the working folder.

What the free plan exports, and what a key changes

No account is needed. Without a key, the free plan applies: films made of the base pieces export in 16:9 and 9:16 at 1080p, with a small end mark (“Made with Cutscene”) over the last two seconds. Pro pieces can be placed and previewed; exporting a film that uses one, the other formats and 4K need a paid plan (https://app.cutscene.studio/pricing). cutscene check says what your plan exports before you build in a format it does not.

With a paid plan, make a key on your account page (https://app.cutscene.studio/account) and give it to the programs with the address of the app:

export CUTSCENE_APP_URL=https://app.cutscene.studio
export CUTSCENE_TOKEN=cs_…

The plan of that account then decides what exports. When the app cannot be reached, the free plan applies.

Environment variables

| Variable | Default | What | |---|---|---| | CUTSCENE_DIR | ./cutscene-films | The working folder (see above) | | CUTSCENE_APP_URL | none | The address of the app, https://app.cutscene.studio. Needed with the key; by itself it is enough to read the pieces other people shared | | CUTSCENE_TOKEN | none | A key made on your account page: your plan decides what exports, and you can share pieces of your own | | CUTSCENE_MCP_TOKEN | none | With cutscene-mcp --http: the token every request must carry | | ELEVENLABS_API_KEY | none | Your own ElevenLabs API key: with it your assistant creates a voice-over (make_voice) or a sound effect (make_sound) with your ElevenLabs account. What you may do with them is set by your ElevenLabs plan (a free ElevenLabs plan gives no commercial use) |

What leaves your machine

Films, pictures and exports stay on your machine. Without CUTSCENE_APP_URL the programs call nobody. With it, they ask the app which plan your key holds, read or send shared pieces when you ask for them, and tell the app which pieces of the library an exported film used and which shared piece you brought in, so that they can be counted (as totals, once a day per person). cutscene install-browser, or the MCP server the first time a picture is asked, downloads the browser from Playwright's servers. With ELEVENLABS_API_KEY, make_voice and make_sound send ElevenLabs the words to say or the sound to make, with the voice chosen, under your own contract with them; your key goes to ElevenLabs and to nobody else.

Help

  • cutscene help, cutscene guide, cutscene tools
  • The guide: https://app.cutscene.studio/guide
  • Terms of the service: https://app.cutscene.studio/legal/terms. The legal notice (https://app.cutscene.studio/legal/notice) says who publishes Cutscene and how to write to us.

Licence

This software is not open source: see LICENSE. In short, you may install it and run it as it is to make films with Cutscene, and the films you make are yours. The typefaces (SIL Open Font License 1.1, assets/fonts/) and the free software built in (THIRD-PARTY-LICENSES.txt) keep their own licences.


En français

Cutscene assemble des films de motion design (lancement de produit, nouveauté, démo, teaser) à partir d'une bibliothèque de pièces toutes faites : on place des pièces et on écrit ses mots, on n'anime jamais à la main. Ce paquet l'apporte dans un terminal (cutscene) et à un assistant qui parle le Model Context Protocol (cutscene-mcp) : chercher dans la bibliothèque, créer un film à partir d'un modèle, le modifier, le regarder, le vérifier et exporter des fichiers MP4, le tout sur votre machine.

Les mêmes films s'ouvrent dans l'éditeur, sur https://app.cutscene.studio.

Vous utilisez Claude, ChatGPT ou Le Chat ? Ce paquet n'est pas nécessaire. Ajoutez Cutscene comme connecteur personnalisé avec l'adresse https://app.cutscene.studio/mcp, puis connectez-vous à Cutscene et cliquez sur « Autoriser ». Un assistant ne peut pas l'ajouter tout seul : vous l'ajoutez une fois.

  • Claude, sur claude.ai ou l'application de bureau : Personnaliser → Connecteurs → « + Ajouter » → « Ajouter un connecteur personnalisé ». Sur un téléphone, ajoutez-le une fois sur claude.ai dans un navigateur : il apparaît ensuite dans l'application.
  • ChatGPT, sur chatgpt.com : Plugins → bouton + → « Add custom MCP server ».
  • Claude Code : claude mcp add --transport http cutscene https://app.cutscene.studio/mcp, puis /mcp pour vous connecter.

Toutes les étapes, pour chaque assistant : https://app.cutscene.studio/connect. Ce paquet est l'autre façon : le connecteur sur votre machine, sans compte.

Installer

Node.js 20 ou plus récent.

npm install -g cutscene-mcp       # donne les commandes cutscene et cutscene-mcp
cutscene help

Sans rien installer pour de bon, npx lance les mêmes programmes :

npx -y -p cutscene-mcp cutscene help

Le navigateur, une seule fois

Les images (planches-contact, images fixes, exports MP4) sont dessinées par un Chromium sans fenêtre, qui n'est pas téléchargé avec le paquet. Installez-le une fois par machine, environ 100 Mo :

cutscene install-browser
# sans installation globale :
npx -y -p cutscene-mcp cutscene install-browser

Avec un assistant, il n'y a rien à faire : le serveur MCP le télécharge lui-même la première fois qu'une image est demandée (cette première réponse prend une minute ou deux). Depuis un terminal, tant qu'il n'est pas installé, une commande qui a besoin d'une image le dit en une phrase. Tout le reste (chercher dans la bibliothèque, créer, modifier et vérifier un film) fonctionne sans le navigateur.

Sur un Linux nu, cutscene install-browser --with-deps installe aussi les bibliothèques système dont Chromium a besoin (votre mot de passe peut être demandé). Le navigateur est rangé là où Playwright 1.63.0 range les siens ; PLAYWRIGHT_BROWSERS_PATH choisit un autre endroit.

Conçu et testé sur macOS. Sous Linux, tout marche sauf l'export MP4 avec le son : le navigateur y encode le H.264 mais pas le son AAC ; exportez sans le son (--no-sound), ou exportez le film depuis l'éditeur sur https://app.cutscene.studio. Windows n'a pas encore été essayé.

Avec un assistant (MCP)

Ajoutez le serveur à la configuration MCP de votre assistant :

{
  "mcpServers": {
    "cutscene": {
      "command": "npx",
      "args": [
        "-y",
        "cutscene-mcp"
      ],
      "env": {
        "CUTSCENE_DIR": "/chemin/vers/vos/films"
      }
    }
  }
}

CUTSCENE_DIR est le dossier où vos films sont écrits : donnez un chemin absolu, un assistant ne démarre pas toujours le serveur là où on le croit. Avec une installation globale, "command": "cutscene-mcp" sans args fait la même chose.

Demandez ensuite avec vos mots : « fais un film de lancement de 20 secondes pour mon produit, voici ce qu'il fait, voici trois captures d'écran ». Le serveur donne à l'assistant un guide, le catalogue, et des outils pour chercher dans la bibliothèque, créer et modifier un film, le regarder en planche-contact, le vérifier et l'exporter.

cutscene-mcp --http [port] sert le même serveur en HTTP sur http://127.0.0.1:<port>/mcp (port 3310 par défaut), pour un programme de cette machine qui se connecte à un serveur au lieu d'en démarrer un. Avec CUTSCENE_MCP_TOKEN, chaque requête doit porter Authorization: Bearer <jeton>.

Depuis un terminal

cutscene montages --lang fr                         # les modèles : des films déjà montés
cutscene new mon-film --montage montage/launch --lang fr
cutscene show mon-film                              # ses plans et chaque mot qu'ils montrent ; un * en tête marque un exemple que personne n'a encore écrit
cutscene edit mon-film '[{"op":"set_text","shot":1,"layer":"title","text":"Bonjour"}]'
cutscene brand mon-film --name "Acme" --accent "#2f6bff" --logo logo.svg
cutscene pieces téléphone --kind shot --lang fr     # chercher dans la bibliothèque, en français ou en anglais
cutscene piece shot/phone-hero --lang fr            # une pièce : ses réglages et les mots qu'elle montre
cutscene check mon-film                             # ce qui reste avant un bon export, et quoi faire ensuite
cutscene sheet mon-film                             # mon-film.sheet.jpg : une image par plan
cutscene still mon-film --shot 3                    # mon-film.still.jpg : une image en taille réelle
cutscene render mon-film                            # exports/mon-film-16x9.mp4
cutscene undo mon-film                              # le film tel qu'il était avant son dernier changement

cutscene help liste toutes les commandes, cutscene guide explique comment faire un bon film avec elles, et cutscene tools liste ce qu'un assistant reçoit (cutscene tools edit_film pour chaque changement qu'un film accepte). Les commandes répondent en anglais.

Où les fichiers sont écrits

Tout se trouve dans un seul dossier de travail, CUTSCENE_DIR (par défaut : cutscene-films dans le dossier d'où la commande est lancée) :

| Chemin | Quoi | |---|---| | <nom>.cutscene.json | Un film. Le même fichier s'ouvre dans l'éditeur | | <nom>.sheet.jpg, <nom>.still.jpg | Les images qu'écrivent sheet et still | | exports/ | Les fichiers MP4 (<nom>-16x9.mp4…), les affiches, et les projets pour After Effects ou DaVinci Resolve (<nom>-16x9-after-effects.zip, <nom>-16x9-davinci-resolve.zip) | | pictures/ | Les copies des captures d'écran et des logos que vous avez donnés | | sounds/ | Vos voix off et vos sons : les copies des fichiers que vous avez donnés, et ceux créés avec votre compte ElevenLabs | | pieces/ | Vos propres pièces | | .history/<nom>/ | Les 20 versions précédentes les plus récentes de chaque film (undo, versions, restore) | | .trash/ | Les films supprimés : rien n'est effacé |

Demandez à votre assistant d'exporter un film en projet pour After Effects (CS6 ou plus récent) ou DaVinci Resolve (18 ou plus récent, la version gratuite suffit) : il est fabriqué sur votre machine et s'ouvre dans ce logiciel, avec un README qui dit comment. Pour faire entrer une animation, donnez à votre assistant un fichier Lottie, une composition envoyée d'After Effects par le script « Send to Cutscene » (dans chaque projet After Effects), ou une timeline (FCPXML, OTIO) ou des nœuds Fusion de DaVinci Resolve : elle devient une pièce à vous. After Effects est une marque d'Adobe. DaVinci Resolve et Fusion sont des marques de Blackmagic Design. Cutscene n'est lié à aucune de ces entreprises.

Un film peut aussi être donné par le chemin d'un fichier .cutscene.json : son dossier est alors le dossier de travail.

Ce que l'offre gratuite exporte, et ce qu'une clé change

Aucun compte n'est nécessaire. Sans clé, l'offre gratuite s'applique : les films faits des pièces de base s'exportent en 16:9 et 9:16, en 1080p, avec une petite mention de fin (« Fait avec Cutscene ») sur les deux dernières secondes. Les pièces Pro peuvent être placées et prévisualisées ; exporter un film qui en utilise une, les autres formats et la 4K demandent une offre payante (https://app.cutscene.studio/pricing). cutscene check dit ce que votre offre exporte avant que vous ne construisiez dans un format qu'elle n'exporte pas.

Avec une offre payante, créez une clé sur la page de votre compte (https://app.cutscene.studio/account) et donnez-la aux programmes avec l'adresse de l'application :

export CUTSCENE_APP_URL=https://app.cutscene.studio
export CUTSCENE_TOKEN=cs_…

L'offre de ce compte décide alors de ce qui s'exporte. Quand l'application ne répond pas, l'offre gratuite s'applique.

Variables d'environnement

| Variable | Par défaut | Quoi | |---|---|---| | CUTSCENE_DIR | ./cutscene-films | Le dossier de travail (voir plus haut) | | CUTSCENE_APP_URL | aucune | L'adresse de l'application, https://app.cutscene.studio. Nécessaire avec la clé ; seule, elle suffit pour lire les pièces que d'autres ont partagées | | CUTSCENE_TOKEN | aucune | Une clé créée sur la page de votre compte : votre offre décide de ce qui s'exporte, et vous pouvez partager vos propres pièces | | CUTSCENE_MCP_TOKEN | aucune | Avec cutscene-mcp --http : le jeton que chaque requête doit porter | | ELEVENLABS_API_KEY | aucune | Votre propre clé API ElevenLabs : avec elle, votre assistant crée une voix off (make_voice) ou un bruitage (make_sound) avec votre compte ElevenLabs. Ce que vous pouvez en faire dépend de votre offre ElevenLabs (une offre ElevenLabs gratuite ne permet pas l'usage commercial) |

Ce qui quitte votre machine

Les films, les images et les exports restent sur votre machine. Sans CUTSCENE_APP_URL, les programmes n'appellent personne. Avec, ils demandent à l'application quelle offre porte votre clé, lisent ou envoient des pièces partagées quand vous le demandez, et disent à l'application quelles pièces de la bibliothèque un film exporté a utilisées et quelle pièce partagée vous avez reprise, pour qu'elles soient comptées (en totaux, une fois par jour et par personne). cutscene install-browser, ou le serveur MCP la première fois qu'une image est demandée, télécharge le navigateur depuis les serveurs de Playwright. Avec ELEVENLABS_API_KEY, make_voice et make_sound envoient à ElevenLabs les mots à dire ou le son à créer, avec la voix choisie, sous votre propre contrat avec eux ; votre clé va à ElevenLabs et à personne d'autre.

Aide

  • cutscene help, cutscene guide, cutscene tools
  • Le guide : https://app.cutscene.studio/guide
  • Conditions du service : https://app.cutscene.studio/legal/terms. Les mentions légales (https://app.cutscene.studio/legal/notice) disent qui édite Cutscene et comment nous écrire.

Licence

Ce logiciel n'est pas un logiciel libre : voir LICENSE. En bref, vous pouvez l'installer et l'exécuter tel quel pour réaliser des films avec Cutscene, et les films que vous réalisez sont les vôtres. Les polices (SIL Open Font License 1.1, assets/fonts/) et les logiciels libres intégrés (THIRD-PARTY-LICENSES.txt) gardent leurs propres licences.