google

    google/zx

    A tool for writing better scripts

    cli
    backend
    bash
    child-process
    exec
    javascript
    nodejs
    pipe
    shell
    spawn
    JavaScript
    Apache-2.0
    45.2K stars
    1.2K forks
    45.2K watching
    Updated 2/27/2026
    View on GitHub
    Backblaze Advertisement

    Loading star history...

    Health Score

    75

    Weekly Growth

    +0

    +0.0% this week

    Contributors

    1

    Total contributors

    Open Issues

    36

    Generated Insights

    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