bless is a terminal-first CLI.
npm install
npm testBless focuses heavily on terminal correctness:
- raw mode restoration
- SIGINT cleanup
- piped input behavior
- Windows console fallback
npm link
printf 'hello from bless\n' | bless-h, --helpShow this help message-v, --versionShow bless version--no-pagerDisable interactive pager
When viewing a file in an interactive TTY, bless now supports a minimal pager loop with classic keys:
qquitj/kandUp/Downmove one linespace/bandPgDn/PgUppage down/upg/Gjump to top/bottom
- Full-screen behavior (alternate screen + resize) requires an interactive TTY.
- File viewing still loads the full file into memory; chunked large-file buffering is not implemented yet.
- Search (
/,n,N) is not implemented yet. - The pager runs only when capability checks mark the terminal as interactive (non-
dumbTERM with TTY output, plus raw-mode setup succeeding); otherwiseblessfalls back to plain passthrough output. - On Windows, piped stdin can also fall back to plain output when
blesscannot acquire interactive console input (for example\\.\\CONIN$open failures). blesscurrently has no built-in--helpor--versionoutput.- Windows terminal behavior depends on the host terminal supporting ANSI control sequences.
- When both a filename and piped stdin are provided, the filename is preferred.
- Unexpected runtime failures still attempt cleanup, but if the process is forcibly killed (e.g. SIGKILL), terminal restoration is not possible.
- minimal pager
- predictable terminal behavior
- small dependency surface
- works with pipes and files
npm test
npm pack --dry-run
npm link
printf 'link check\n' | bless
npm install -g .
printf 'global check\n' | bless
git ls-files --eol