release notes
release notes
Published 4/1/2025
MinorContains breaking changesIn this release we're significantly expanding the zx setup capabilities.
Just core functions without extras, ~7x smaller than the full version. #1131
npm i zx@lite
npm i zx@8.5.0-lite
Detailed comparison: zx/versions
import { $ } from 'zx'
await $`echo foo`
We have completely reforged the distribution flow. Now zx is available in multiple formats:
# npm pkg from registry.npmjs.org
npm i zx
# install directly from the GH
npm i google/zx
# from GH the npm registry
npm i --registry=https://npm.pkg.github.com @google/zx
# fetch from the JSR
# https://jsr.io/docs/using-packages
# [@webpod](https://github.com/webpod) is temporary JSR scope until @google/zx becomes ready, we'll migrate later
npx jsr add @webpod/zx
deno add jsr:@webpod/zx
# homebrew formula
# https://github.com/Homebrew/homebrew-core/blob/master/Formula/z/zx.rb
brew install zx
If you'd prefer to run zx in a container, you can pull the image from the GH docker registry. node:22-alpine is used as a base. #1142 #1145
docker pull ghcr.io/google/zx:8.5.0
docker run -t ghcr.io/google/zx:8.5.0 -e="await \$({verbose: true})\`echo foo\`"
docker run -t -i -v ./:/script ghcr.io/google/zx:8.5.0 script/t.js
const p1 = fetch('https://example.com').pipe($`cat`)
const p2 = fetch('https://example.com').pipe`cat`
glob.sync shortcut #1135import { glob } from 'zx'
const packages = glob.sync(['package.json', 'packages/*/package.json'])
ZX_REGISTRY='https://custom-registry.example.com' zx script.js
release notes
Published 4/1/2025
MinorContains breaking changesIn this release we're significantly expanding the zx setup capabilities.
Just core functions without extras, ~7x smaller than the full version. #1131
npm i zx@lite
npm i zx@8.5.0-lite
Detailed comparison: zx/versions
import { $ } from 'zx'
await $`echo foo`
We have completely reforged the distribution flow. Now zx is available in multiple formats:
# npm pkg from registry.npmjs.org
npm i zx
# install directly from the GH
npm i google/zx
# from GH the npm registry
npm i --registry=https://npm.pkg.github.com @google/zx
# fetch from the JSR
# https://jsr.io/docs/using-packages
# [@webpod](https://github.com/webpod) is temporary JSR scope until @google/zx becomes ready, we'll migrate later
npx jsr add @webpod/zx
deno add jsr:@webpod/zx
# homebrew formula
# https://github.com/Homebrew/homebrew-core/blob/master/Formula/z/zx.rb
brew install zx
If you'd prefer to run zx in a container, you can pull the image from the GH docker registry. node:22-alpine is used as a base. #1142 #1145
docker pull ghcr.io/google/zx:8.5.0
docker run -t ghcr.io/google/zx:8.5.0 -e="await \$({verbose: true})\`echo foo\`"
docker run -t -i -v ./:/script ghcr.io/google/zx:8.5.0 script/t.js
const p1 = fetch('https://example.com').pipe($`cat`)
const p2 = fetch('https://example.com').pipe`cat`
glob.sync shortcut #1135import { glob } from 'zx'
const packages = glob.sync(['package.json', 'packages/*/package.json'])
ZX_REGISTRY='https://custom-registry.example.com' zx script.js
A tool for writing better scripts