Skip to content

Get environment variables from the shell

License

Notifications You must be signed in to change notification settings

sindresorhus/shell-env

shell-env

Get environment variables from the shell

Especially useful for Electron apps as GUI apps on macOS doesn't inherit the environment variables defined in your dotfiles (.bash_profile/.zshrc/etc).

Install

npm install shell-env

Usage

import {shellEnv} from 'shell-env';

console.log(await shellEnv());
//=> {TERM_PROGRAM: 'Apple_Terminal', SHELL: '/bin/zsh', ...}

console.log(await shellEnv('/bin/bash'));
//=> {TERM_PROGRAM: 'iTerm.app', SHELL: '/bin/zsh', ...}

API

Note

For Bash, it reads .bash_profile, but not .bashrc.

Note

If your default shell is a non-POSIX shell (e.g., Nushell), it will fall back to /bin/zsh or /bin/bash.

Note

It disables the oh-my-zsh tmux plugin auto-start by setting ZSH_TMUX_AUTOSTARTED and ZSH_TMUX_AUTOSTART=false so the shell does not launch tmux while capturing environment variables.

shellEnv(shell?)

Return a promise for the environment variables.

shellEnvSync(shell?)

Returns the environment variables.

shell

Type: string
Default: User default shell

Shell to read the environment variables from.

Related

  • shell-path - Get the $PATH from the shell
  • fix-path - Fix the $PATH on macOS when run from a GUI app
  • shell-history - Get the command history of the user's shell

Maintainers

About

Get environment variables from the shell

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 8