Development
Want to help with cjsh? This page is the quickest path from clone to a tested local build. For the full contributor workflow, see the repository's CONTRIBUTING.md.
Requirements
- C compiler
- C++ compiler
- CMake 3.25 or newer
- Ninja
- Python 3 for parts of the test suite
Build
From the repository root:
git clone https://github.com/CadenFinley/CJsShell && cd CJsShell
cmake --preset release
cmake --build --preset release --parallel
Run the shell with:
Useful presets:
release: optimized default builddebug: debug build with AddressSanitizer enabledminimal: size-focused release profile
Test
Run the focused CTest suites:
Run the full shell and integration harness:
If you are changing parser behavior, runtime execution, job control, or interactive input handling, also build and test the debug preset.
Work On Docs
Documentation contributions are always useful, especially when they clarify behavior, explain configuration, or document new builtins and options.
To preview the docs locally:
Themes And Prompt Styling
Prompt, theme, and styling contributions are welcome. If you have a PS1, RPS1, or cjshopt style_def setup worth sharing, open a pull request that adds it to the docs or examples. The Prompt Markup and Styling guide covers the available knobs.