New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

expo-launch-video

Package Overview
Dependencies
Maintainers
1
Versions
4
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

expo-launch-video

Let AI agents make animated launch videos of your Expo app: capture screens from the phone, auto-plan timing, zooms and scroll speed-ups, edit in a live studio by prompting, export MP4.

latest
Source
npmnpm
Version
0.1.2
Version published
Weekly downloads
69
Maintainers
1
Weekly downloads
 
Created
Source

expo-launch-video — your AI agent shoots and edits a launch video of your app, live

npm version CI node MIT license

Website · Docs · The studio · Tools reference · Changelog

expo-launch-video lets your AI agent shoot and edit a launch video of your Expo app — live from your phone. Ask Claude Code, Antigravity or Cursor for a video; it records the real app (page loads, scrolling, taps, panels opening), picks the best takes, writes the captions and cuts a polished video with motion graphics, break-out pop-outs and sound. Then it opens a studio where you tweak the result by dragging, or just by typing what you want. Export is a real 1080p MP4, rendered in your browser. No After Effects, no ffmpeg, no screen-recording app.

"Make a 45 second launch video of the app: landing, login, dashboard, the question bank and one exam. Captions should sell the benefits."

Table of contents

Installation

npx expo install expo-mcp-bridge react-native-view-shot
npm install --save-dev expo-launch-video
npx expo-launch-video init

init writes .mcp.json with a launch-video server — it includes every app_* tool from expo-mcp-bridge, so one server does both — plus the directing skill for Claude Code (.claude/skills/launch-video), the same playbook in AGENTS.md for Antigravity, Cursor and others, and a .gitignore entry for the project folder.

Quick start

The one-shot way. Paste this into your agent inside your Expo project:

Read https://raw.githubusercontent.com/Rudrasamadhiya/expo-launch-video/main/AI_SETUP.md and set up app control and launch videos in this project.

By hand:

  • Install the packages and run init (above).

  • Mount the bridge once in your root layout:

    import { Stack, router } from 'expo-router';
    import { AgentBridge } from 'expo-mcp-bridge';
    
    export default function RootLayout() {
      return (
        <>
          <Stack />
          <AgentBridge router={router} />
        </>
      );
    }
    
  • Run npx expo start and open the app on your phone (same Wi-Fi).

  • Restart your agent and ask for a video.

On Windows the MCP config uses "command": "cmd", "args": ["/c", "npx", "expo-launch-video"].

Features

  • Real footage from the phone. Screen recordings at about 10–15 fps captured in-app: page loads and animations on camera, smooth scrolls from full-page captures, taps mid-take.
  • Auto-directed. A director plans timing, zooms into stat rows and buttons, speeds up long scrolls, and writes captions and pop-up chips from the real numbers on screen.
  • Motion graphics. Kinetic typography, glass callouts, light sweeps, accent wipes, and an animated intro and outro with a logo burst and a pulsing call to action.
  • Break-out pop-outs. A tapped card lifts off the phone to center stage; a panel that opens springs out into a side-by-side layout.
  • Sound design. Synthesized pops, clicks, whooshes and chimes timed to every animation, mixed into an AAC track in the MP4.
  • Prompt the studio. "speed up analytics 2x", "text on the right", "zoom into the Start button". Simple edits apply instantly; anything else goes to your agent, which edits the video live.
  • Every format. 16:9 for stores and YouTube, 9:16 for Reels and Shorts, 1:1 for feeds.

How a video gets made

1. Shoot    video_record {route:"/dashboard", seconds:8, scroll:true}    live from the phone
            video_record {tap:"My Analytics", seconds:6}                  tap → hero / side pop-out
2. Plan     video_plan {targetSeconds:45, format:"landscape"}             timing, zooms, captions, chips
3. Direct   video_edit [{op:"update", scene:"dashboard", title:"…"}]      refine any scene
4. Studio   video_studio  →  you drag, trim and type prompts              video_wait_for_prompt / video_reply
5. Render   video_render  →  launch-video/out/launch-landscape.mp4

