Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I know it's largely personal preference but are there any strongly compelling reasons to use iTerm2 over stock Terminal on macOS in 2025? Despite recommendations, I've been wary of security and privacy issues much like this SSH bug.


The killer feature for me is Edit>Selection Respects Soft Boundaries, which lets you copy text from inside windows defined INSIDE the terminal - like tmux or emacs splits - where iTerm figures out that, e.g., a pipe character is a window boundary.

Two more:

2) if you accidentally close a tab/window, you have a few seconds to hit ⌘z and the window will reappear as if you never closed it!

3) Minimum color contrast. If your terminal color scheme and what you're running's color scheme interact poorly to create something that would be unreadable, iterm notices and you can have it override those colors to be something of higher contrast, automatically.

But that's just my killer features. iTerm is like Word - it is a bloated monster with thousands of features. Nobody needs them all, but nobody agrees on which ones they need.


Being able to SSH into multiple machines, and mirror your keyboard across all of them is my favorite feature.


... a feature I've never used or had a need for thus showing my point precisely :)


Honestly, it sounds like an anti-feature or a crutch.

Designed to help environments that haven't reached 2010 era of automation of Salt or Chef.


Meh, I've used it numerous times in situations like setting up some clustered software to explore for the first time. Just fire up your 3 vms, ssh into each of them in their own panes, hotkey to activate broadcast mode, start creating/editing your config(s) and tuning your server.

It really is useful in the right scenarios, sure you shouldn't adopt it as your "official method for provisioning production servers" but that doesn't mean it doesn't have a legitimate use case or is a "crutch".


> Honestly, it sounds like an anti-feature or a crutch.

Every feature to one person can be a crutch to the next. Adding Salt or Chef to anything also increases the attack surface.


Ok those things are interesting though not killer level for me. But I moved away from Mac now because I found their stuff too opinionated. I use KDE now. I wonder if iTerm2 also exists on Linux if it's open source?


If you use KDE, then you already understand that having other peoples opinions forced on you doesn't always work.

You probably don't need iTerm because the KDE (and the Gnome tbh) consoles are so much better than the built-ins that come with Mac and Windows.


Yes this is indeed exactly why I moved from Mac to KDE and why I donate to them. They still understand that in this day and age of opinionated design. I have KDE very heavily customised, but the cool thing is that unlike Gnome I didn't have to use a single plugin to do it (which always causes issues upgrading). Everything I wanted to change was available as a setting somewere.

And yeah I use Konsole, it's great! <3

MacOS wasn't so bad in the beginning, it used to be a Unix with good UI, but over the years Apple has been very busy replacing extensive settings with annoying on/off sliders (or nothing at all). Especially on macOS Server (if that's still a thing).


I was gonna ask if Terminal never had any security issues, then tried to find a page with its release notes, and unfortunately couldn't find anything.

I also tried different macOS release notes [1][2][3][4], doing ctrl F "terminal" and could't find anything either.

Does anyone know where this is published? Is it not publicly available?

[1] https://developer.apple.com/documentation/macos-release-note...

[2] https://support.apple.com/en-us/120283

[3] https://support.apple.com/en-in/109035

[4] https://support.apple.com/en-us/106337


There definitely have been CVEs in Terminal.app, over many years:

- https://www.cve.org/CVERecord?id=CVE-2008-0042

- https://www.cve.org/CVERecord?id=CVE-2002-1898

- https://infocon.org/cons/Disobey/Disobey%202017/Mikko%20Kent... [video, I can't find a reference to that in Apple's release notes]

- There is also https://seclists.org/oss-sec/2018/q1/216 -- which led to a vague credit for Federico Bento in https://support.apple.com/en-ng/103758 proving they don't give everything CVEs (fine, but when the issue is public already it would be helpful to have a bit more detail).

I reported https://dgl.cx/2023/09/ansi-terminal-security#apple-terminal... to Apple ~2 years ago and they still haven't fixed it. It's not as serious as some vulnerabilities though and likely doesn't deserve a CVE, would be nice if they fixed it though.

(Finding this can be hard because Apple only link to release notes for currently supported versions, the pages are still around if you know the URL or you can find them via searches if they happen to be indexed still.)


So the only reason I switched to iTerm2 was because I wanted my terminal to change color when I ssh into different hosts. If I ssh into my work machine the terminal turns blue. If I ssh into my home machine the terminal turns purple. I'd tried to do this with the default terminal but ran into issues with it getting confused depending on how a session ended. People suggested iTerm2 because it supposedly solves this. And it does, at least for me.


