google

    google/zx

    #280 this week

    A tool for writing better scripts

    cli
    backend
    bash
    child-process
    exec
    javascript
    nodejs
    JavaScript
    Apache-2.0
    45.7K stars
    1.3K forks
    45.7K GitHub watchers
    Updated 9/8/2026
    View on GitHub

    Build with Backblaze B2

    SDKs, agent skills, IDE extensions, and reference pipelines from Backblaze Labs. All open source.

    Explore Backblaze Labs

    Loading star history...

    Use Cases & Benefits

    • Provides a JavaScript-based tool for writing and running shell scripts with improved syntax and cross-platform support.
    • Simplifies complex scripting by wrapping child process execution with argument escaping and sensible defaults in JavaScript.
    • Use for automating shell commands in Node.js projects with cleaner, more readable code than traditional bash scripts.
    • Use for running parallel asynchronous shell commands easily within JavaScript using Promise-based syntax.
    • Use for cross-platform script development compatible with Linux, macOS, Windows, and multiple JavaScript runtimes.

    About zx

    Zx logo zx

    #!/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

    npm install zx
    

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

    Usage

    Compatibility

    License

    Apache-2.0

    Disclaimer: This is not an officially supported Google product.

    Discover Repositories

    Search across tracked repositories by name or description