Support Policy

Operating Systems

turbo is generally supported on Debian-based Linux distributions, macOS, and Windows on both x86_64 and ARM 64 architectures. Specifically, we build and ship the following binaries via npm:

  • turbo-darwin-64 (macOS with Intel chips)
  • turbo-darwin-arm64 (macOS with Apple Silicon)
  • turbo-linux-64
  • turbo-linux-arm64
  • turbo-windows-64
  • turbo-windows-arm64

Darwin builds are intended for macOS on Intel and Apple Silicon. Linux builds are tested on Ubuntu, but we expect them to work on most Debian-based (opens in a new tab) distros. Windows builds are tested on the windows-latest runner (opens in a new tab) in GitHub Actions.

Unsupported Platforms

Running turbo on unsupported platforms is possible by compiling from source. Instructions are available in the contributing guide (opens in a new tab). The built source is a single binary, so instead of installing and invoking via your Node.js package manager (e.g. npm install turbo), you will run the turbo binary directly:

/path/to/turbo run build

Since such invocations of turbo also defer to a locally installed turbo in your node_modules directory, if you're attempting to run turbo on a JavaScript project with turbo in package.json dependencies, use the --skip-infer flag to skip the deferal to the locally installed binary.

Node.js Compatibility

Most core turbo functionality (especially turbo run) does not depend on the active Node.js version on your system, but some features of Turborepo and its ecosystem such as create-turbo, turbo-ignore, and eslint-plugin-turbo do. For these features, we intend to support the Active and Maintenance LTS versions of Node.js (opens in a new tab).

All of our examples are also expected to work with these versions.

Package Managers

Core turbo functionality depends on the package managers in the JS ecosystem and their implementations of workspace configuration (in monorepos) and lockfiles formats. We intend to support:

  • npm (v6+)
  • yarn (v1+) (v4 partially supported)
  • pnpm (v6+)
  • bun (v1+) (beta, doesn't support all features)

It should be noted that package managers themselves have their own release schedules, bugs, and features. While we intend to keep up with new major versions, we may not release support immediately.

Version Control

We support repositories that are version controlled with .git and repositories that don't have version control at all. Any other version control system will be ignored. Note that we use git to hash files, so repositories without git may perform and behave differently.


Turborepo "loosely" follows SemVer policy. This means that we generally do not expect to make intentional "breaking" changes in patch or minor versions.

Some exceptions to this may be:

  • Configuration changes in turbo.json.

    These should usually be accompanied by a codemod that you can run with npx @turbo/codemod update and with at least one minor release that includes a deprecation message.

  • Intentional behavioral changes to turbo's CLI commands.

    These should land in minor releases. If the change is large or disruptive enough, we may include flags to opt into the previous behavior.