SHELL: Global Tool for Calling and Chaining Procedures in the System (1965) [pdf]

MIT’s 1965 “shell” memo resurfaces and the internet has thoughts

TLDR: A 1965 MIT memo outlines the original “shell,” the tool that lets people type commands and chain tasks. Commenters linked the Multics archive and revived debates on whether modern command lines owe everything to these roots, mixing nostalgia, eye-rolls, and “nothing’s new” hot takes.

A dusty 1965 memo from MIT’s Project MAC by Louis Pouzin—basically an early blueprint for the computer “command thingy” we all use—just popped up, and the comments went full nostalgia mode. One user kicked it off with a link to the Multics History Project, and suddenly everyone’s reminiscing about the dawn of typing commands, chaining tasks, and not breaking everything with a bad keystroke. The memo explains, in plain terms, how a “shell” should help a person at a console: interpret what they typed, forgive mistakes, and make sense of the results—aka early customer service for computers.

Strong opinions? Oh yes. Some readers swooned over how this reads like proto–user experience design—concerned with human errors and clear messages. Others rolled their eyes like, “So... it’s a manual,” insisting everything old is old. The classic drama reappeared: the “Multics vs. Unix” history crowd sparred (politely) over who really set the rules for today’s command lines. Meme-lords dropped jokes about “Grandpa invented the command prompt” and “press Enter to chaos,” while the skeptics muttered that we keep rediscovering the same ideas. The vibe: half museum tour, half nerds arguing in line at the gift shop, and everyone bookmarking that Multics archive like it’s a time machine.

Key Points

  • A command is defined as a program initiated directly from a console, with arguments parsed by a general convention (blank-delimited; first argument is the command name).
  • Commands must be designed for interactive users, handling errors, clarifying unexpected situations, and providing meaningful edited outputs.
  • Console-provided arguments arrive as printable BCD strings; each command must decode and convert inputs to required formats.
  • Console outputs must be printable and embedded in messages that clarify their meaning.
  • The document proposes structuring commands as procedures with two entry sets (console vs. internal program), converging on a common main segment; additional sections cover shell organization and management topics.

Hottest takes

"See the Multics History Project:" — chmaynard
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.