Skip to content
OverseedAIPublic

About

Named environment-variable profiles with live shell activation (env activate <name>)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

overenv

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 set

Cross-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.

Install

Homebrew (recommended)

brew install OverseedAI/tap/overenv

Then add the shell hook to your ~/.zshrc or ~/.bashrc:

source "$(brew --prefix overenv)/share/overenv/overenv.sh"

curl

curl -fsSL https://raw.githubusercontent.com/OverseedAI/overenv/main/install.sh | sh

Installs to ~/.local and prints the source …/overenv.sh line to add to your rc.

From source

git clone https://github.com/OverseedAI/overenv ~/projects/overenv
cd ~/projects/overenv && make install

Usage

env 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 directory

All of the above also work as overenv <subcommand> directly (no shell hook needed for the read-only ones).

Profiles

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:8080

Create one with env edit parkour-test.

How it works

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.

Update

overenv update        # curl install — re-runs the installer
brew upgrade overenv  # if installed via Homebrew

Notes / limits

  • 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.

License

MIT © Overseed AI

About

Named environment-variable profiles with live shell activation (env activate <name>)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages