Windows Support
Boilerplate runs natively on Windows. Pre-built binaries are available for windows_amd64 and can be downloaded from the GitHub releases page.
Most features work identically across macOS, Linux, and Windows. The sections below cover the differences you should be aware of.
Path Length Limits
Section titled “Path Length Limits”Windows imposes a default maximum file path length of 260 characters. Boilerplate works around this by converting temporary paths to UNC extended-length form (\\?\), but deeply nested template dependencies or long project names can still hit this limit in the generated output.
Recommendations:
- Keep your
--output-folderpath short (e.g.C:\outinstead ofC:\Users\myname\Documents\Projects\generated-output) - Avoid deeply nesting dependencies when the output folder paths are already long
- On Windows 10 (version 1607+) and Windows 11, you can remove the 260-character limit entirely by enabling the LongPathsEnabled registry key or group policy
Reserved File Names
Section titled “Reserved File Names”Windows reserves certain file names that cannot be used for files or folders regardless of extension: CON, PRN, AUX, NUL, COM0-COM9, and LPT0-LPT9.
If your templates generate files with these names (e.g. NUL.txt, CON.md), the output will fail on Windows even though it works on macOS and Linux. Avoid using these names in your template file paths and output folder names.
Pipe Character in File Names
Section titled “Pipe Character in File Names”The | character is illegal in Windows file names. Boilerplate supports URL-encoded characters in template file paths as a workaround. If you have a template file path that would normally contain |, use %7C instead.
Shell Helper
Section titled “Shell Helper”The shell template helper executes commands using the system shell. On Windows, commands run through cmd.exe rather than a Unix shell. Keep this in mind when writing hooks or using shell in templates:
- Use Windows-compatible commands or write cross-platform scripts
- Paths in shell commands should use backslashes (
\) or forward slashes (/), which Windows generally accepts - Environment variable syntax differs:
%VAR%incmd.exevs$VARin bash
SSH-Based Templates
Section titled “SSH-Based Templates”Cloning remote templates over SSH on Windows may fail due to file name compatibility issues in certain Git repositories. If you run into errors, try using HTTPS URLs instead.