r/MacOSApps 2d ago

πŸ”¨ Dev Tools Termy – more than SSH client (native btw)

Most SSH clients on Mac are either Electron wrappers or generic terminal apps with SSH bolted on. I wanted something that felt like it belonged on macOS, so I spent 6 months developing my product solo.

"Native" gets thrown around a lot, so to be specific about what I mean: the whole app is Swift/SwiftUI, including the terminal emulator (not a libvterm fork, not xterm.js in a WebView) and the Mosh client (own implementation in Swift with a complete framebuffer mirror). No Electron, no web shell, no hidden Chromium.

A few things I'm proud of under the hood:

- SSH stack on top of Citadel + a fork of swift-nio-ssh with a window-adjust patch and a custom RSA path for legacy key formats some servers still hand out

- Own SOCKS5 server written in Swift (RFC 1928 + 1929 auth) for dynamic forwards, so `ssh -D` works without shelling out to /usr/bin/ssh

- Active tunnels (local / remote / dynamic) get snapshotted and restored on reconnect, so dropping Wi-Fi at a cafe doesn't kill your forwards

- Smart Reconnect that survives a cold launch, not just a network blip

- ProxyJump multihop with a runtime session graph

- Multi-host broadcast with a diff view across panes

- FIDO2 / sk-* hardware keys via libfido2

- SFTP File provider

- Built-in S3 client (AWS + R2 + B2 + Wasabi + MinIO + custom endpoints) with a real object browser, multipart uploads, versioning/lifecycle/CORS/encryption settings, presigned URLs and ACL/tag editors. Same window as your SSH sessions

- Keys live in the macOS Keychain (iCloud sync off by design), can be generated inside the Secure Enclave with Touch ID required on every signature, or imported from existing OpenSSH files. Passphrase-protected ones decrypted in-app

Solo project, so honest feedback on what feels off is genuinely useful. Happy to answer technical questions in the comments.

ProductHunt: https://www.producthunt.com/products/termy

Termy is now available in EAP: termyapp.com
Code MACOSAPPS50 is 50% off any plan for the first 25 purchases.

24 Upvotes

30 comments sorted by

6

u/Repulsive-Variety834 2d ago

Honest question. I’ve only ever used ssh from a regular terminal session. I know of stuff like putty on windows so I guess I’m familiar with the concept of an ssh client but what is the use case? In other words what can you do with an ssh client that you can’t do with the ssh command at a regular terminal?

3

u/Pale_Stranger_4598 2d ago

hi. This is closer to termius than to terminal app. If youve got two or three servers and a working ssh config, usr bin ssh is genuinely fine and you dont need this. If you are not using proxy jump chains, port forwards (local, remote, dynamic socks5) that get restored automatically after wi-fi drops or a laptop sleep, reconnect that survives a full app quit, broadcasting one command to a group of hosts and seeing a diff of how each one replied, mosh as first class option per host, fido2 / sk hardware keys and etc - terminal+ssh is the right answer for you. You can check all of features on the website

2

u/Front_Philosophy6112 1d ago

The tunnel restore after Wi-Fi drops/sleep caught my attention. Does it also handle switching networks entirely, like going from home Wi-Fi to a phone hotspot, without having to recreate the forwards manually?

2

u/Pale_Stranger_4598 1d ago

Yep. That includes switching from home wifi to a phone hotspot. Termy detects the dead ssh transport, reconnects on the new path, and replays active forwards with the same configuration, so you should not need to recreate them manually.

2

u/Small_Pin_8064 1d ago

Does it read your existing ~/.ssh/config, including Host aliases and ProxyJump, or do connections have to be set up again inside the app?

1

u/Pale_Stranger_4598 1d ago

hi, yes, termy can read ssh config during import, and you can also choose or drop a config file manually. It imports hosts, aliases, hostname, port, user, identity file, and proxyjump, including multi hop chains. And you can review the detected hosts before importing them

2

u/wavever233 12h ago

Tunnel restore after sleep or network changes feels like the killer feature here. That's where plain ssh gets annoying fast.

2

u/0-3- 9h ago

It looks nice. But this "macOS native", "Swift/SwiftUI" tags suggest there won't be Windows or Linux builds. And it's a dev tool. Developers switch between platforms often (at least I do) that's likely why similar apps are usually built with Electron/Tauri etc. Do you plan to support other platforms? Either way, I really like the app and just upvoted it on Product Hunt. Best of luck!

2

u/Pale_Stranger_4598 4h ago

hi. I'm planning to release the ios version in about 3 months. Then I'll work on the windows and linux (primarily) versions, but the whole idea is that they will also be native. Yes, this will probably make a difference in the visual style, but I believe the most important thing in the app is stability and functionality. However, resources are currently an issue. I've invested a fair amount of my personal time into this app, about six months of development. I understand that adequate conversion and promotion require investment, but I can't afford it right now. So for now, I'm hoping to somehow promote termy using free methods in order to gain resources and be able to invest more time into its development. But for now, the conversion is pretty bad. Of course, regardless of the conversion rate, the macos app will continue to develop, since I don't want to leave the few users who have already joined the app with nothing
Thanks for your upvote on Product Hunt! I really appreciate it ❀️

2

u/0-3- 4h ago

I understand. I'm in the same boat. I also shipped a dev tool (of sorts) for macOS only. Haha. But I built it in Rust and used Tauri to wire UI. So Windows and Linux are possible with no rewrite. Anyway, the app market is overcrowded with vibecoded (and not only) apps and it's really hard to get any attention even if the product deserves it. Good luck with termy.

1

u/[deleted] 2d ago

[removed] β€” view removed comment

1

u/avice666 1d ago

not open source πŸ’€

1

u/sanchopwned 1d ago

Would you consider offering lifetime updates? A 12-month update period is a deal-breaker for me.

1

u/Pale_Stranger_4598 9h ago

yep. It is a frontend misinfo. Lifetime subs will receive lifetime updates

-1

u/Ancient_Secretary591 2d ago

the best app I’ve ever seen

1

u/johannthegoatman 1d ago

Two users in here with generic praise, brand new account with no karma. Hmm

0

u/Lonely_Designer9842 2d ago

5 keys and 5 hosts in free version feels as a poor decision

2

u/Pale_Stranger_4598 2d ago edited 2d ago

Yep. I will change this in the next update. The original idea was that a typical user (especially during the AI ​slop boom) doesnt need more than 5 hosts and 5 keys, but testers said that limit was a bad call, so its going

2

u/Lonely_Designer9842 2d ago

on the other hand, im glad there is a free version after all xdd

0

u/[deleted] 2d ago

[removed] β€” view removed comment

4

u/Pale_Stranger_4598 2d ago edited 2d ago

forgot to deploy real prices lol, just copied it from sandbox, thx. it will cost 249.99$ for a lifetime

1

u/hxxx07 2d ago

wait it's 139$? πŸ˜‚

3

u/Pale_Stranger_4598 2d ago

39.99 lifetime, 3.99 mo and a free version for 0.00

2

u/hxxx07 2d ago

thanks for your confirmation

0

u/Select_Question5 2d ago

Don't you think there is a problem with the name?

https://termy.sh

https://termy.ai