Named environment-variable profiles with live shell activation — flip a preset set of env vars on and off by name, venv/conda style:
env activate parkour-test # loads the profile into your current shell
env deactivate # unsets everything it setCross-OS (any POSIX shell — bash/zsh on macOS & Linux), zero dependencies, plain
KEY=value profiles. The real env command (env FOO=bar cmd, env | grep)
still works untouched — the shell hook only intercepts the overenv subcommands.
brew install OverseedAI/tap/overenvThen add the shell hook to your ~/.zshrc or ~/.bashrc:
source "$(brew --prefix overenv)/share/overenv/overenv.sh"curl -fsSL https://raw.githubusercontent.com/OverseedAI/overenv/main/install.sh | shInstalls to ~/.local and prints the source …/overenv.sh line to add to your rc.
git clone https://github.com/OverseedAI/overenv ~/projects/overenv
cd ~/projects/overenv && make installenv activate <name> # load profile into the current shell
env deactivate # unset everything the active profile set
env list # list profiles (* = active)
env current # print the active profile
env show <name> # print a profile
env edit <name> # open a profile in $EDITOR (creates if missing)
env dir # print the profiles directoryAll of the above also work as overenv <subcommand> directly (no shell hook
needed for the read-only ones).
Profiles live in $OVERENV_DIR (default ${XDG_CONFIG_HOME:-~/.config}/overenv)
as <name>.env files. Plain KEY=value lines; blank lines and # comments are
ignored:
# ~/.config/overenv/parkour-test.env
PARKOUR_ENV=test
PARKOUR_LOG_LEVEL=debug
PARKOUR_BASE_URL=http://localhost:8080Create one with env edit parkour-test.
overenv is a portable POSIX-sh CLI. activate/deactivate print shell code to
stdout; the shell hook (shell/overenv.sh) evals it so it mutates your live
shell — the only way a CLI can change the parent shell's environment. The active
profile and the list of vars it set are tracked in OVERENV_ACTIVE /
OVERENV_VARS so switching profiles cleanly unsets the previous one.
overenv update # curl install — re-runs the installer
brew upgrade overenv # if installed via Homebrew- Secrets: profiles are plaintext. Don't commit real secrets; keep them in
per-machine profiles under
$OVERENV_DIR(git-ignored by default). - Shells: bash & zsh. fish / PowerShell would need a different emit syntax — open to adding them.
MIT © Overseed AI