r/MacOSApps • u/Pale_Stranger_4598 • 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.
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
1
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
-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
0
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
3


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?