ENVMANAGER / INSTALLATION

Feel at home on macOS.

A repeatable setup for your shell, with your existing configuration kept in place.

1. Check the essentials

Use Terminal or your preferred terminal app. Zsh and Bash are supported. You need Git and either curl or wget. If Git is missing, follow the Git for macOS instructions, including the Apple Command Line Tools option.

git --version
curl --version
printf '%s
' "$SHELL"

2. Choose your shell and install

The default is the shell named by $SHELL, with Bash as a fallback. You can select Bash, Zsh, or both below. The installer itself runs under sh and does not require Node.js, npm, or Python.

YOUR NEXT SHELL STARTS HERE

Make yourself at home.

Core preset
curl -fsSL https://projects.envmanager.victorqueiroz.dev/install.sh | sh -s -- --shell auto

No sudo. Repeatable installation. Optional tools stay opt-in.

Prefer to read the script before executing it? Download it to a working directory and inspect it first:

curl -fsSL https://projects.envmanager.victorqueiroz.dev/install.sh -o envmanager-install.sh
less envmanager-install.sh
sh envmanager-install.sh --shell zsh

Use --dry-run to see the selected shell, install location, and planned startup-file actions with line numbers, without downloading anything or changing files. Published releases and checksums are available on GitHub Releases.

3. Open a new shell

Start a new terminal session and check the loaded helpers:

em_status
em_add_path PATH "$HOME/bin"
em_disabled_scripts

A fresh installation starts with the core preset: environment defaults, user binary directories, and shared telemetry opt-out preferences. Optional tool modules are disabled. Existing installations retain their own enabled and disabled modules.

Enabling an optional tool module can download third-party software or apply that module's configuration the next time it loads. Read its source and prerequisites before choosing it.

# Opt into a module for future loads.
em_enable nvm

# Disable a module again.
em_disable nvm

What the installer changes

Re-running the same installation is a no-op. Missing integration files can be repaired without downloading another release. Symlinked dotfiles keep their links and file permissions. The installer never sources your shell configuration while installing.

Upgrade when you choose

curl -fsSL https://projects.envmanager.victorqueiroz.dev/install.sh | sh -s -- --upgrade

Release installations are pinned to a published tag and verified commit. They skip the daily Git pull updater. An explicit upgrade preserves local overrides and module choices; new optional modules start disabled in the core preset. Modified checkouts report a conflict so you can preserve your work first. Existing branch-based installations keep their branch and use fast-forward updates.

Remove the shell integration

curl -fsSL https://projects.envmanager.victorqueiroz.dev/install.sh | sh -s -- --uninstall

Uninstall removes managed startup blocks and an unchanged managed loader. It retains the checkout, edited loaders, local overrides, and tool data. Open a new shell afterward. See the documentation for configuration options and troubleshooting.