SimpleShell – MacOS Terminal Emulator App

[SimpleShell]

~

$ curl -sL 'https://github.com/stoops/SimpleShell/commits/main/' | tr '=:,<>[]{}"\' '\n' | grep -Ei '/commit/' | head -n 1 | awk -F'/' '{ print $NF }'

$ spctl -a -v bin/SimpleShell.app
bin/SimpleShell.app: accepted
source=Notarized Developer ID

I was searching for a good quality but simple free open terminal for MacOS and I couldn’t really find what I was looking for interface wise (I used to use iTerm for a long time but it started getting more and more bloated and laggy on me – using up a lot of system power on battery and I don’t want all that AI stuff baked in).

I started a project earlier this year but got stuck on it because I was trying to implement a basic ANSI parser which was a mistake on my part. I didn’t realize how incredibly complicated that finite state machine would be, esp with bash and ansi apps sending complicated instructions into the machine! I then asked Google AI for help and it pointed me to a GitHub page that hosted a libvterm (from vim) that was compatible with Objective-C.

I’ve been working on this app non-stop for the last 9 days now and I only have the basics covered, I didn’t realize how much code it took just to make a basic text processing input/output app but I think this is one of my more complicated code bases (possibly TurnTable is the other app of mine that might be more complicated but that one is in Swift).

I still have a lot more work on my todo list for and I will continue development on it now that I got ANSI parsing to work, the rest is just mainly ViewController and functionality features. I targeted it for the bash shell so I don’t know if it works with other shells but this is just my first release post about it.

View Layout

  • Month / Day
  • Rows / Cols
  • LAN / WAN
  • CPU / RAM / NET
  • WiFi Freq / Rate
  • Top Process Memory Used
  • Shell PS1 Prompt Info (User / Directory)
  • … any info thing that you can script and fit within a limit text space!

Feature List

  • Simple Clean Minimal Functional Design
  • Window Colors / Opacity / Blur
  • Selector / Highlighter Separator Character List (Automation)
  • Auto Copy On Selection (Automation)
  • Single-Line Paste Manual Enter (Safety)
  • Multi-Line Paste Prevention Protection (Safety)
  • Huge-Line Paste Limitation Protection (Safety)
  • Multi-Window / Multi-Tab
  • Left Aligned Tab Titles With Monospace Font (Readability)
  • Scriptable Standard Window And Tab Title Text
  • Scriptable Dynamic Shell Prompt Prefix (Found No Where Else!)
  • Always Visible Command Line Prompt (Found No Where Else!)
  • Live System Information Stats Bar
  • Separated Open / Close Tab Buttons To Reduce Accidental Closures
  • Multi-Tab Window Detection To Reduce Accidental Closures
  • Smooth Scroll Locking
  • Clear Console Command
  • Pre-Coded Hot Keys
  • Regular Expression Search
  • Basic Font Colors
  • Dock Icon!!

Limitation List

  • Tabs Can’t Be Transferred To Other Windows
  • Only Restores One Window / Tab On Launch

User Beware

  • This is still a brand new framework and there may be bugs (or at the very least incompatibilities)!

~

Source Code: https://github.com/stoops/SimpleShell

~

Leave a comment