SevenTTY — local shell + terminal + SSH for classic Mac OS

Xero

6502
I'd been playing with ssheven for a little while now, however it'd always been a bit buggy, the preferences file was getting corrupted, support for colors was pretty minimal and half broken, etc. After my recent adventure using claude + retro68 to hack up a system extension, I decided I'd try to fix up ssheven, and this quickly turned into "why can't I just make a full unix-style shell, too, like, port busybox or something to os7-9?" For many various reasons - that isn't really truly possible, however, what I came up with is essentially, an approximation of that.

Essentially, I've turned ssheven into a full blown "mac terminal" with a built in shell similar in feel to bash, and built in unix-like commands and syntax that wrap actual mac functions. For example, "ls -la" shows a file listing but where owner/group would be, it instead shows type/creator, "chown" can set type/creator, "chmod/chattr" can set lock, invisible flags, etc. It's got "ps" to show processes, "du", and "free" for disk/ram usage, including -m and -h human readable flags, etc. I've also added tab-completion for a lot of common operations, especially navigating files, and the built in commands.

I've also made "ssh" one of the commands, and you can now type "ssh user@host" and it will bring up the ssh login dialog that was previously the launch screen of ssheven, with the user/hostname pre-filled for you. You can also start a new ssh tab directly with command-s. Oh yeah, I added tab and multi-window support, too. It supports up to 8 sessions total between tabs/windows, mostly limited so it fits in 2mb, but this could be adjusted. I also have dark/light mode, and support for a "theme" system. Color support is now a lot more proper with all 16 colors, and I included some default dark/light themes that have much better contrast/readability than the old colors. Included in tools/ is a script to convert iterm2 themes to it's internal format. ".sttheme"

The name is a play on "seven" and "tty", though admittedly i've done most of the testing so far on os8.1 in qemu, same as the system extension I did prior. I'll likely try this on my real hardware shortly, but I imagine it should work just fine. I had to use up my half-off /fast mode in claude before midnight pacific to night, and this certainly ate up some tokens, haha! 68k and ppc versions are up on the github now.

 

Attachments

  • seventty_new.png
    seventty_new.png
    564 KB · Views: 34
Last edited:
That's awesome! I wonder if it would be possible to make it a terminal server as well as a client? (ie: ssh from linux to the provided interface).

Previously, I used the tool that let you telnet into an MPW shell, but I know that sshd would put significantly more load on the system than that.
 
I wonder how difficult it would be to add A/UX shell support (e.g. as an alternative to CommandShell).
the issue with adding proper unix shell support is that none of the unix subsystem really exists - no /dev/tty, etc. Instead, I tried to create "equivalents" but they are really more just conversions of mac functions into a shell-like experience. It would be kind of cool to make shell scripts work though - like create an actual sh/bash type language within it.
Any plans to add telnet functionality? It would be cool to be able to connect to BBS's with this.

i had a similar thought! Would also be handy to add netcat/nc type functionality for testing ports. Definitely on the TODO!

There's a new set of skills you learn to avoid said slop, like prompting for review, de-dupe, lots of ui/ux debugging, catching mistakes-in-motion or even making two LLMs fight it out on reviews. Having a good eye for things is still very necessary. It's got me back doing a lot more front-end design, which is something I normally don't do much of.
Can we ban ai :poop: already?
LOL if you'd talked to me a year or two ago I would have been similarly pessimistic about it, but this stuff is getting too good and moving too fast for me to avoid. Ultimately, it becomes about focusing on the end result, and not the process / academia, you are now the project manager, looking for a "done state" result that passes tests/QA, rather than the engineer worrying about code style. In that way, it's similar to dealing with a team of engineers.
 
Whether to use these machines should be a personal decision, but posting their outputs to a hobby website and saying you made them(!) is fair game for debate. I would at the very least like to see a tag here like in the trading post titles.
 
Back
Top