Skip to content

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

 
 
 

Contributors