slash is a project that aims to create a customizable, vibrant, and modern shell, along with a suite of utilities designed for educational, practical, and evcen creative use cases!
All the basics of a shell were added, and finished on 17 June 2025. Slash is not in Alpha anymore. This means:
- Slash is almost eligible to become a legitimate shell
- It's no longer plagued with errors
- You can (almost) use Slash like any other shell
- Easily customizable syntax highlighting and prompt with JSON, for a terminal that feels like home
- A rich suite of feature-rich utilties built in (
slash-utils) - Helpful, short, and visually pleasing help messages
- POSIX-compliant scripting (Yeah, portability)
- Command substitution
- More slash-utils
Every Slash utility shas to follow a unified philosophy:
- Errors and notices should be color coded
- The utility must be vibrant, but not garnish. It can follow a theme, or a color set. ANSI color codes should not be written raw and should be decalred in a header file for all to be used. If possible, let it comply with the current Slash theme set. (coming soon)
- The utility must fulfill its purpose very well. It should be simple but feature rich at the same time.
- The code should be clean, simple to read, and should not make the reader think hard
- If it is a complex utility, the functions must be split into separate files. For example, an editor designed for programming must be split into editor.h, autocomplete.h, file_operations.h, vcs.h, ...
- Do not let the library you are using limit your feature set. If that is the case, it is time to either make your own, or choose another library
- Avoid storing data in binary files, thinking it's cool and edgy. Store settings in JSON, YAML, TOML, or any easy to understand types.
Installing slash is pretty straightforward if you have the dependencies:
- g++
- cmake
- libgit2
- boost::regex
- OpenSSL
- nlohmann::json
sudo apt update
sudo apt install -y cmake g++ git build-essential pkg-config nlohmann-json3-dev libgit2-dev libboost-regex-dev libssl-devsudo pacman -Syu
sudo pacman -Syu cmake gcc git base-devel pkgconf nlohmann-json libgit2 boost opensslsudo dnf check-update
sudo dnf upgrade -y
sudo dnf install -y cmake gcc-c++ git make automake autoconf pkgconf nlohmann-json-devel libgit2-devel boost-devel openssl-develsudo zypper refresh
sudo zypper update -y
sudo zypper install -y cmake gcc-c++ git make automake autoconf pkg-config nlohmann-json-devel libgit2-devel libboost_regex-devel libopenssl-develsudo emerge --sync
sudo emerge --update --deep --newuse @world
sudo emerge --ask dev-util/cmake sys-devel/gcc dev-vcs/git sys-devel/automake sys-devel/autoconf dev-util/pkgconf dev-libs/nlohmann_json dev-libs/libgit2 dev-libs/boost dev-libs/opensslpkg update
pkg upgrade
pkg install cmake clang git make pkg-config nlohmann-json libgit2 boost opensslbrew update
brew upgrade
brew install cmake git pkg-config nlohmann-json libgit2 boost openssl- Download the entire source code and change your working directory to the root of the source code
- Compile
install_slash.cppwith the following command:g++ install_slash.cpp -o is - Run the installer with:
./is - Follow the instructions and slash should be installed!
After installation, you may delete the slash source code and the installer safely.
slash does not support Windows directly. You have to use the Windows Subsystem for Linux. Maybe someday though..
To uninstall slash, simply delete the directory ~/.slash and also /usr/local/bin/slash
Please just take 5 minutes of your life to open an issue and make slash better for everyone.
GH Sponsors isn't open right now. If you wish to sponsor me, email me at msa4gh@gmail.com and I'll see if I can open it
- Flickering prompts and no multiline support yet (only for one-line prompts)






