google /zx

A tool for writing better scripts

★ 45,835⑂ 1,330👁 162⑃ 872● 522▤ 100◈ 100
JavaScriptApache-2.0Created 2021-05-05google.github.io/zx/
45,835
stars
+1+2+61
1,330
forks
162
watchers
872
prs
522
issues
100
releases
100
discussions

README

zx

js
!/usr/bin/env zx

await $cat package.json | grep name

const branch = await $git branch --show-current
await $dep deploy --branch=${branch}

await Promise.all([
  $sleep 1; echo 1,
  $sleep 2; echo 2,
  $sleep 3; echo 3,
])

const name = 'foo bar'
await $mkdir /tmp/${name}


Bash is great, but when it comes to writing more complex scripts,
many people prefer a more convenient programming language.
JavaScript is a perfect choice, but the Node.js standard library
requires additional hassle before using. No compromise, take the best of both. The zx package provides
useful cross-platform wrappers around child_process, escapes arguments and
gives sensible defaults.

 Install

bash
npm install zx

All setup options: zx/setup.
See also zx@lite.

 Usage

 Documentation at google.github.io/zx/
 Code examples

 Compatibility
 Linux, macOS, or Windows
 JavaScript Runtime:
     Node.js = 12.20.0
     Bun = 1.0.0
     Deno 1.x, 2.x
     GraalVM Node.js
     Electron = 11
 Bash or PowerShell
 Both CJS or ESM modules in JS or TS


 See also

- Ant - A small language with TypeScript-like syntax, and goroutine-style concurrency.

 License

Apache-2.0

Disclaimer: _This is not an officially supported Google product._

Top issues

Discussions

Latest release

8.8.5 — Temporary Reservoir 8.8.5 2025-10-19
This release fixes the issue, when zx flushes external node_modules on linking  1348 1349 1355

Also [email protected] arrives here.

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON