jesh is an interactive shell and scripting engine written in Rust, blending POSIX/Bash compatibility with smart features from Fish, Zsh, and Nushell.
# Cargo
cargo install jesh
# Build from source
git clone https://github.com/jefferson-it/jesh
cd jesh
cargo build --release
./target/release/jesh
<(cmd)$((expr)), brace expansion {1..10}, ANSI-C quoting $'...'.bashrc scripts to bashif/else/case/while/until/fordeclare/typeset with -i/-a/-A/-r/-x, local, readonly, getoptsset -e/-u/-x/-o pipefailcd, pwd, exit, echo, export, unset, alias, unalias, source, ., history, type, which, pushd, popd, dirs, read, printf, eval, exec, command, true, false, :, test, [, [[, declare, typeset, local, readonly, getopts, disown, set, shopt, complete, jobs, fg, bg, kill, jeofetch
history pin/unpin for favorite commands$HISTSIZE/$HISTFILESIZE/$HISTIGNORE/$HISTCONTROL/u/l/b → /usr/local/bin)complete -W/-F$THEME (Dracula, Dark, custom)&, fg, bg, jobs, disownzoxide — smart z navigationeza/exa replaces ls, bat replaces catCreate ~/.jeshrc:
INIT_INFO=true
THEME="jesh-dracula"
alias ll="eza -la"
alias gs="git status"
| System | Status |
|---|---|
| Linux | Native |
| macOS | Native |
| Windows | Native (not just WSL) |
| FreeBSD | Compilable |
MIT
See CONTRIBUTING.md for build, test, and style guidelines.