update-chrome-binaries-test-region

update-chrome-binaries-test-region is a command for Claude Code from MoizIbnYousaf/marketing-cli. It costs 0 tokens per session (1,455 once invoked), scanned A, original, MIT.

A command for publishing browser binaries and related support layers to one AWS region for testing. AWS is Amazon's cloud platform, and a layer is a packaged set of files that cloud code can reuse.

In plain words
What is it for?
Use it to publish the fonts, Chromium, emoji, and CJK layers to the test region and verify that each publication returns a version and resource identifier.
Why use it?
It provides a defined test step for checking updated browser dependencies before a wider rollout.

Command for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the marketing-cli plugin — 88 skills, 9 commands, 1 hook, 2 MCP servers shipped together

Good fit Use it to publish the fonts, Chromium, emoji, and CJK layers to the test region and verify that each publication returns a version and resource identifier.

Compare 6 commands from other repositories ↓
Install with agentmods
npx agentmods add commands/moizibnyousaf/marketing-cli/update-chrome-binaries-test-region
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/MoizIbnYousaf/marketing-cli

Made for: Claude Code.

Or install marketing-cli, the plugin that ships this one along with the rest of its 88 skills, 9 commands, 1 hook, 2 MCP servers.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for update-chrome-binaries-test-region

README.md
[![agentmods](https://agentmods.dev/badge/commands/moizibnyousaf/marketing-cli/update-chrome-binaries-test-region/github.svg)](https://agentmods.dev/commands/moizibnyousaf/marketing-cli/update-chrome-binaries-test-region)
Your own site
<a href="https://agentmods.dev/commands/moizibnyousaf/marketing-cli/update-chrome-binaries-test-region"><img src="https://agentmods.dev/badge/commands/moizibnyousaf/marketing-cli/update-chrome-binaries-test-region/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for update-chrome-binaries-test-region

Your own site · 80×15
<a href="https://agentmods.dev/commands/moizibnyousaf/marketing-cli/update-chrome-binaries-test-region"><img src="https://agentmods.dev/badge/commands/moizibnyousaf/marketing-cli/update-chrome-binaries-test-region.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 0 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,455 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00000 $0.01455
Opus 5 $0.00000 $0.00727
Sonnet 5 $0.00000 $0.00291
Haiku 4.5 $0.00000 $0.00145

Measured 6d ago against content hash 64423d130f24, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-10, from the pricing page.

Security

Grade A, and why

update-chrome-binaries-test-region scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

- `packages/renderer/src/browser/get-chrome-download-url.ts`: `TESTED_VERSION` constant, `PLAYWRIGHT_VERSION` constant, and the trailing `// <version>` comment on the `PLAYWRIGHT_VERSION` line. Also update the two hard-c
skills/remotion-best-practices/references/upstream-internal/commands/update-chrome-binaries-test-region.md · 22 lines

How it starts

The opening of the file, as written. The whole thing — 22 lines — stays where its author put it; the contents beside it link to each section on GitHub.

  • 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/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) to a single test region. Flags supported by the script:
    • --region=<region> publishes to a single region (use this for the test phase).
    • --skip=<region1>,<region2> excludes regions when publishing to all (use this for the rollout phase, e.g. --skip=me-south-1 to skip a region whose binaries are intentionally not being updated).
    • Omit both flags to publish to every region in getRegions().
  • The eval and the bun command must run in the same shell invocation (chain with &&), since the env vars do not persist across Bash tool 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 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 the rollout phase.
  • If you invoked the script with --skip=<region>, leave those skipped regions untouched in hosted-layers.ts.
  • Update Chrome version references throughout the codebase. Ask the user for both the Chrome version (e.g. 149.0.7790.0) and the corresponding Playwright revision (look it up in https://github.com/microsoft/playwright/blob/main/packages/playwright-core/browsers.json if the user does not provide it — match by browserVersion). Files to update:
    • packages/renderer/src/browser/get-chrome-download-url.ts: TESTED_VERSION constant, PLAYWRIGHT_VERSION constant, and the trailing // <version> comment on the PLAYWRIGHT_VERSION line. Also update the two hard-coded https://remotion.media/chromium-headless-shell-amazon-linux-{arm64,x64}-<version>.zip URLs — but first verify the new binaries exist by running curl -sI against the new URLs (and the templated chromium-headless-shell-linux-{arm64,x64}-<version>.zip?clearcache URLs that follow TESTED_VERSION). Only proceed when all return HTTP 200; otherwise ask the user to upload the missing builds to remotion.media first.
    • 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 with cat packages/core/package.json | grep '"version"' 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 the example code blocks.
  • Run the Docker matrix tests in packages/dockerfiles/ (./run.sh) against the new Chrome binary. Each Dockerfile renders two compositions from the BrowserTestRoot: browser-test (Three.js / WebGL / codec smoke test) and html-in-canvas (experimental WICG drawElementImage() + canvas.requestPaint() APIs). Outputs land in packages/dockerfiles/out/<platform>.mp4 and packages/dockerfiles/out/<platform>-html-in-canvas.mp4. Make sure Docker Desktop is running first.
  • The Dockerfiles install the local workspace build of @remotion/cli + transitive deps (not the published version), so source changes in @remotion/renderer (e.g. new Chrome flags) are picked up before publishing. run.sh runs pack-cli.ts which auto-walks @remotion/cli's transitive workspace:* deps, runs bun pm pack for each into packages/dockerfiles/tarballs/, and emits local-cli-package.json (lists every tarball as a direct dep AND in overrides, to force resolution to the local copies). Each Dockerfile then COPYs tarballs/ and local-cli-package.json and runs bun install + adds node_modules/.bin to PATH.
  • If a new composition is added to the Docker test matrix, register it in packages/example/src/BrowserTestRoot.tsx (so it is included in the bundle built from src/browser-test-entry.ts) and add a corresponding RUN remotion render /usr/app/bundle <id> /usr/app/<filename>.mp4 line + docker cp extraction in run.sh.
  • The html-in-canvas composition's runtime check (packages/example/src/HtmlInCanvas/html-in-canvas.tsx) requires both ctx.drawElementImage and canvas.requestPaint, which Chrome 149+ exposes when --enable-features=CanvasDrawElement is passed (already wired into featuresToEnable() at packages/renderer/src/open-browser.ts:50). 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 — e.g. the Dockerfiles are using a published @remotion/cli whose TESTED_VERSION predates the new Chrome, so it re-downloads the older binary on top of the one ensure.mjs already fetched. The local-tarball install path in pack-cli.ts + local-cli-package.json is what guarantees ensure.mjs and the render CLI agree on the same TESTED_VERSION.
  • Do not proceed to publishing all regions until the test region has been verified end-to-end.

Read the full file on GitHub · 22 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 6d ago First seen · 22 lines · 0 tokens per session scan A 64423d130f24

Subscribe to this mod's changes

update-chrome-binaries-test-region is a command published in the GitHub repository MoizIbnYousaf/marketing-cli (31 stars, last pushed 24d ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 1,455 tokens. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.