BootstrapMe is a universal CLI tool to bootstrap projects in various languages and frameworks. It reads YAML configuration files from ~/.config/bootstrapme/<language>/<framework>.yaml and guides you through selecting a language, framework, and optionally asking for details like username or project name before running the necessary steps.
sudo bash install.sh
- Supports multiple languages and frameworks.
- Automatically runs post-install commands.
- Uses template variables (
{{ variable_name }}) in commands and files. - Modern TUI with Lipgloss styling and ASCII art title.
- Error lines highlighted in red for easy debugging.
- Can run non-interactively by supplying defaults to external bootstrap tools (like
create-next-app).
Directory: ~/.config/bootstrapme/<language>/<name>.yaml
Example (Go + Gin):
# ~/.config/bootstrapme/go/gin.yaml
name: gin
description: "Bootstrap a Gin-based Go server"
language: go
framework: gin
variables:
module_name: "github.com/{{ username }}/myginapp"
post_install_commands:
- "go mod init {{ module_name }}"
- "go get github.com/gin-gonic/gin"Fields:
- name: Name of the preset (shown in TUI).
- description: A short description shown in TUI.
- language: The language category (e.g.,
go,js,python). - framework: The framework/tool name (e.g.,
gin,createreactapp,createnextapp). - variables: Key-value pairs for template substitution.
- files: An array of files to create (with
pathandcontent). - post_install_commands: Shell commands run after file creation. Use
{{ variables }}to substitute values.
See the below example of using create-next-app with a set of default flags
Directory: ~/.config/bootstrapme/js/next.yaml
# ~/.config/bootstrapme/js/createnextapp.yaml
name: Create Next App
description: "Bootstrap a Next.js project"
language: js
framework: Next
post_install_commands:
- "npx create-next-app {{ project_name }} --ts --use-npm --eslint --src-dir --tailwind --app --no-turbopack --no-import-alias"Raise an issue and link your PR to it