Boiler
Code Once. Reuse Forever.
Store reusable code snippets and project templates locally. Automatic versioning, template variables, zero config.

Documentation • Use Cases
Why Boiler?
Stop installing entire packages for one function. Stop copy-pasting code between projects.
# Store once
bl store ./utils/errorHandler.js
# Reuse anywhere
bl add errorHandler
Perfect for: Utility functions, config files, project boilerplates, API templates.
Installation
Windows:
iwr -useb https://boiler.iamabhinav.dev/install | iex
Linux / macOS:
curl -fsSL https://boiler.iamabhinav.dev/install | bash
npm (all platforms):
npm install -g @boilercli/core
Verify:
bl version
Quick Start
# 1. Store a file as snippet
bl store ./middleware/auth.js
# ✓ Stored snippet 'auth@1.js' at ~/.boiler/store/...
# 2. Add to any project
bl add auth
# ✓ Added snippet 'auth@1.js' to boiler/auth.js
# 3. Store a directory as stack (bl init required first)
cd ./my-template
bl init # creates boiler.stack.json
bl store # stores it
# 4. Add a stack
bl add my-template
# ✓ Added stack 'my-template@1' to boiler/my-template
# 5. List everything
bl ls
Template Variables
Create configurable snippets:
// errorHandler.js
// __var bl__LOG_LEVEL = error
// __var bl__EMAIL = admin@example.com
function handleError(err) {
console[bl__LOG_LEVEL](err.message);
sendEmail('bl__EMAIL', err);
}
bl add errorHandler
# bl__LOG_LEVEL [error]: warn
# bl__EMAIL [admin@example.com]: dev@app.com
# ✓ Added snippet 'errorHandler@1.js' to boiler/errorHandler.js
# (metadata stripped, variables replaced)
Features
- ✅ Automatic Versioning -
@1, @2, etc.
- ✅ Template Variables -
bl__VAR_NAME syntax with prompts
- ✅ Reusable Config Vars -
bl var KEY=value and :KEY references in commands
- ✅ Remote Fetching - GitHub, GitLab, Bitbucket, custom registries, direct URLs
- ✅ Language Agnostic - JS, Python, Go, Java, TS, Rust, C++, etc.
- ✅ Stack Templates - Store entire project folders
- ✅ Zero Config - Works immediately after install
- ✅ Cross-Platform - Windows, Linux, macOS
- ✅ Self-Updating -
bl self update
Remote Fetching
Pull snippets and stacks from anywhere — provider is auto-detected from the URL:
# GitHub (short format)
bl add rishiyaduwanshi/boiler-express -r
# GitHub (full URL)
bl add https://github.com/alice/my-stack -r
# GitLab
bl add https://gitlab.com/alice/my-stack -r
# Bitbucket
bl add https://bitbucket.org/alice/my-stack -r
# File from GitHub repo (snippet)
bl add alice/snippets:js/errorHandler.js -r
# Direct archive URL
bl add https://mysite.com/template.zip -r
# From configured registry
bl conf --set-registry https://github.com/myteam/boiler
bl add express@1 -r
One-shot fetch (no local store):
bl use alice/my-stack
bl use https://gitlab.com/alice/my-stack
bl use https://mysite.com/template.zip
Commands
bl init # Initialize stack/snippet config
bl store [path] # Store file/folder
bl add [path] # Add snippet/stack (default destination: ./boiler)
bl add --spread # Spread stack contents into destination
bl alias [k|k=v] # List, get, or set command aliases
bl unalias # Remove a command alias
bl var [k|k=v] # List, get, or set reusable variables
bl unvar # Remove a reusable variable
bl use [path] # One-shot remote fetch (no local store saved)
bl ls # List all resources
bl search # Search by name (-r to search remote)
bl info # Show resource details
bl clean # Remove resources
bl path # Show installation paths
bl conf # View/edit configuration
bl self update # Update Boiler to latest
bl self uninstall # Uninstall Boiler
bl version # Show version
bl --help # Full command list
Full docs: boiler.iamabhinav.dev
Contributing
git clone https://github.com/rishiyaduwanshi/boiler.git
cd boiler
go build -o bl main.go
See CONTRIBUTING.md for guidelines.
For security reporting, see SECURITY.md.
License
Apache-2.0 © Abhinav Prakash