Build Less. Ship More.
Fetch code from anywhere. Scaffold full features in one command. Reuse everything across every project.
Pre-release - v0.x.x - Feel free to use it, break it. Every idea and bug report shapes what we build next.
Open an issue or start a discussion anytime.
bl gi Node # Node.js
bl gi Python # Python
bl gi Go # Go
bl gi Global/macOS # macOS global
bl gi community/JetBrains+all # JetBrains IDEsNo browser, no copy-paste. Powered by the official github/gitignore repo with 225+ popular templates and 300+ community templates.
# Grab a single file from any public repo
bl use alice/snippets:js/errorHandler.js ./src/utils
# Grab a specific subfolder as a project template
bl use vercel/next.js:examples/blog ./my-blog
# Entire repo (no clone, no zip download)
bl use rishiyaduwanshi/express-starter ./my-api
# From GitLab or any direct URL
bl use https://gitlab.com/myorg/templates:Dockerfile .Write a .bl script that creates routes, controllers, and auto-wires them into your existing codebase:
bl new feat user
# ✓ Created src/routes/user.route.js
# ✓ Created src/controllers/user.controller.js
# ✓ Injected import into src/api.js
# ✓ Injected app.use('/user', userRouter) into src/api.js# bl/commands/feat.bl
__var bl__feature = bl__1.lowercase()
__var bl__Feature = bl__1.capitalize()
add route.js ./src/routes/bl__feature.route.js --local
add controller.js ./src/controllers/bl__feature.controller.js --local
inject ./src/api.js -d imports -a -c `
import bl__featureRouter from './routes/bl__feature.route.js';
`
inject ./src/api.js -d routes -a -c `
app.use('/bl__feature', bl__featureRouter);
`# Store a snippet with template variables
bl store utils/dbConnect.js
# ✓ Stored snippet 'dbConnect@1.js'
# Reuse in any project
cd ~/new-service
bl add dbConnect ./src
# bl__DB_URL [mongodb://localhost:27017]: ...
# ✓ Added snippet → ./src/dbConnect.jsVariables replaced. Metadata stripped. Clean code, ready to use.
Windows:
iwr -useb https://boiler.iamabhinav.dev/install | iexLinux / macOS:
curl -fsSL https://boiler.iamabhinav.dev/install | bashnpm (all platforms):
npm install -g @boilercli/coreVerify:
bl version- ✅ Remote Fetching - GitHub, GitLab, Bitbucket, direct URLs, custom registries
- ✅ Zero-Clone - Pull individual files or entire repos without
git clone - ✅ Automation Scripts -
.blscripts scaffold multiple files and inject code - ✅ Template Variables -
bl__VAR_NAMEsyntax with interactive prompts - ✅ Built-in
giAlias - 500+ gitignore templates viabl gi <language> - ✅ Aliases + Vars - Build your own one-word power commands
- ✅ Local & Global Stores - Per-project
bl/directory or global~/.boiler - ✅ Automatic Versioning -
@1,@2, etc. per resource - ✅ Language Agnostic - JS, Python, Go, Rust, Java, Docker, configs - anything
- ✅ Framework Agnostic - Express, Next.js, Django, Spring, whatever you use
- ✅ OS Agnostic - Windows, Linux, macOS
- ✅ Self-Updating -
bl self update
bl store <file> # Store a file as snippet
bl store <folder> # Store a directory as stack (bl init required first)
bl add <name> [path] # Add snippet or stack (default: ./boiler)
bl add <name> -r # Fetch from remote and save to local store
bl use <url-or-repo> [path] # One-shot fetch - no local caching
bl gi <language> # Instant gitignore (bl gi Node, bl gi Python, etc.)
bl new <script> [args] # Run a .bl automation script
bl ls # List all stored resources
bl search <query> [-r] # Search local or remote store
bl info <name> # Show resource details
bl alias [k=v] # Create a command shortcut
bl var [k=v] # Set a reusable variable
bl init # Initialize stack/snippet config
bl conf # View or edit configuration
bl clean # Remove resources from store
bl path # Show installation paths
bl self update # Update Boiler to latest
bl self uninstall # Uninstall Boiler
bl version # Show versionFull docs: boiler.iamabhinav.dev
For project-specific templates that shouldn't be in your global store:
bl init -c # Creates boiler.local.json with scope: localmy-project/
├── boiler.local.json ← scope: local
└── bl/
├── commands/
│ └── cmp.bl ← bl new cmp <ComponentName>
└── snippets/
└── component.jsx ← local template
All bl commands automatically use bl/ instead of ~/.boiler/ when scope: local is set.
Host a shared snippet library on GitHub. Any developer pulls standardized patterns in seconds:
# One-time setup
bl conf --set-registry https://github.com/myteam/boiler-snippets
# Pull approved patterns (cached locally for offline use)
bl add jwtAuth -r
bl add rateLimiter -r
bl add mongoConfig -rgit clone https://github.com/rishiyaduwanshi/boiler.git
cd boiler
mise run setup # Install deps and hooks
mise run dev # Build development binarySee CONTRIBUTING.md for guidelines. For security reporting, see SECURITY.md.
Apache-2.0 © Abhinav Prakash