# Install dependencies (uses Bun)
bun install
# Build all packages
bunx turbo run make
# Run tests and linting
bunx turbo run lint test
# Clean build artifacts
bun run clean
# Build a specific package
bunx turbo run make --filter='<package-name>'Use bunx (not npx) to run package binaries.
The current Remotion version can be found in packages/core/src/version.ts. The next version should increment the patch version by 1.
Pull request titles should be in the format \[package-name]`: [commit-message]. For example, "@remotion/player: Add new feature.
If committing your work:
- Run
bun run buildfrom the root of the repo to verify all packages build successfully - Run
bun run stylecheckto ensure CI passes - Include
bun.lockwhen dependencies change
Read the full contribution guide.
Bun v1.3.3 is the required package manager and test runner. It is installed at ~/.bun/bin/bun. Ensure ~/.bun/bin is on PATH (the update script handles this).
- Remotion Studio (dev testbed):
cd packages/example && bun run devβ starts athttp://localhost:3000. This is the main dev UI for previewing video compositions. - Player testbed:
cd packages/player-example && bun run devβ for testing@remotion/playerchanges. - Docs site:
cd packages/docs && bun run startβ Docusaurus dev server.
From packages/example:
bunx remotion compositionsβ list available compositions.bunx remotion render <comp-id> --output ../../out/video.mp4β render a video.bunx remotion still <comp-id> --output ../../out/still.pngβ render a still image.
@remotion/lambda-golint requires Go >= 1.23.0. The VM ships Go 1.22.2, so that package's lint will fail. This is optional and doesn't affect core development.@remotion/openai-whispertests requireOPENAI_API_KEYenv var. Without it, 1 test fails. This is expected and non-blocking.- The Remotion Studio (
bun run devinpackages/example) sometimes reports "Already running on port 3000" if a previous instance is still bound. Check withcurl http://localhost:3000before assuming it failed. - After
bun install, always runbun run buildbefore running tests or starting the Studio, as many packages depend on built artifacts from other packages. - The
preparescript in rootpackage.jsonsets git hooks path to.githooks. The pre-commit hook runsbun pre-commit.tsfor formatting.