How do you do this? Didn't know about this feature.



This! I've played with wezterm and ghostty but haven't been able to get this working there, so I keep coming back to iTerm2 for this exact feature - so that prod servers have a red background, etc.


Kitty (https://sw.kovidgoyal.net/kitty) has been my go to for many years and with tmux it's fantastic.

I have heard a lot of great things about https://ghostty.org/ but haven't had a chance to check it out

edit: oops, I misread your question as "what alternatives are there"


My only issue with kitty and tmux is that I always have to copy over my terminfo files manually or else I get a 'xterm-kitty': unknown terminal type error.


I've done the same, but in case you didn't know Kitty can do that automatically (though it does a bit more that you may or may not want it to do)

https://sw.kovidgoyal.net/kitty/kittens/ssh/


Kitty is really the only superior editor beyond ghostty terminal iterm weztwrm alacritty foot and others and the only one worth recommending.


No it's not. The author smuggles opt-out telemetry and is suspiciously abrasive towards users pointing this out.

https://github.com/kovidgoyal/kitty/pull/3544


No, he’s not. Calling this telemetry is a stretch and that’s his style on everything he disagrees with (unfortunately).


It would be a stretch if it was opt-out, but as it is, every installation of Kitty phones home by default. That is the exact equivalent of telemetry.

His "style" compounds on that by making him seem untrustworthy.


This, of course, depends on how long you’ve been using macOS and what long list of quirks you’ve acquired.

For me, „just” being able to use a full-screen-mode-that-is-different-than-native-macOS-full-screen is worth it; but I imagine there are maybe like seven other people out there for whom it matters.


This is the only reason I use iTerm2. I can view the terminal full screen while also instantly switching to the browser or other windows, without the animation.


> full-screen-mode-that-is-different-than-native-macOS-full-screen

Thank you for reminding me why I should just return to iTerm! It might seem minor to some, but this is such an essential 'feature' that it probably overrides all other differences, for me.

One small question, though: are you aware of anything that 'native' full-screen does that 'bespoke' full-screen misses out on? Any disadvantages whatsoever?


Full-screen-but-not-native is useful enough that it's handy to have around for all windows in all programs.

So the move there is to install Rectangle.app (https://rectangleapp.com/), the successor to Spectacle, and then choose your terminal independently.


That’s not what iTerm2 does.

I want an actual-full-screen, with menu-bar and Dock invisible, with no window chrome - not merely “fill the maximum allowable space by the OS, as if dragging the windows corner with mouse”.

BUT I don’t want to use the native affordance for that, since that makes it its own “Desktop”, and I can no longer switch to it using my Snow Leopard-era muscle memory of using ^-<number> to switch between them.

I am fully aware that this is incredibly niche requirement, but it is a dealbreaker for me :)

I saw that Ghostty kinda supports this; but then disables tab support if this is enabled, which, also an obvious dealbreaker.


There are reasons. Whether they are compelling or not, largely depends on what software you want to run.

https://textual.textualize.io/FAQ/#why-doesnt-textual-look-g...


Instead, I would recommend Ghostty [1] terminal recently released v1.0 by one and only Mitchell Hashimoto of Hashicorp fame. It is OSS native cross-platform application (not an Electron one). I have been using it for the last year (private beta) on Mac and Linux and it rocks.

[1] https://github.com/ghostty-org/ghostty


Could you post your config for inspiration? I dont like starting with a blank canvas.


I just started using it when it launched 1.0. the stock configuration is basically perfect for me, with a few minor tweaks and a theme:

    confirm-close-surface = false
    macos-titlebar-style = tabs
    theme = IR_Black


My Ghostty config:


It implements tmux control mode. It's very useful when working with a remote server.

No other terminal implements it AFAIK.


What does tmux control mode do in practice? I use both (iterm2 and tmux), but not for this specific reason. I have just used both as a default for a long time.

So, what magic am I using without realizing it?


tmux metaphors are implemented in gui. tmux tabs are iterm2 tabs, tmux windows are iterm2 windows, etc. attach/detach and so on will restore layouts.

i believe the session can even be shared with a normal tmux session.


Yes, this was such a nice feature when I used a Mac. And indeed the session seamlessly works as a normal tmux session. I believe WezTerm does tmux-style terminal multiplexing, but doesn't integrate with tmux.


I use the graphics support for making quick & dirty scrips for managing images (mostly for checking labeling and things like that where I don't want to bother creating a full web UI).

I tried Ghostty for this but couldn't get the images to display as quickly or in full resolution, but it's very possible I was holding it wrong. I'd love to switch, honestly, if anyone has a recommendation for how to make it work as well as the iterm2-tools Python package.

I also use multi-pane mirroring for managing some machines at home that I haven't bothered making more automated.


I use it primarily for its split pane functionality. Invaluable if you need to see multiple things happening on the same machine at once. I work in data science and often have several long running jobs on a single server, a notebook server, htop/iotop, nvidia-smi, or simply just having different panes cd'd to different directories - with iterm you can organise to a single terminal tab for each machine (including local), or group tabs across machines if they are for related work.


Have you tried using tmux?


Yes I use them together, iterm has a great tmux integration. Tmux vanilla does not have great UX (in my opinion).


native Terminal.app doesn't have true color support (24 bit colors). I was happy using it but wanted to try some fancy vim themes.

I stopped using iterm after it did the chatgpt integration, which was a bridge too far for my tastes and landed on wezterm. All of the alternatives have nits.


It's dumb, but Terminal.app is about eight years behind every other macOS terminal in supporting true color mode. Feels like sort of a table stakes feature in a modern terminal, and makes me suspect Terminal.app is not a high priority for Apple. The people want pretty editor themes!


It’s abandonware at this point. Even Windows Terminal is better now which is just embarrassing.


Same. I switched to Alacritty and later Ghostty.


I just have been trying ghostty recently - the biggest usability issue I’ve immediately run into is a lack of cmd-f to search text (as far as I can tell) —— I’m having to copy everything into a text editor then search. I never realized how often I used that it until I lacked it.


I got tired of weird sketchy seeming behavior in iterm2 (it'd hang randomly when accidentally sending binary streams to stdout; it'd take forever if I asked it to search my many tb of buffer, etc). I switched to xquartz and xterm, which was fine; I had to retrain my fingers back to whatever they'd been trained to do in 1998, but they got there.

But probably that's terrible advice for 99.8% of people out there, probably more like 99.998, or even more 9s.


I like the highly configurable quake mode in iTerm2.


Both are very competent terminal emulators. Just use either and you won’t miss much. I started using iTerm before the Terminal.app redesign (which was very much needed) and kept using it mostly for the tmux integration (which is a strong reason to use it). Nowadays, I would be happy using either. Ghostty is fine as well, though not as polished yet.


Control-tab can be set to cycle through tabs in recency order rather than the bad apple default of "go to the next tab to the right".

It has far too much feature bloat though to the point that it's somewhat brittle, and I'd imagine there are many more lurking security issues


I just like having it docked to the top of my screen, and accessible via a global shortcut.

I'm sure there's a thousand others that do both of those things, but I adopted iTerm2 about 10 years ago, and it hasn't given me cause to investigate others.


When I’m forced to use something else, I miss eternal-terminal atop tmux control mode and iterm. It’s total bliss and there’s no other terminal emulator on any platform that can compare.


If the stock terminal app supported more colors (idk what the official term is lol) I’d be fine using it. I don’t use any fancy iterm features anyway. Fish + zellij is all I need!


I stepped back into macOS for the first time in ~8 years and was disappointed by Terminal. To be honest, I think Windows Terminal is much better, which feels a bit weird to say.


Terminal came out 23 years ago, Windows Terminal in 2019. The old Windows terminal was garbage.

I still prefer the blurred transparency of Terminal over the too transparent Windows Terminal, but that’s a matter of taste.


Hey, Terminal.app's been around ever since NeXTSTEP was born. Make it 35 years?


Pretty sure if it gets upgraded to become more modern somebody somewhere will also complain about it losing its simplicity.


Mitchell Hashimoto and group of contributors released a native terminal app recently - ghostty.org

Well suited replacement for iterm2 and terminal.app, imo


> strongly compelling reasons to use [3rd-party terminal]

Deniable ("popular app") increase in attack surface?


Copy on select is the feature I used to over the years (on BSD/Linux) and stock Terminal lacks it.


Two main reasons I switched is that iTerm can actually display bitmap fonts without mangling them (Terminal has anti-aliasing always on) and that it handles the difference between left and right Alt (needed because AZERTY layout + emacs).


>Terminal has anti-aliasing always on

There's a setting under Profiles/Text in the Text section. It's the first checkbox. Does that work, or is there a bug?


I am using bitmap font with AA off in Terminal.app so this is incorrect


Tmux


tmux runs just fine in Terminal.app. What else, then?





Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: