Shell landscape :: Shell Architecture :: OpenShellOrg Docs

Shell landscape

Companion to keybindings comparison. Not a popularity contest — a map for practitioners choosing or integrating shells.

Categories

POSIX / word languages

Shell Pipe currency Notes

sh / dash

Byte streams, exit codes

Minimal scripting; often /bin/sh

bash

Byte streams + $() + arrays

Default on many Linux distros; rich history/editing

zsh

Like bash + globbing, modules

macOS default since Catalina

fish

Byte streams; structured autosuggest

Friendly defaults; not POSIX by default

Structured / object pipelines

Shell Pipe currency Notes

Nushell

Typed tables/records

Unix-centric structured shell — OSO reference implementation

PowerShell

.NET objects

Windows-native; cross-platform pwsh

Open Shell (open-shell)

Default oso mode + compatibility (nu, bash, …)

Dlang runtime — Open Shell, display layers

Hybrid / experimental

Shell Notes

xonsh

Python syntax in shell

Elvish

Built-in data structures, pipelines

Oil

OSH + ysh migration path

Legacy

Shell Notes

cmd.exe

Windows batch; no POSIX; different console API

Windows PowerShell 5.1

Windows-only; prefer pwsh 7+ for new work

Comparison axes

Use these when keybindings or architecture docs refer to "kinds" of shell:

Axis Question

Pipe currency

Bytes, text lines, objects, or typed tables?

Context model

cwd-only vs session env vs explicit context tokens

Presentation

stdout-only vs layered overlays

Syntax modes

Single parser vs swappable (Open Shell UNIX vs structured)

Help surface

man vs --help vs prohelp progressive

OSO stance

  • Recommend Nushell for structured pipelines — thesis

  • Open Shell in D — default OSO mode; Nushell as nu mode baseline; contribute upstream when generic

  • Certify CLIs via SOS regardless of host shell