TreeMendous Terminal
Simon Waite
Post date: Oct 13, 2026 12:00:00 PM
TreeMendous - an opinionated file mangler
So I wrote a file manager that I wanted to use; Transmit, CyberDuck and Prompt are all very nice on iOS/MacOs, but they all lacked an ability to be used across all my devices.
Terminals
Terminals because if you’ve built the framework for ssh to use with sftp, you might as well add a terminal…
- xterm, vt52, ansi, videotext …
- whilst we’re doing terminals, might as well use FISH and implement file transfers over a terminal
- okay on the same subject of file transfer, implement X/Y/Z-modem, and kermit for good measure
- wait, those aren’t just for odd shells, they’re used for BBSes too, add telnet as another transport!
- ooh, maybe serial sometime in the future too.
But back to the file manager…
- Let’s implement a virtual file system
- First the host …
- SFTP next
- wait transfers are so slow, so let’s use scp for the transfers
- scp not installed, but we have a shell? let’s use tar instead as we can stream multiple files that way…
- scp/sftp administratively blocked or just not included? FISH is the answer
- FTP(s) too … does anyone still use that any more? (apparently so)
- WebDAV, because it’s on everyone’s feature list (even I had clients doing private cloud sharing on it)
- 9P, because I was originally going to use this as a model… but it was too limiting, and it got some 9fans interested.
- S3, apparently no-one takes you seriously until you use S3 buckets as a file system!
- AFP, now os27 drops this from Macs, and I still have a NAS that serves my local users, it has active directory on SMB
- NFS, wait… why? Because I still use it!
- SMB, because everyone uses it on workgroup mode at home and domains at work
- Kerberos, because you need the right authentication models on NFS and SMB!
Oh, you want to open zip files like windows does?
- Zip files appear like folders (we can thank Dave Plumber for implementing this as a shell extension in windows)
- 7zip too (our own implementation)
- Tar files too, are you crazy?
- cpio ? ah yes you are. Understood
- ar archives? you need therapy – those don’t even have folders! can you even ranlib? (maybe)
- compressed files? sure!
- Z (compress)
- gz (gzip)
- bz2/bz (bzip2)
- xz (xz)
- lz4 (lz4)
- sz/.snappy (snappy)
- rar … why yes, but only reading as the Russians might get upset with us if we start compressing things
- multi-part archives; no - we might be slightly mad here (it helps) but I’m not going to support that; unless someone pays handsomely for that feature
- par … arrr no matey!
What about weird formats?
Don’t worry, we got you fam!
- base64 encoded files - single file
- uuencode/uudecode (.uue) - virtual directory
- mime (.mime, .eml, .msg) - virtual directory
- yenc - virtual directory, because usenet loves this format matey!
Metadata
Okay, what about metadata?
- access control lists (readonly for now, because it’s challenging to get right)
- alternate data streams, because apple got there first with resource forks
- xattr support on the host file system, or network file system if it supports it (a poor man’s resource fork)
No, not that kind! I mean on my photos, music files, etc
- images; exif and friends – absolutely - even those weird raw formats
- audio files; yes!
- video files; indeed!
- pdf files; what? oh, yeah they have metadata too apparently
- epub files; yarrrrrrrr
- medical imagery; check !
- Microsoft office files; sigh, if you MUST
- executables, and object files … well if I’m going to be ranlib-ing files I have to do this!
- other random files … I give a great guess at mime-type
Say that layout looks very familiar
Yes, I wanted to base it around norton commander, or its contemporary clone midnight commander.
As such, I do a fair job of displaying the file - in hex if you need it that way. If it’s text, and reasonably small, I’ll even edit it!
Frequently Asked
What’s that F10 thing … I thought that would be quit/exit?
F3 is most often marked as exit, otherwise you have a close box X or you could hit the escape key.
Warning: This is new software – some areas aren’t consistent yet.
F10 is used to open the share pane on your device.
F6 Move … can’t I rename?
Yes, I just couldn’t fit it in the button.
You mean you can click…
Yes!
F9 wasn’t that for a menu?
What a great memory you have! We’re going to use that for creating files; Archives for now, though. Menus aren’t used on all devices. Most of the functions are accessed by specific buttons rather than menu bars, ribbons (urgh) or context menus.
F11? F12?
No space; Also If we’re going to do that F11/12 sometimes can be a bit tricky to use.
Where do I send money?
Details where and how to send me brown paper bags stuffed with cash, to follow. I just need to set up the account in the Cayman Islands…
How do I get a licence?
Seriously – I’m still working on that. I expect most people will want to buy it from an app store. Though I’ve not ruled out requiring some kind of drm/licensing system. I don’t particularly want to run a licensing server. Nor do I want telemetry or tracking… I’ve seen your files, I don’t want anything to do with them ;-)
So what might the licence key look like?
I’m currently thinking that I may just sell you a licence key, one that will get you though the download portal. It’ll not be stored anywhere other than on your invoice.
But won’t that allow folk to pirate/steal your software?
Sure, but those folks were never going to buy it anyway. It’ll save me the hassle of dealing with people using half-baked cracks complaining that it doesn’t work, or why I made it stop functioning suddenly. I certainly won’t be jump-scaring the pirate.
I have a question …
I am not planning to run a support forum, as I don’t wish to collect any information from you any more that what is required to invoice you. I certainly don’t want you to prove your identity to me or anyone else.
I may set up a facebook group, if pushed, but that’s about it. I’m also happy to answer questions and receive bug reports on email as long as it’s manageable.
Do you have any plans to offer support contracts?
For the right price, I may offer support contracts for larger clients, though I’d probably have to employ someone to manage that.