# Install zx with Homebrew, apt, Nix

Tool for writing better scripts. Version 8.8.5 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:zx
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install zx
```

  Evidence: local Homebrew formula metadata

### Linux

- Debian apt (92%):

```sh
sudo apt install zx
```

  Evidence: Debian stable package indexes: zx from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

- Nix (92%):

```sh
nix profile install nixpkgs#zx
```

  Evidence: nixpkgs package indexes: pkgs/by-name/zx/zx/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:zx
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/zx>
- **Version:** 8.8.5
- **Source summary:** Tool for writing better scripts
- **Homepage:** <https://google.github.io/zx/>
- **Repository:** <https://github.com/google/zx>
- **Upstream docs:** <https://google.github.io/zx>
- **License:** Apache-2.0
- **Source archive:** <https://registry.npmjs.org/zx/-/zx-8.8.5.tgz>
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- zx (cli)
- zx (alias)

## Dependencies

- node

## Install behavior

- Post-install hook: not defined
- Bottle: available on all

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 8.8.5
- Local data: ok
- Upstream repository: https://google.github.io/zx/
- info: No package-manager update timestamp was available.
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

zx is Google's JavaScript shell-scripting tool, created to make operational scripts feel like shell while giving authors modern JavaScript, promises, package imports, and safer command interpolation.

### Project history

The google/zx repository began in May 2021, with Anton Medvedev listed as package author. Its core idea is the `$` tagged template: commands look shell-like, but arguments are escaped and execution is wrapped in a ProcessPromise API rather than raw child_process boilerplate.

The project evolved from a Node-oriented helper into a broader runtime tool. The README now documents Linux, macOS, and Windows support plus Node, Bun, Deno, and GraalVM compatibility; later documentation added TypeScript, markdown scripts, remote scripts, dependency auto-installation, and a lighter zx@lite entry point.

### Adoption history

zx spread quickly because it hit a common pain point for JavaScript-heavy teams: build, release, migration, and glue scripts often outgrow bash, but plain Node scripts are verbose for process execution. Its GitHub repository has tens of thousands of stars, and the package became recognizable enough to be installed both from JavaScript tooling and system package managers.

The adoption pattern is strongest around project-local automation rather than end-user CLI apps. Teams use zx when they want scripts to live beside package.json, call existing Unix tools, await concurrent commands, and reuse npm libraries without switching to a task runner framework.

### How it is used

A zx script is commonly run with `zx script.mjs`, `npx zx`, a shebang using `/usr/bin/env zx`, or a package.json script. The CLI can execute ordinary files, extensionless scripts, markdown code blocks, stdin, eval snippets, and remote URLs, while flags control shell choice, verbosity, local dependency preference, and on-demand package installation.

In practice zx is used for release scripts, deployment wrappers, repository maintenance, monorepo chores, code-generation glue, CI helpers, and one-off administrative scripts where the author wants shell commands plus JavaScript data handling.

### Why package nerds care

zx is package-nerd significant because it blurred the line between a language package and a system scripting tool. It made `npm install zx` feel like installing a better shell harness, and it became a reference point for the idea that developer automation can be distributed as a normal package while still acting like a Unix command.

### Timeline

- 2021-05: google/zx public git history starts.
- 2021-05: Early 1.x releases establish the `$` template shell API.
- 2022-03: 6.0.0 release era adds broader CLI packaging and workflow polish.
- 2024-04: 8.0.0 release era continues the modern runtime and TypeScript-focused evolution.
- 2025-10: GitHub lists 8.8.5 as a recent release, with ongoing maintenance.

### Related projects

- Node.js child_process: the standard library surface zx wraps for scripts.
- Bash and PowerShell: the shells zx invokes rather than fully replacing.
- Bun and Deno: alternative JavaScript runtimes supported by current zx documentation.

### Sources

- <https://github.com/google/zx>
- <https://google.github.io/zx/cli>
- <https://google.github.io/zx/getting-started>
- <https://raw.githubusercontent.com/google/zx/main/package.json>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** zx
- **Version Scheme:** 0
- **Revision:** 0
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Debian apt - zx - 7.1.1+~cs6.7.23-3: normalized package name match | Debian stable package indexes: zx from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | tool to launch modern Javascript scripts | https://github.com/google/zx#readme
- Nix - zx: normalized package name match | nixpkgs package indexes: pkgs/by-name/zx/zx/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- Ubuntu apt - zx - 7.1.1+~cs6.7.23-3: normalized package name match | Ubuntu 24.04 LTS package indexes: zx from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | tool to launch modern Javascript scripts | https://github.com/google/zx#readme


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [node](https://www.automicvault.com/pkg/brew/node/) - Runtime dependency declared by Homebrew.
- [objc-run](https://www.automicvault.com/pkg/brew/objc-run/) - Shares av.db curated category or tags: cli, developer-tools, scripting.
- [rust-script](https://www.automicvault.com/pkg/brew/rust-script/) - Shares av.db curated category or tags: cli, developer-tools, scripting.
- [scriptisto](https://www.automicvault.com/pkg/brew/scriptisto/) - Shares av.db curated category or tags: cli, developer-tools, scripting.
- [swift-sh](https://www.automicvault.com/pkg/brew/swift-sh/) - Shares av.db curated category or tags: cli, developer-tools, scripting.
- [bar](https://www.automicvault.com/pkg/brew/bar/) - Shares av.db curated category or tags: cli, developer-tools, scripting, shell.
- [bash-language-server](https://www.automicvault.com/pkg/brew/bash-language-server/) - Shares av.db curated category or tags: bash, cli, developer-tools, shell.
- [bashdb](https://www.automicvault.com/pkg/brew/bashdb/) - Shares av.db curated category or tags: bash, cli, developer-tools, shell.
- [beautysh](https://www.automicvault.com/pkg/brew/beautysh/) - Shares av.db curated category or tags: bash, cli, developer-tools, shell.
- [zx](https://www.automicvault.com/pkg/npm/zx/) - Same normalized package name appears in another local ecosystem. Shared terms: bash, better, cli, developer, developer-tools.
- [chalk-cli](https://www.automicvault.com/pkg/brew/chalk-cli/) - Both packages touch the same language runtime or ecosystem. Shared terms: cli, developer, developer-tools, javascript, node.
- [zx](https://www.automicvault.com/pkg/npm/zx/) - Same normalized package name in another local ecosystem.

## Combined YAML source

View the package source record on GitHub. [combined/zx.yml](https://github.com/automic-vault/db/blob/main/combined/zx.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