Tools

In addition to every app_* tool from expo-mcp-bridge. Full parameters are in the tools reference.

ToolDescription
video_recordScreen-record the phone: open the page on camera, hold while it loads, scroll — or tap mid-take
video_captureHigh-resolution stills and full-page scroll captures for one or many routes
video_capture_tapBefore / tap / after stills of an interaction
video_planAuto-plan the whole timeline from the captures
video_editEdit scenes: order, duration, speed, captions, chips, zooms (including timed zooms), pop-outs, transitions, format, caption side, theme, sound
video_timelineThe whole plan in a few lines
video_studioOpen the studio in the browser
video_wait_for_promptWait for what the user types in the studio
video_replyAnswer the user in the studio after an edit
video_renderExport the MP4 and return its path

The studio

A browser editor with live preview, a drag-to-reorder and drag-to-resize timeline, a per-scene inspector (captions, duration, speed, transitions, draw a zoom area, scroll amount), video settings (format, caption side, colors from your app, sound) and a prompt box. It understands common edits on its own:

make dashboard 4s · speed up analytics 2x · slow down the 3rd scene · remove pricing
move faq after help · zoom on Log In in login · no zoom on dashboard · scroll mistakes 60%
title dashboard: Your day at a glance · fade transition on analytics · portrait · square
text on the right · make it 30 seconds · cta: Get it on Google Play · color #7c3aed · mute · volume 60%

With ANTHROPIC_API_KEY set (or an ant auth login profile), free-form requests go straight to Claude (claude-opus-5-5); otherwise they go to your agent through video_wait_for_prompt. Prompts carry the scene you have selected, so "fix this" means that scene.

Reopen a project without an agent with npx expo-launch-video studio.

CLI and environment

npx expo-launch-video init      # .mcp.json ("launch-video" server), skills, AGENTS.md, .gitignore
npx expo-launch-video studio    # reopen the studio for ./launch-video (edit, preview, export)
npx expo-launch-video           # run the MCP server (your agent starts this for you)
npx expo-launch-video --help
VariableDefaultDescription
EXPO_MCP_PORT8347Port the phone connects to (shared with expo-mcp-bridge)
LAUNCH_VIDEO_PORT8790Studio web server (the next free port if taken)
LAUNCH_VIDEO_DIR./launch-videoWhere captures, project.json and renders live
LAUNCH_VIDEO_AIonoff sends studio prompts to your agent instead of the Claude API
LAUNCH_VIDEO_MODELclaude-opus-5-5Model for direct studio edits (needs Anthropic credentials)

Project structure

server/       MCP server, director (auto-planning), capture and recording, studio server,
              prompt parser, optional Claude edits
studio/       the editor (vanilla JS): renderer, motion graphics, sound design,
              MP4 export (Mediabunny / WebCodecs)
skill/        the directing playbook installed by init
AI_SETUP.md   one-shot setup guide an AI agent can follow

Projects live in launch-video/ inside your app (captures, project.json, renders in out/); init adds the folder to .gitignore.

Troubleshooting

SymptomFix
The render dialog never finishesKeep the studio tab visible; exports use the browser's hardware encoder (Chrome or Edge).
A page capture shows an old screenUpdate both packages — captures use the visible screen view.
Lists are empty in recordingsThe app may need dev environment variables (for example EXPO_PUBLIC_* set only in eas.json); start Metro with them set.
A panel covers later takesClose modals between takes — video_record warns you when one is still open.
Anything elseSee the expo-mcp-bridge troubleshooting table.

Requirements

  • Node.js 20 or newer
  • An Expo app with expo-mcp-bridge mounted
  • Chrome or Edge for export (WebCodecs H.264 + AAC)

Contributing

npm install
npm test

See CONTRIBUTING.md for details.

License

MIT © Rudra Samadhiya

Exports are muxed with Mediabunny (MPL-2.0).

Keywords

expo

FAQs

Package last updated on 21 Oct 2026

Related posts