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.
| Feature | Upshell | iTerm2 |
|---|---|---|
| Price | Free · 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 hosts | ✓ | Profiles only (manual SSH commands) |
| Safe Keychain Secret Storage | ✓ | Requires manual shell scripting / agent config |
| Co-session SFTP file browser | ✓ | CLI tools (sftp/scp) or separate client |
| ProxyJump & Bastion chain editor | FULL | Manual ~/.ssh/config writing |
| Tunnel rule status panel (L/R/SOCKS) | FULL | CLI flags (-L / -R / -D) |
| iCloud Sync for hosts & keys | FULL | Manual profile sync |
| Environment tab coloring & backdrop tinting | FULL | Manual 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.
Where Upshell excels for remote system administration
- Visual host manager: saved hosts are organized by tags and colors, pinned to the top, sorted by name or last connection. Double-click to connect, or find any of them with ⌘K fuzzy search.
- Environment colors: a colored bar under each tab tells you instantly whether you are on production, staging or a local box — and a tab split across hosts shows every colour, so "production + local" never reads as just one of them.
- Co-session SFTP: drop files from Finder into the SFTP pane to upload them over the very same SSH connection your shell is using — no second login, no separate app.
- Bastion & Tunnel Manager: configure ProxyJump chains and SOCKS5 local forward rules inside a clean editor, with active rule tracking in the status bar.
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?
Does it support my custom terminal keys?
Is Upshell a replacement for iTerm2?
Why not just use ~/.ssh/config and iTerm2 profiles?
Is iTerm2 free?
Can Upshell read the ssh config I already have?
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 StoreRead next: The ~/.ssh/config file explained · Rename and colour SSH tabs · SSH port forwarding on a Mac
More comparisons: Upshell vs Termius · Upshell vs Royal TSX · Upshell vs Panic Prompt · Upshell vs SecureCRT