Skip to content
Projects

CadenFinley/cjsh has 48 GitHub stars and 2 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-15 04:44 UTC. Last push 2026-11-10.

How these counts are measured

Measured star growth

in 24h
0
in 7 days
Collecting history
in 15 days
Collecting history
in 1 month
Collecting history

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

About

CJ's Shell (cjsh) POSIX shell scripting meets modern shell features

Developer Tools

README.md

Original

CJ's Shell (cjsh) CI Codacy Badge Documentation Repo Size

POSIX-first scripting with a modern interactive shell experience

Terminal recording showing CJ's Shell features

cjsh is a POSIX-first shell with an enhanced interactive layer. It combines standards-oriented scripting behavior with modern shell features such as rich completions, customizable keybindings, syntax highlighting, multiline editing, prompt styling, spell correction, and history search.

The project builds into a single cjsh binary and vendors its line-editing dependency, so the shell works out of the box without an external plugin stack or framework.

cjsh is under active development. For the most stable experience, prefer tagged releases or package-manager builds.

Install

Detailed install and onboarding guides are available in the documentation site.

Prebuilt binaries

Each GitHub release includes ready-to-run archives for macOS and Linux. macOS artifacts cover Intel on macOS 12+, Apple Silicon on macOS 15+, and Universal2 on macOS 12+. Linux artifacts cover x86-64 and ARM64 with either glibc or a fully static musl build. Every release also includes a SHA256SUMS manifest, and its artifacts have GitHub build-provenance attestations.

Download the appropriate archive from the latest release, extract it, and place the included cjsh executable somewhere on your PATH.

Homebrew (macOS/Linux)

brew tap CadenFinley/tap
brew install cjsh

Arch Linux (AUR)

# Using yay
yay -S cjsh

# Using paru
paru -S cjsh

Build From Source

Requirements

  • C compiler
  • C++ compiler
  • CMake 3.25 or newer
  • Ninja
  • Python 3 for parts of the test suite

Build

git clone https://github.com/CadenFinley/cjsh && cd cjsh
cmake --preset release
cmake --build --preset release --parallel

Run the shell with:

./build/release/cjsh

Install it under a prefix with:

cmake --install build/release --prefix ~/.local

List all configured presets with cmake --list-presets.

Test

Run all automated tests through CTest from the repository root:

ctest --preset release --parallel 4

CTest runs the shell files and focused C, C++, and Python suites, then reports combined individual-test counts. See Local Verification for filtering, serial runs, and repeating failures.

Documentation

Project documentation is published at cadenfinley.github.io/cjsh.

Contributing

See CONTRIBUTING.md for development setup, formatting, testing, and pull request expectations.

Security

See SECURITY.md for private vulnerability reporting, supported security-fix versions, and the security boundaries of the shell. --secure is not a sandbox.

License

This project is licensed under the MIT License. See LICENSE. Vendored-code attributions and license terms are collected in THIRD_PARTY_NOTICES, which ships with release archives and is installed alongside the project license under share/licenses/cjsh by default.