DEV Community

Mike
Mike

Posted on

Building Plain Shell: A Lightweight and Portable C++17 Shell with Custom Packs and Themes

Hey everyone!

I wanted to share a pet project I’ve been working on recently — Plain Shell, a lightweight, modular command-line shell written in C++17.

I built it because I wanted a clean terminal environment that is easily portable, lightweight, and customizable without bloated dependencies or complex configurations.

Key Features:

Addon/Theme Engine (.plainmod): Custom prompts, ANSI colors, welcome messages, and execution hooks.

Command Packs (.plainc): Group custom shortcuts into packs with built-in descriptions that dynamically integrate directly into the help command.

Native System Integration: Built-in setup path command to register the binary to the User PATH on Windows easily.

Built-in History Manager.

Quick Start & Usage:

plain> help
plain> addons enable matrix
plain> packs enable git_pack
plain> setup path

Portable Mode Setup:

Simply create a folder named portable in the same directory as plain.exe. Plain Shell will automatically detect it and store all configs, history, addons, and packs locally!

Source Code & License:

The project is completely open-source under the GPLv3 license.

GitHub Repository: https://github.com/Muchprow/Plain-Shell

I’d love to hear your feedback, suggestions, or ideas for improvement! Feel free to star the repo if you find it interesting!

Top comments (0)