Skip to content

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.

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-folder path short (e.g. C:\out instead of C:\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

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.

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.

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% in cmd.exe vs $VAR in bash

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.