Skip to content

Monorepos

Buttons scans package.json and composer.json files in nested directories, so a monorepo is handled naturally:

project/
├── package.json
├── apps/
│ └── web/package.json
├── packages/
│ └── api/package.json
└── plugin/composer.json

Each script’s terminal is opened with its working directory set to the script’s packageDir, so pnpm dev in apps/web runs in the right place. Nested packages are assumed to share the workspace’s package manager.

Scripts from nested packages show up in the Project scripts tab with their relative path — for example packages/api/package.json — and are stored in .buttons.json with their packageDir and file fields set accordingly. See .buttons.json for the exact format.

Installed packages, VCS, and build output are skipped during discovery so only your own source is scanned. For the full list, see Script scanning.