View on GitHub

smash

a new kind of terminal

Design

Smash merges the shell, terminal emulator, and client-side app. Smash tries to not replace the shell semantics: commands are still the unix commands, pipelines are still pipelines, tab completion still comes from bash.

The UX goals of smash are:

Together, these goals produced this design:

The smash server process interprets the terminal output, which means it can expose that output back to the shell.

Deferred work

I am definitely interested in revisiting the semantics of commands, like how pipelines work, but I am attempting to limit scope to something tractable to complete. See the related work for some inspiration.