#cli #shell #environment-variable #configuration #command

app xshe

Set environment variables across multiple shells with a single configuration file

7 unstable releases (3 breaking)

0.5.1 Jun 29, 2022
0.5.0 Jun 20, 2022
0.4.2 Apr 20, 2022
0.3.2 Apr 4, 2022
0.1.0 Mar 31, 2022

#178 in Configuration

39 downloads per month



Xshe – Cross-Shell Environment Vars

Documentation View on Crates.io Fork on GitHub Leave a GitHub Repo Star Open an Issue

GitHub Release Status Libraries.io dependency status Latest Crates.io Release Latest GitHub Release Crates.io downloads

Xshe allows for setting Shell Environment Variables across multiple shells with a single TOML configuration file.

Instead of writing multiple similar files for each shell you use, you can instead create one file and use it for every shell with xshe!

All you have to do is add a single line to all of your shells' startup scripts, and xshe will set your environment variable across all of them.

To use xshe, you write lines in a xshe.toml file like this (in TOML format):

CARGO_HOME = '~/.cargo'
EDITOR = '$(which nano)'

Create a file like this once and use it everywhere, for every shell! xshe can convert this into the format for every supported shell.

Shells - bash | zsh | fish Coming Soon - elvish | dash | xonsh | tcsh

Usage and Documentation

View Xshe's documentation online at xshe.superatomic.dev or read the offline documentation in the docs/ directory.

Quick install


Licensed under either of

at your option.


Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

GitHub.com Crates.io Lib.rs Libraries.io


~272K SLoC