apnaShell is a custom Windows shell written in C, paired with a dedicated Electron desktop terminal host.
The shell provides a Linux-like command set on Windows, while the desktop app provides the branded terminal UI, prompt/output formatting, and working-directory aware chrome.
Builds are versioned as separate executables such as myshell_v2.exe, myshell_v3.exe, and so on as new milestones are implemented.
The repository is organized into:
shell-core/for the shell engine and shell executablesterminal-app/for the Electron desktop terminal appconcepts/for terminal app concept docs
- Interactive shell prompt
- Current shell prompt label:
bolBhai>> - Built-in commands:
helpexitquitcd <path>pwdhistory!!!nlsls -lcat <file>mkdir <dir>rmdir <dir>rm <file>cp <src> <dest>mv <src> <dest>touch <file>clear
- Basic trimming of extra whitespace
- Basic quoted path handling for commands such as
cd "My Folder" - Arrow-key input with basic line editing in the interactive console
- Tab completion for files and directories in the interactive console
- Better quoted argument parsing for built-in commands with spaced paths
- Better
lsoption handling including combined flags like-la - Environment variable expansion for
%VAR%and$VAR - Native simple pipeline support using
| - Native redirection support using
>,>>, and< - External command execution through
cmd.exe /Cwithin the shell execution engine - Machine-readable cwd control line for the desktop app shell bridge
- Dedicated Electron desktop terminal app with:
- branded
bolBhai>>prompt rendering sunBhai>output labeling- centered welcome banner in the terminal
- boxed working-directory indicator in the terminal header
- custom frameless app chrome
- branded
- Background jobs
- Wildcard or glob expansion like
*.txtinside built-in commands - Linux-style
${VAR}expansion - Native built-in input streaming from redirected stdin
shell-core/myshell.c- main source code for the shellshell-core/myshell.exe- early shell executableshell-core/myshell_v2.exe- versioned executable for the v2 milestoneshell-core/myshell_v3.exe- versioned executable for the v3 milestoneshell-core/myshell_v4.exe- versioned executable for the v4 milestoneshell-core/myshell_v5.exe- versioned executable for the v5 milestoneshell-core/myshell_v6.exe- versioned executable for the current v6 milestoneterminal-app/- dedicated desktop terminal appconcepts/- concept docs for the terminal app directionsFEATURES.md- quick feature status documentDEVELOPMENT_LOG.md- version-by-version project change logVERSIONING_METHOD.md- project versioning approachWORKFLOW.md- fixed implementation workflow
The desktop app lives in terminal-app/ and launches through a dedicated Electron bootstrap that clears inherited ELECTRON_RUN_AS_NODE state before startup.
Build and launch it from the repository root with:
cd terminal-app
npm install
npm run build
npm run startTo build the Windows installer from the terminal app folder:
cd terminal-app
npm run dist:winThe installer output is written to terminal-app/release/ and includes the packaged shell executable.
- Windows
- A C compiler such as MinGW GCC
If you have gcc installed:
gcc -Wall -Wextra -std=c11 shell-core/myshell.c -o shell-core/myshell_v6.exe.\shell-core\myshell_v6.exebolBhai>> pwd
D:\Projects\myShell
bolBhai>> history
1 pwd
2 history
bolBhai>> ls
shell-core/
terminal-app/
concepts/
README.md
FEATURES.md
bolBhai>> help
- This shell is not a full replacement for Bash, Zsh, PowerShell, or CMD.
- Built-in commands are implemented directly in C for a more Linux-like feel on Windows.
- External commands are launched through
cmd.exe /Cwhile redirection and simple pipelines are coordinated by the shell itself.
- Add wildcard expansion for built-ins
- Add background job execution
- Add Linux-style
${VAR}expansion - Support recursive file operations and more Unix-style flags
You can add a license here before publishing to GitHub. The common choice is the MIT License.