NullShell is a modern, professional-grade shell built in C, designed with a focus on modularity, advanced scripting, and premium user experience. It draws inspiration from Zsh and Fish while maintaining a lightweight and extremely customizable architecture.
- 🚀 Modular Architecture: Expand functionality via dynamic
.soplugins at runtime. - 🎨 Premium UI/UX:
- Real-time syntax highlighting (Fish-style existence checks).
- Dynamic RPROMPT (Right-hand prompt) for status and exit codes.
- Custom themes (
neon,ocean,monokrome) with live switching.
- 📜 Advanced Scripting:
- Full support for
if,while, andforloop control structures. - Arrays: Native support for array variables
arr=(a b c)and indexing${arr[0]}. - Recursive globbing with
**support.
- Full support for
- ⌨️ Pro-grade Line Editing:
- Rich Tab Completion for commands, files, keywords, and local variables.
- Standard keybindings (
Ctrl+A,Ctrl+E,Alt+F,Alt+B,Ctrl+U,Ctrl+K). - Reverse incremental search (
Ctrl+R).
- 🛡️ Robust Job Control: Professional terminal management and background task handling.
- GCC or Clang
- Make
- standard C libraries (
libc,libdl)
git clone https://github.com/user/NullShell.git
cd NullShell
make
./nullshellsudo make installNullShell can be extended at runtime. To load a plugin:
plugin load /path/to/plugin.soCreate your own plugins using the registration API:
#include "builtins.h"
int nullshell_plugin_init() {
builtin_register("mycmd", my_func);
return 0;
}Switch themes on the fly for an immediate aesthetic change:
theme ocean
theme neonMIT License. Feel free to fork and extend!