mcpbeat Sign in

Update Chrome Binaries Test Region Agent Skill

Publish Remotion Lambda Chrome binaries to the eu-central-1 test region and update hosted layer and Chrome version references. Use when updating Chrome binaries before full regional rollout.

1k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
55471
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/remotion-dev/remotion --skill update-chrome-binaries-test-region

The instruction itself

5 sections, as written by the author

Update Chrome Binaries Test Region

AWS setup

  • Confirm the AWS CLI is logged into account 678892195805 by running aws sts get-caller-identity. If not, ask the user to log in.
  • Export AWS credentials into the shell by running eval "$(aws configure export-credentials --format env)". The Lambda client checks for AWS_ACCESS_KEY_ID and does not pick up SSO or Identity Center credentials on its own.
  • From packages/lambda, run bun src/admin/make-layer-public.ts --region=eu-central-1 to publish all 5 layers: fonts, chromium, emoji-apple, emoji-google, cjk.
  • The eval and the bun command must run in the same shell invocation because the env vars do not persist across shell calls.
  • Verify the output prints a LayerArn and Version for each of the 5 layers and a final JSON dump with the published regions populated.

Update hosted layers

Update packages/lambda/src/shared/hosted-layers.ts by copying the JSON dump from the script's stdout. Do not manually bump version numbers.

The script prints, after several blank lines, a complete HostedLayers object showing the exact layerArn and version AWS returned for every layer it just published. Replace the corresponding region entries in hosted-layers.ts with those values.

For the test phase (--region=eu-central-1), only eu-central-1 is updated; other regions intentionally stay on their old versions until rollout. If the script was invoked with --skip=<region>, leave skipped regions untouched.

Update Chrome references

Ask the user for both the Chrome version, such as 149.0.7790.0, and the corresponding Playwright revision. If the user does not provide the Playwright revision, look it up in https://github.com/microsoft/playwright/blob/main/packages/playwright-core/browsers.json by matching browserVersion.

Update:

  • packages/renderer/src/browser/get-chrome-download-url.ts: TESTED_VERSION, PLAYWRIGHT_VERSION, the trailing // <version> comment on the PLAYWRIGHT_VERSION line, and the two hard-coded https://remotion.media/chromium-headless-shell-amazon-linux-{arm64,x64}-<version>.zip URLs.
  • Before changing URLs, verify the new binaries exist with curl -sI against the new hard-coded URLs and the templated chromium-headless-shell-linux-{arm64,x64}-<version>.zip?clearcache URLs that follow TESTED_VERSION. Continue only when all return HTTP 200; otherwise ask the user to upload the missing builds to remotion.media.
  • packages/lambda/src/admin/make-layer-public.ts: the Chromium <version>, compiled from source. license string passed to PublishLayerVersionCommand.
  • packages/docs/docs/lambda/runtime.mdx: prepend a new row to the "Chrome" version table for the next Remotion release. Determine the next version from packages/core/package.json and increment the patch.
  • packages/docs/docs/miscellaneous/chrome-headless-shell.mdx: prepend a new row to the version table and update the example version string in the "Version tracking" section.
  • packages/docs/docs/renderer/ensure-browser.mdx: update both version: '<old>' occurrences in example code blocks.

Docker verification

Run the Docker matrix tests in packages/dockerfiles/ with ./run.sh against the new Chrome binary. Make sure Docker Desktop is running first.

The tests render:

  • browser-test: Three.js, WebGL, and codec smoke test.
  • html-in-canvas: experimental WICG drawElementImage() and canvas.requestPaint() APIs.

Outputs land in packages/dockerfiles/out/<platform>.mp4 and packages/dockerfiles/out/<platform>-html-in-canvas.mp4.

The Dockerfiles install the local workspace build of @remotion/cli plus transitive deps, not the published version. Source changes in @remotion/renderer are picked up before publishing. run.sh runs pack-cli.ts, which walks @remotion/cli transitive workspace:* deps, runs bun pm pack for each into packages/dockerfiles/tarballs/, and emits local-cli-package.json with every tarball as a direct dependency and override.

If a new composition is added to the Docker test matrix, register it in packages/example/src/BrowserTestRoot.tsx and add a corresponding RUN remotion render /usr/app/bundle <id> /usr/app/<filename>.mp4 line plus docker cp extraction in run.sh.

The <HtmlInCanvas> runtime check in packages/core/src/HtmlInCanvas.tsx requires ctx.drawElementImage, canvas.requestPaint, canvas.captureElementImage, and transferControlToOffscreen, which Chrome 149+ exposes when --enable-features=CanvasDrawElement is passed. If html-in-canvas renders fail with "HTML in Canvas is not supported" while browser-test passes, the most likely cause is a Chrome version mismatch.

Do not proceed to publishing all regions until the test region has been verified end-to-end.

Other skills for the same job

different authors, same section of the catalogue
Webapp Testing
by anthropics
vendor ×12

Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.

6k tokens scripts
Finishing A Development Branch
by ZhanlinCui
×7

Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup

1k tokens
Test Driven Development
by w95
×7

Use when implementing any feature or bugfix, before writing implementation code

2k tokens
Systematic Debugging
by ratacat
×7

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes

10k tokens scripts
Verification Before Completion
by ZhanlinCui
×6

Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always

1k tokens
Backtest Expert
by BaggaT236
×3

Expert guidance for systematic backtesting of trading strategies. Use when developing, testing, stress-testing, or validating quantitative trading strategies. Covers "beating ideas to death" methodology, parameter robustness testing, slippage modeling, bias prevention, and interpreting backtest results. Applicable when user asks about backtesting, strategy validation, robustness testing, avoiding overfitting, or systematic trading development.

15k tokens scripts
Adaptyv
by christophacham
×3

Cloud laboratory platform for automated protein testing and validation. Use when designing proteins and needing experimental validation including binding assays, expression testing, thermostability measurements, enzyme activity assays, or protein sequence optimization. Also use for submitting experiments via API, tracking experiment status, downloading results, optimizing protein sequences for better expression using computational tools (NetSolP, SoluProt, SolubleMPNN, ESM), or managing protein design workflows with wet-lab validation.

16k tokens
Aeon
by christophacham
×3

This skill should be used for time series machine learning tasks including classification, regression, clustering, forecasting, anomaly detection, segmentation, and similarity search. Use when working with temporal data, sequential patterns, or time-indexed observations requiring specialized algorithms beyond standard ML approaches. Particularly suited for univariate and multivariate time series analysis with scikit-learn compatible APIs.

19k tokens

How to use it

Copy the folder

Take remotion-dev/update-chrome-binaries-test-region from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.