More than a terminal emulator — Upshell vs iTerm2

iTerm2 is an incredible, free, local shell replacement. But it requires you to manage your SSH hosts, keys, and file transfers through command line utilities and raw configs. Upshell is a complete remote-ops center.

iTerm2 is the gold standard for running local commands on macOS. But when you spend your day connecting to remote servers, you end up manually editing `~/.ssh/config`, managing keys in text files, opening separate SFTP apps, and using extra tabs for port tunnels.

Upshell doesn't replace your local terminal; it wraps your remote connections in a professional management console. It combines a tabbed, split SSH terminal with a visual host manager, key store, SOCKS5 rule generator, in-process agent, and built-in SFTP.

Should you replace iTerm2 with Upshell?

No — and any page telling you otherwise is selling something. iTerm2 is a local terminal emulator and Upshell does not run local shells at all. The real question is whether your remote work has outgrown a config file and a folder of profiles.

These two apps do not overlap the way the "alternative" search suggests. iTerm2 renders a terminal and runs whatever you point it at, locally or over ssh. It is free, open source, deeply configurable and genuinely excellent at that job.

What it deliberately does not do is manage remote infrastructure: there is no host inventory, no key store, no tunnel status, no file browser. You supply those with ~/.ssh/config, an agent, a separate SFTP app and some tabs you remember not to close. Upshell is that layer as an application — which is why the honest recommendation is usually to keep iTerm2 for local work and use Upshell for the servers.

Upshell vs iTerm2, feature by feature

An honest snapshot — a ✓ means the feature ships today, notes mark the differences that matter.

FeatureUpshelliTerm2
PriceFree · FULL $9.99/yr or $39.99 once (US; varies by store)Free, open source
SSH terminal splits & tabs
Visual host manager: tags, colors, pinned hostsProfiles only (manual SSH commands)
Safe Keychain Secret StorageRequires manual shell scripting / agent config
Co-session SFTP file browserCLI tools (sftp/scp) or separate client
ProxyJump & Bastion chain editorFULLManual ~/.ssh/config writing
Tunnel rule status panel (L/R/SOCKS)FULLCLI flags (-L / -R / -D)
iCloud Sync for hosts & keysFULLManual profile sync
Environment tab coloring & backdrop tintingFULLManual profile configuration
Local shell execution (zsh/bash)

Where iTerm2 is still the right choice

  • You primarily run local shell commands, scripts, and build tools on your Mac.
  • You need deeply customized terminal features like shell integration, trigger alerts, and custom GPU rendering.
  • You want a completely free tool with no paid tiers or premium features.

Bring your terminal setup with you

Upshell parses your existing ~/.ssh/config — aliases, wildcards, jump hosts and tunnels — and shows you the plan line by line before writing anything: created, updated, duplicate or skipped, each with the reason. Confirm, and they become saved hosts with their secrets in the Keychain. Your config file on disk is left untouched.

What actually changes day to day

Three differences you notice within the first week — and one that is not a difference at all.

Hosts become a list instead of a config file

With iTerm2 the inventory is ~/.ssh/config plus whatever profiles you have built. That is a perfectly good system until it is forty hosts across three environments, at which point "which of these is production" is answered by reading carefully.

Upshell keeps hosts as a searchable list with tags, pins and per-environment colours, and it reads the config file you already have rather than replacing it — see the ~/.ssh/config file explained. Colouring production tabs red is a small thing that prevents a specific and expensive mistake.

Tunnels stop being tabs you must not close

A port forward started with ssh -L lives in a terminal tab. It works, and the failure mode is that six weeks later nobody remembers which tab is holding the database tunnel open, so nobody closes anything.

Upshell FULL keeps local, remote and SOCKS5 rules in a status panel with their current state, independent of any terminal tab. SSH port forwarding on a Mac covers the flags themselves, which are worth knowing either way.

Files without leaving the session

From iTerm2, moving a file means scp, or sftp in a second window, or a separate client that logs in again. On a host behind two-factor or a bastion, that second login is the annoying part, not the typing.

Upshell’s file browser rides the shell’s existing SSH channel: same session, same authentication, no second prompt. SFTP vs scp vs rsync is worth reading if you are deciding which tool the job actually wants.

The terminal itself: no reason to compromise

Worth saying plainly, because it is the fear people have when leaving a beloved emulator. Upshell uses SwiftTerm: xterm-compatible escape sequences, scrollback search, native copy and paste, and window resizes propagated to the remote side, so tmux and full-screen TUIs behave.

It is not iTerm2’s feature set — there is no shell integration, no trigger system, no local shell. For remote sessions it does not get in your way, which is the bar that matters here.

Common questions

Can I use Upshell as my local terminal?
No. Upshell is designed specifically for remote SSH connections. It does not replace Terminal.app or iTerm2 for local shell work.
Does it support my custom terminal keys?
Yes. Upshell uses SwiftTerm as its terminal engine: xterm-compatible escape sequences, scrollback search, native copy and paste, and window resize propagated to the remote side.
Is Upshell a replacement for iTerm2?
No, and it is not trying to be. iTerm2 is where your local shell lives — builds, scripts, git, everything on your own machine. Upshell is where your remote hosts live. Most people who use both keep both open.
Why not just use ~/.ssh/config and iTerm2 profiles?
That works, and for a handful of servers it is hard to beat. It stops scaling when you have dozens of hosts, several jump chains and tunnels you need to keep track of — at which point the config file is a text file you are maintaining by hand rather than a thing you can see.
Is iTerm2 free?
Yes, free and open source, and it will stay that way. Upshell’s core is free too but the app is not open source, and the productivity layer is paid — worth knowing if open source is a requirement rather than a preference.
Can Upshell read the ssh config I already have?
Yes. Upshell FULL parses ~/.ssh/config including wildcards and bastion chains, and shows a preview of what will be created, updated or skipped before importing anything.

Try Upshell free, decide later

The core is free forever — unlimited SSH host connections, tabs, and co-session SFTP. No trial clock, no subscription.

Download on the Mac App Store

More comparisons: Upshell vs Termius · Upshell vs Royal TSX · Upshell vs Panic Prompt · Upshell vs SecureCRT