release

Installation
SKILL.md
  • Kill any turbo processes that might be running with SIGKILL
  • Before beginning the release, verify that gcloud is logged in by running gcloud auth print-access-token >/dev/null. If it fails, run gcloud auth login, then repeat the check. Do not continue with the release until the check succeeds.
  • Codex-specific: Before running release commands, make sure rbenv wins over the macOS system Ruby. Codex may start non-interactive shells with /usr/bin before ~/.rbenv/shims, causing Ruby 2.6 to be used even though the user's terminal uses Ruby 3.3.x. Run release commands that may invoke Ruby/Bundler with: PATH="$HOME/.rbenv/shims:$HOME/.rbenv/bin:$PATH" <command> Verify with PATH="$HOME/.rbenv/shims:$HOME/.rbenv/bin:$PATH" ruby --version; it should use the user's rbenv Ruby, not /usr/bin/ruby. This matters because the lambda Ruby package currently resolves gems such as json that require Ruby >= 2.7.
  • Check npm whoami. Only if it fails, run npm login (I will manually do 2FA in the browser)
  • Use op item get "Npmjs" --fields password --reveal --account remotiondev.1password.com to get the password for NPM.
  • Use op item get "Npmjs" --otp --account remotiondev.1password.com to get a one-time password for 2FA.
  • Run npm token create --name="PublishRemotionXXXXXX" --packages "remotion" --packages "create-video" --packages-and-scopes-permission read-write --bypass-2fa --scopes "@remotion" --otp=<otp>. Replace XXXXXX with a random string so we have a unique name. Use op item get "Npmjs" --otp --account remotiondev.1password.com to get the OTP and pass it via --otp=. It will ask for a password, pipe in the password using echo "$PASSWORD" |.
    • Do not pass --json: npm masks the token as npm_*** in JSON output, making it unusable. Redirect the plain output to a file in the scratchpad and extract the token with grep -oE 'npm_[A-Za-z0-9]{20,}' into a scratchpad file (e.g. $SP/npm_token). Never print the token. If a token turned out unusable, revoke it with npm token revoke <id> --otp=<otp> (find the id with npm token list).
  • Run bun i
  • Run bun run build
  • Run npm view remotion version to get the current version number
  • Run bun set-version.ts <version>, where is the current version plus 1. If the exit code is not 0, abort the entire release process immediately. Do not pipe its output (e.g. into tail): the shell is zsh, so $PIPESTATUS is unavailable and the exit code gets lost. Redirect to a log file instead, then confirm the v<version> commit and tag exist.
  • Run cd packages/example && sh runlambda.sh && cd ../... If this fails, abort the release.
  • Publish the public packages under a temporary npm dist-tag, then promote latest only after every package is installable. validating is npm's automatic scan for ordinary publishes, not a reason to use npm stage. Do not run bun run release: its current script publishes directly to latest and starts private publishing and Git pushes before the availability gate.
    • From the repository root, after set-version.ts, run:
Installs
596
GitHub Stars
66.0K
First Seen
Jun 16, 2026