BoilerSync Ensemble Guide
BoilerSync treats boilerplate as a living system: scaffold from templates, evolve projects, then promote proven improvements back into templates.
This guide covers only:
- Getting started
- CLI commands
- Desktop app workflow (
boilersync-desktop) - Extension workflow (Cursor/VS Code)
If auto-generated API docs are added in the future, link them from README.md; this guide does not include a hand-written API reference.
For template template.json metadata fields and examples, see template-metadata.md.
Getting Started
Prerequisites
gitinstalledboilersyncavailable on PATH- Optional but recommended: GitHub Desktop for the
pushreview flow - Optional for template-configured repo creation: GitHub CLI (
gh) authenticated
First Run
# Clone template source repo into local cache
boilersync templates init https://github.com/your-org/your-templates.git
# Initialize a project from a source-qualified template
boilersync init your-org/your-templates#python/service-template
# Pull template updates later
boilersync pull
# Push committed project changes back to template source
boilersync push
Template Reference Formats
org/repo#subdirhttps://github.com/org/repo#subdirhttps://github.com/org/repo.git#subdir
Template cache root defaults to:
~/.boilersync/templates
Override with:
BOILERSYNC_TEMPLATE_DIR=/custom/path
BoilerSync writes .boilersync metadata in project roots after scaffold/pull so future sync operations can resolve template provenance.
For the exact schema, see project-metadata.md.
CLI Commands
boilersync init TEMPLATE_REF
Use for first-time project generation.
- Requires an empty target directory
- Supports
--var KEY=VALUEfor template inputs, includingname_snake/name_pretty, and non-interactive mode (--non-interactive, alias--no-input) - Uses
template.jsondefaultsbefore prompting, so well-defaulted templates can be bootstrapped with one command after creating and entering the target directory - Infers
name_snakefrom the target directory and strips a trailing-workspace/_workspacesuffix - Attempts to infer
github_userfromgh api user --jq .loginwhen a template referencesgithub_user - Resolves source-qualified refs
- Can run configured hooks and initialize child templates
boilersync pull [TEMPLATE_REF]
Use to apply template changes into an existing project.
- Uses nearest
.boilersyncwhenTEMPLATE_REFis omitted - Supports inheritance from
template.json(extends/parent) - Excludes
.starterfiles by default (--include-starterto include) - Pulls child projects by default (
--no-childrento skip)
boilersync push
Use to promote committed project improvements back to template source.
- Creates a comparison workspace for template/project diff review
- Copies only committed changes back into the template source
- Supports
--add-filesfor explicit additional file inclusion
boilersync templates init
Use to initialize the local template source cache.
- Clones template source repositories into the BoilerSync template root
- Supports org/repo shorthand and GitHub HTTPS URLs
- Supports non-interactive mode (
--no-input)
Desktop App Workflow (boilersync-desktop)
Use Desktop as the git-focused review and commit surface around CLI actions.
- Run
boilersync pullorboilersync pushfrom project roots. - Open
boilersync-desktopto inspect diffs across tracked repositories. - Stage exact files/lines, commit, and push.
- Return to CLI for the next template lifecycle action.
This pattern keeps template evolution auditable and reduces accidental broad commits.
Extension Workflow (Cursor/VS Code)
Use extension workflows for editing speed; keep CLI metadata and behavior canonical.
- Author and refactor template/project code in Cursor or VS Code.
- Trigger CLI lifecycle operations (
init,pull,push) from terminal/tasks. - Optionally hand off to Desktop via deep link:
boilersync://open?path=/absolute/path. - Treat
.boilersyncplus CLI command outputs as the source of truth.