-
-
Notifications
You must be signed in to change notification settings - Fork 162
Interactive Shell
andychu edited this page Jul 6, 2024
·
58 revisions
- Research for Oil: How Interactive Shells Work
- Testing the Interactive Shell -- for Oil Releases
- Alternative Shells -- a big list
- Headless Mode
- Rich Command Shells (Hacker News Comments) -- Nice article with screenshots!
- pigshell (Github repo) -- "unix the web". Type "cat /usr/doc/README.html" there. Pretty interesting.
- Xiki / https://github.com/trogdoro/xiki -- nice screencast. You can interactively navigate the output of "ls". This project actually had a Kickstarter campaign, although some people seem to complaining about the lack of status updates.
- https://domterm.org/ -- A terminal emulator based on web technologies. Beyond solid xterm compatibility, it supports powerful features for REPL (read-eval-print-loop) consoles: Application output can have images, rich text, and links, with structure-based line-breaking (pretty-printing), and folding.
- hyper (https://github.com/vercel/hyper) A Terminal Built on Web Technologies. Built with Electron.
- TermKit -- Interesting but defunct project that makes the Unix paradigm graphical.
- Terminus: A Terminal Supporting Inline HTML
- Schirm -- nice screenshot / animation
-
Rat -- Compose Shell Commands to Build Interactive Terminal Applications. Uses
git log
as an example.
- repl.it: CLUI: Building a Graphical Command Line (Comments) -- decision tree of commands, autocomplete, auto-generated UI, construct commands with mouse too
- Oberon -- An operating system that more tightly integrated text and graphics
- A Tour of Acme -- Acme was inspired by Oberon.
- Integrated development window manager -- A simple shell script.
- guish - Write shell pipelines at the command line with a GUI editor - HN comment
- The Ultimate Guide to Terminal User Interfaces in PowerShell
-
ble.sh
from How Interactive Shells Work
- saneterm - Modern line-oriented terminal emulator without support for TUIs.
- Similar to using an Emacs buffer as a terminal emulator
-
RStudio -- Has a REPL and different types of panes for displaying an interacting with data. Notably, the entire IDE runs on the desktop and it runs in a browser. I think this is done with Google Web Toolkit.
- Oil will borrow the model of R data frames (as well as borrowing from enhancements like dplyr, data.table)
- List of Jupyter Kernels -- how do they work? There is a bash kernel. How does it do completion? What hooks does oil need to support kernels?
-
IBash Notebook -- Has the ability to
display images inline with the
display
command. Two problems: buffering, and interacting with REPLs you spawn. These seem like pretty big problems.
-
IBash Notebook -- Has the ability to
display images inline with the
- Microsoft's Language Server Protocol
- Protocol History -- Is this suitable for shell? Oil will have functions, so at the very least we want to complete function arguments, as well as command line arguments. I think common queries are for declarations and uses, which apply in big shell programs as well.
- TerminalJS -- Terminal emulator in JavaScript
- Two Types of Command Line Interfaces by Thomas Ballinger
- Buttery Smooth Emacs -- nice observations about legacy architectural decisions and fixes for them!
- Adventures in Terminal Emulators -- terminal emulators involve parsing, keyboard/graphics, and Unix/libc interaction
- Typing with Pleasure -- Nice article about typing latency. I can feel the difference in typing latency when I hit Ctrl-Alt-F1 for a text mode terminal vs. when I'm in an Ubuntu desktop, and especially a web browser.
- Terminal and Shell Performance -- Latency distribution for different terminal emulators. How did he measure it?
Learning from Terminals to Design the Future of User Interfaces -- I agree with almost all these ideas. Current UIs are bloated and slow. Terminals are good but limited. They need graphics, images, tables, mouse interactivity, etc.
-
AWS Shell – An integrated shell for working with the AWS CLI - Hacker News
- I'm not sure if this particular tool makes use of it but saws uses the python-prompt-toolkit - https://github.com/jonathanslenders/python-prompt-toolkit
- This is interesting, although shoul should interactivity be built into the shell itself. Programmability of Python is a plus.
-
tmux-xpanes - Awesome way to create multiple tmux panes. - Interesting idea. Like a graphical xargs.