⚠️ Deprecated Package

bun-workspaces has been deprecated and is now developed as pacwich, which supports Bun, npm, and pnpm workspaces, with a mostly backwards compatible CLI and API. Users can expect little to no disruption beyond the package name change and config file name changes.

A full migration guide covering all differences between the packages is available at https://pacwich.dev/intro/bun-workspaces-migration

Installation docs are available at https://pacwich.dev/intro/getting-started

You can also instruct an LLM agent to read https://pacwich.dev/intro/bun-workspaces-migration/index.md to assist with migration.

Read the launch blog post about the motivations and development strategy.

bun-workspaces will not receive further releases save for critical security patches, if necessary. This website will stay up at least through 2026. Once decommissioned, documentation will be consolidated to the package README.

Roadmap

Guiding Principles

We aim to preserve these goals and values for the life of this project.

Easy integration

  • No special configuration files required to get started
  • Simple, straightforward package structure
  • Anti-lock-in philosophy: No complexity for the sake of user retention

Parity between the CLI and API

  • What is possible with the CLI should be possible with the API, and vice versa, with minimal exception

Thorough documentation

  • All functionality accounted for in this website
  • Intellisense for all API features
  • CLI usage/help documentation for all commands

Aggressive defense against regression

  • Features aren't added without test additions
  • Bugs aren't fixed without test additions

Core features remain free

  • No artificial paywalls for the local features of the package

Goals

An "affected workspaces" feature

  • This refers to the ability to detect which workspaces are affected by code changes
  • This feature will likely be released as experimental
  • The workspace dependency graph will be used to determine which workspaces are implicitly affected by another's change
  • It should be possible to pass git refs as the basis of comparison for changes or a simple list of files

A type generation feature

  • The ability to generate TypeScript types specific to your project, similar to Chakra UI's typegen feature, such as for workspace and script names

A local cache

  • The ability to cache the outputs of scripts based on given inputs, for performance

More advanced script orchestration

  • The ability to flexibly compose subsets of workspaces and scripts into more complex workflows