A small personal project bootstrapper. The first template is a CMake-first JUCE plugin project that references a shared local JUCE checkout instead of cloning JUCE into every generated project.
Run from this repository:
uv run bb new juce-plugin MyDelay --dry-run
uv run bb new juce-plugin MyDelay
uv run bb new tracktion-sandbox ClipRenderTest
uv run bb new juce-plugin .By default, bb new creates the project in the current directory. Passing .
uses the current directory as the project and requires it to be empty. Use
--default-dir to create under the configured projects_dir.
Or install an editable console script:
uv tool install --editable .
bb new juce-plugin MyDelayBootstrapBot looks for config at:
~/.config/bootstrapbot/config.toml
Example:
projects_dir = "~/Projects"
author = "Tyler Teuber"
company = "Your Company"
bundle_prefix = "com.yourcompany"
juce_dir = "~/Developer/AudioDeps/JUCE"
tracktion_engine_dir = "~/Developer/AudioDeps/tracktion_engine"
manufacturer_code = "Ycmp"CLI flags override config values.
Check your local setup:
uv run bb doctorThe doctor checks for CMake, Ninja, git, and the configured shared audio dependency checkouts.
The config accepts ~, so the same config shape works on macOS, Linux, and a
Raspberry Pi with a different home directory.
The generated project uses:
./build
./build AU
./run StandaloneGenerated projects read JUCE_DIR from the environment, so one shared JUCE
checkout can be used across experiments without vendoring JUCE into each
project.
On macOS, new JUCE plugins default to VST3, AU, and Standalone. On Linux,
including Raspberry Pi OS, new plugins default to VST3 and Standalone
because AU is macOS-only.
Available presets:
debugreleaserelwithdebinfo
The template name is tracktion-sandbox.
Generated Tracktion projects read this environment variable:
export JUCE_DIR="$HOME/Developer/AudioDeps/JUCE"
export TRACKTION_ENGINE_DIR="$HOME/Developer/AudioDeps/tracktion_engine"The generated project uses:
./build
./run