🔥 hellish is a fast, almost‑POSIX shell written from scratch in C — hackable, observable, and pleasant to live in.
This file is what the welcome banner points you at. It tracks what's new and shows you how to drive the shell.
New
- A welcome panel. A full‑width, two‑column box: a greeting
and the 42 logo in salmon on the left; getting‑started tips and a
"What's new" block on the right. Shown once per session.
(
HELLISH_NO_BANNER=1to silence.) - A one‑time entrance animation. On the very first run the logo draws in,
row by row, like the GitHub Copilot CLI banner; every later startup is
instant. (
HELLISH_ANIM=1to replay it,HELLISH_NO_ANIM=1to skip.) - Origin‑aware
update. The shell now knows how it was installed and upgrades the right way:installed via update --nowrunsnpm npm install -g hellish-shell@latestpnpm pnpm add -g hellish-shell@latestDocker tells you to docker pull dlesieur/hellish-shell:latestsource checkout git pull && make OPT=1 allin your clonestandalone binary re‑runs the install script
- Welcome banner,
HELLISH_VERSION, and theupdatebuiltin. - Once‑a‑day background check for new releases (never blocks the prompt).
- Packaging: install script, Docker image, and the
hellish-shellnpm package.
- The 42sh milestone: lexer → parser → expander → executor, jobs, heredocs, arithmetic, globbing, history, and a large POSIX‑conformance pass.
Run it: hellish (or set it as your login shell — see Install in the
README).
Everyday builtins: cd, pwd, export, unset, alias, jobs, fg,
bg, history, type, command, test/[, read, printf, umask,
ulimit, trap, getopts, set, local, return, exit. Run type <name>
to see how any name resolves.
Update yourself:
update # check GitHub for a newer release
update --now # upgrade the way this copy was installed
update --version # print the running versionConfig: drop a ~/.hellishrc (aliases, exports, functions, set options) —
it's sourced on interactive startup, the .bashrc analogue. A starter lives in
hellishrc.example.
Knobs:
| variable | effect |
|---|---|
HELLISH_NO_BANNER=1 |
hide the welcome panel entirely |
HELLISH_ANIM=1 |
replay the entrance animation on this startup |
HELLISH_NO_ANIM=1 |
never play the entrance animation |
HELLISH_NO_UPDATE_CHECK=1 |
never check for updates in the background |