nvm on
nvm install stable
nvm use stable
node --version
npm --version
npm # to see if there is a version to upgrade to
npm install -g bun
# npm install -g bun@1.2.4 # (to upgrade or use a specific version of `bun`)
npm install -g pnpm
# npm install -g pnpm@9.0.0 # (to upgrade or use a specific version of `npm`)
bun --version
pnpm --version
The tools below are listed in the recommended installation order (as rust requires the Microsoft C++ Build Tools).
rustup default stable-msvc
rustup update
cargo install just
cargo install eza
bash -c "$(curl -fsSL https://raw.githubusercontent.com/ohmybash/oh-my-bash/master/tools/install.sh)"
Oh My Bash is configured via ~/.bashrc. Key settings:
# Set your theme (see ~/.oh-my-bash/themes/)
OSH_THEME="powerline"
# Enable plugins
plugins=(git bashmarks progress)
# Enable completions
completions=(git composer ssh)
bash in Windows Terminal's Git Bash profile to use Oh My Bash alongside your other shells.I manage my shell configuration with a dotfiles repo that syncs across machines. On Windows, this covers .bashrc, .bash_profile, shared aliases, and AI agent configuration.
git clone git@github.com:iancleary/dotfiles.git ~/dotfiles
cd ~/dotfiles
./sync-dotfiles.sh push # Install configs from repo
./sync-dotfiles.sh pull # Backup current configs to repo
./sync-dotfiles.sh status # Check for differences
The sync utility detects the OS and installs the appropriate files — bash configs on Windows, zsh configs on macOS/Linux. Shared utilities (aliases, git worktree helpers, Claude/Codex configs) are installed on all platforms.
.bashrc — Oh My Bash configuration.bash_profile — Bash profile.common/aliases.sh — Shell aliases (eza, git, docker, cargo, just).common/agents-git-trees.sh — Git worktree helpers (ga/gd).claude/ — Claude Code settings, skills, principles.codex/ — Codex CLI rules and MCP serversnpm i -g @openai/codex
curl -fsSL https://claude.ai/install.sh | bash
https://git-scm.com/downloads/win
This disables git for windows "white screen" flashing on pressing the tab key when there are multiple options available. For example, hit tab in your home directory after
ls Dwhen there are both a Documents folder and a Development folder. Without this fix, there would be a white flash of the screen and possibly a audible bell sound.
https://github.com/microsoft/terminal/issues/7308
https://github.com/microsoft/terminal/issues/7200
Git for Windows does install an /etc directory, perhaps mapped within C:\Program Files\Git\etc and an /etc/inputrc file that includes set bell-style visible.
I just made a copy to my local folder and commented that bell style line as follows
cd go to your home directory in git for windows or the Window's terminal's Git for Bash profile.
cat /etc/inputrc > .inputrc
print inputrc content to .inputrc file in your home directory... don't forget the DOT
Now edit your local file
# before
set bell-style visible
# after
set bell-style none