A custom C# interactive shell, customizable.
NShell is a lightweight, extensible shell written in C# using [.NET 8.0+].
It's designed for hackers, shell lovers, and those who enjoy boot sequences.
- ✅ Custom interactive shell interface
- ✅ Built-in command loader with registration system
- ✅ Command metadata (
Description
,IsInteractive
,RequiresRoot
, etc.) - ✅ Handle customs commands, but load also
/usr/bin
,/usr/sbin
..ect commands. - ✅ Spectre.Console markup support for colors, glitches, animations
- ✅ Full AOT support (with manual command registration)
- ✅ Future-proof extensibility (plugin-style architecture)
Clone the repo and install:
git clone https://github.com/onihilist/NShell.git
cd NShell
chmod +x install.sh
./install.sh
This is a little exemple of an custom theme.
If you are using format_top/bottom
& corner_top/bottom
, format
will be ignored.
For making a single line prompt use format
, and double line format_top/bottom
.
N.B : path_slash_color
& path_words_color
works with single and double line shell prompt.
Exemple :
{
"name": "test",
"format": "[bold green][[{user}@{host}]][/][white][[{cwd}]] >>[/]",
"format_top": "[[[bold cyan]{user}[/]@[bold cyan]{host}[/]]]",
"format_bottom": "[[{cwd}]]",
"corner_top": "[bold magenta]\u250c[/]",
"corner_bottom": "[bold magenta]\u2514[/]",
"ls_colors": "di=34:fi=37:ln=36:pi=33:so=35:ex=32",
"path_slash_color": "cyan",
"path_words_color": "yellow"
}
The name of the theme is test
, no matter what the file is named.
So enter the command : settheme test
.
This is the result :
- [PROGRESS] Plugin support (dynamic loading)
- [OK] Fix neofetch shell version
- [OK] Fix interactive commands/scripts running configuration
- [PROGRESS] Autocomplete
- [PROGRESS] Command history
- [OK] Profiles and theme switching
- [OK] Remove Bash FallBack
- [OK] Themes & ThemeLoader
If you have any problem with NShell, or it locks you out of a proper shell,
you can forcefully switch back to bash
like this:
sudo sed -i "s|/usr/local/bin/nshell|/bin/bash|" /etc/passwd
If you got the error "bad interpreter" when running install.sh
try to run this :
sudo apt update
sudo apt install dos2unix
dos2unix install.sh