Apple’s macOS is a powerful development platform with many great coding tools available. Some of these are built-in, such as Python3, while others are easy add-ons, like the Homebrew package manager. Developers and sysadmins alike rely on the terminal to establish remote connections using SSH, issue file management commands, examine log files, update software and more. Apple provides the Terminal program for exactly these reasons.
Open the Terminal app with any of these methods:
- Spotlight
- Launchpad > Other > Terminal icon
- Finder > Applications
I suggest adding the Terminal to your Dock right away. You’ll use it frequently, so you may as well make it easy.
The default Terminal application includes plenty of customizations, including color themes, text sizes, cursor, background images, window groups and more. More adventurous users can also modify the
~/.zshrc
file.
Remember, the command line is almost always faster than the GUI (assuming you know the commands). You can quickly browse deep into the file system, especially if you’re comfortable using tab completion. You can also set permissions, edit files, launch applications and establish remote connections. It’s a powerful tool.
What’s Wrong With the Default Terminal?
So, what’s wrong with the existing terminal application, and why would power users like developers and administrators want to install a third-party tool?
Third-party vendors develop dedicated programs that are usually more feature-rich than Apple bothers with for tools like Terminal. After all, most Mac users will never access the command line. Apple keeps the tool basic and straightforward. However, more robust features increase productivity and simplify file system access.
The following sections discuss powerful alternatives to the built-in terminal application. These tools can make your coding projects easier, but they’ll also help with application management, remote connectivity, file management, etc.
iTerm2
iTerm2 tends to land near the top of any list of macOS terminal applications. It’s popular, powerful, and offers options command-line power users often need. These features include split panes for referencing multiple resources simultaneously or running several tasks at once. You can also configure a hot key to access iTerm2 from any program.
One of iTerm2’s most interesting features is multiple profiles, enabling users to optimize certain profiles for certain coding tasks (authoring, testing, debugging). You can switch profiles quickly to prevent interrupting your workflow.
iTerm2 is clearly a strong solution for any developer’s macOS needs. Take the time to explore its features, configure one or more profiles and set search options to get the most out of it.
- Cost: Free
- License: GPL 2
- Requirements: macOS 10.14 or newer
Install iTerm2 quickly by downloading the package.
WezTerm
WezTerm should also be near the top of your list of terminal emulators to try as you set your Mac up for dev work. It’s frequently contrasted against the other main contender, iTerm2, and tends to compare favorably. WezTerm offers extensive customization using Lua-based code. Its GPU acceleration makes it smooth and fast on modern Macs.
The WezTerm site offers comprehensive documentation to help maximize the terminal configurations that fit your needs. Consider starting your customizations with scroll-back settings (consisting of a buffer containing items that have scrolled upward off your screen) and Copy mode (enabling keyboard-based text selection for more efficient actions).
Install WezTerm with Homebrew, download the binary or compile it from source code. Homebrew is probably the best option. Simply type
brew install --cask wezterm
in your current terminal program.
- Cost: Free
- Requirements: macOS (Silicon or Intel-based Macs), Linux, Windows, FreeBSD
Warp
Warp is a new take on the needs of the modern command-line user. It offers customization, themes and key bindings — just like other terminal programs — but it also provides AI integration, IDE-like editing capabilities, smart suggestions and autocompletion.
Warp also taps into the collaborative nature of today’s development teams by providing a central repository to store code and resources, enabling developers to access files and tools right through the terminal.
Warp is sometimes viewed negatively for forcing users to log in before use. That requirement is now optional, allowing users to access the tool without centralized authentication.
Warp’s AI Agent Mode functionality enables you to query AI about the code you’re writing (or need to write) or test applications. Privacy concerns around AI integration are alleviated by complete control of AI access, and the fact that AI interactions are stored anywhere but on your systems.
Install Warp on your Mac using the
brew install --cask warp
command. As with other robust terminal programs, be prepared to spend some time learning Warp’s capabilities and options.
- Cost: Four tiers, beginning with a limited free tier and moving upward to enterprise support
- Requirements: macOS and Linux
Warp begins with a personalization wizard to get you started.
Commander One
Commander One is technically a file manager application that replaces the Finder, but its PRO Pack version includes built-in terminal functionality, making it a popular and practical choice to replace Apple’s Terminal program. Like other terminal emulators, it supports hot keys, cloud integration, process management, themes and more.
Commander One is best suited for developers needing a solution that goes beyond a mere terminal program. It won’t be for everyone, and only the PRO Pack version includes the terminal emulator component, so it requires a purchase for full functionality. However, the broad range of features and capabilities make it worth a look (which is easy, since it has a trial period).
Download the DMG package or get Commander One from the Apple App Store.
- Cost: Free and PRO Pack version. PRO Pack is a one-time $30 charge for a single license or $99.99 for a team license covering five Macs
- Requirements: macOS 10.13 or newer
Hyper
Hyper 3 is a highly extensible terminal program designed for simplicity, speed and stability. It uses the HTML/CSS/JavaScript open web standards to provide functionality and customization. This underlying structure enables Hyper 3 to work on macOS (Intel and Silicon), Linux and Windows, making it a great option for those of us who work on all three platforms regularly. Imagine having the same customized and familiar terminal profile on each of your systems, regardless of the support operating system.
Hyper 3 encourages community involvement with the development of plug-ins and themes. The site provides compatibility guidelines and coding suggestions. Hyper 3’s MIT license enables this strong community activity. You should definitely consider this terminal emulator if you enjoy contributing your modifications and improvements to other users.
You can download the Intel or Silicon DMG file from the Hyper 3 homepage. You can also get the Linux DEB, REM, AppImage or Windows EXE files from the same site.
- Cost: Free
- Requirements: macOS (Intel or Silicon), Linux, Windows
Core Shell
Core Shell is a combined SSH client and terminal application. It supplements the default macOS Terminal program with better OpenSSH integration, providing a useful environment for developers and administrators who regularly access remote resources. It works with Terminal and iTerm2, enabling you to combine the features of those tools with better SSH capabilities. Core Shell includes macOS Keychain integration for easier account management and security.
Core Shell offers extensive customization for SSH connections, much like the Windows PuTTY app. These features enable users to optimize multiple remote connections. Use tagging to easily identify remote hosts in large network, virtual or cloud environments.
Download the DMG file or get Core Shell from the Apple App Store.
- Cost: Free and Premium versions
- Requirements: macOS 12.0 or later (Silicon or Intel-based Macs)
Alacritty
The Alacritty terminal program emphasizes a streamlined approach to command-line interactions. It’s GPU-accelerated, with flexible configuration options stored in a TOML file.
Notable features include vi mode (enabling vi-related key bindings) and a searchable scroll-back capability. Alacritty enjoys an active developer community, and while it is considered a beta version, it receives constant attention.
Be aware that Alacritty doesn’t try to provide all things to everyone. Its performance-oriented approach emphasizes integration with other tools to implement features like split windows and tabs. Not including these features also encourages users to look for more efficient options, such as tmux.
Install Alacritty on macOS by typing
brew install --cask alacritty
or download the DMG file. Linux and BSD users can build it from source code, while Windows users have MSI or EXE installers.
- Cost: Free
- Requirements: macOS, Linux, BSD, Windows
kitty
Another terminal application option for macOS (and Linux) is kitty. Its interface features tabs and windows to organize command-line tasks using flexible layouts organized inside a macOS or Linux window. Like other terminal programs, it provides keyboard shortcuts and features that help you keep your hands on the keyboard, where you’re most efficient. However, kitty recognizes and works with the mouse when you need a graphical interface.
Plan to take some time learning kitty terminology and features, because there’s a lot going on, and not all of it is intuitive or familiar when you first access the program. The kitty design team emphasizes performance optimization, so many choices exist to ensure you get the most from your hardware.
The kitty installation page provides the necessary curl command to download and install the program. The installation packages are also available from GitHub, as is the source code for building it from scratch.
- Cost: Free
- License: GPL 3
- Requirements: macOS and Linux
Modifying the Shell Itself
The above programs manage how you interact with the operating system’s shell. However, a different approach is customizing Apple’s default Zsh configuration or replacing Zsh altogether with a different shell, such as Fish or Bash.
Oh My Zsh
Oh My Zsh is a configuration framework for Zsh, macOS’s default shell. It makes customizing and managing Zsh easier by maintaining themes, plug-ins, custom configurations and more. As an open source project, it relies on its active community for continued development. The 300+ available plug-ins are a testament to that community’s involvement.
You may choose to configure your Mac’s existing shell rather than update the terminal emulator you use to interact with it. This extended configuration could provide all the additional functionality you need to use the command-line interface for file management, software maintenance and scripting without adding third-party applications to your Mac. Begin by adding zsh-autosuggestions
, zsh-syntax-highlighting
and the git client. If you’re an AWS, Docker or Kubernetes user, be sure to research the related plug-ins for those services.
A simple curl command brings Oh My Zsh to your Mac. It’s also available for your Linux box.
Fish for Another Shell
An alternative to your Mac’s default Zsh is the Friendly Interactive SHell, or Fish shell. This shell features syntax highlighting, auto-suggestions, tab completion and scripting via a user-friendly command-line interface.
Keep in mind that replacing your shell means you may need to relearn some commands and modify how some scripts work. However, you may prefer this solution to get consistent command-line environments across macOS and Linux platforms.
Install Fish on your Mac by using the brew install fish
command.
You can also add Fish to your Linux, BSD and Windows systems.
Bash Your Mac
Another alternative is to make your Mac look and feel more like your Linux systems. Do this by installing the Bash shell and customizing the
~/.bashrc
file to your liking. You can research additional Bash tweaks from there.
Install Bash on your Mac using the
brew install bash
command.
Wrap Up
Macs are a great platform for developers. Plenty of excellent programming tools are available, and the security and performance of the operating system make it a practical choice. One of your first tasks when constructing your dev computer is selecting the applications that make coding, version control and file management easier. These choices often include the following:
- Software package manager
- Virtual machine platform
- Container platform
- Integrated development environments
- Application testing, linting and debugging tools
However, I suggest beginning with the most fundamental interface to the system: command-line access. Apple’s Terminal application offers customization options, or you can modify the shell itself to suit your needs. Many developers, sysadmins and other power users start by adding a more robust and customizable terminal emulation program.
Begin by evaluating how you’ll use the terminal, including the following considerations:
- Access to command-line applications like Vim or IDLE
- SSH connectivity to remote or virtual systems
- Access to software and project repositories
Tools that help keep your hands on the keyboard (instead of the mouse or trackpad) greatly increase your efficiency. Watch for ways to use key bindings and automation to streamline your workflow and reduce the time you spend driving the mouse or doing mundane tasks.
The programs above will get you started with selecting the terminal that best fits your workflow and preferences. Spend some time learning the customization options. Keep the programs up to date, as many have active contributor communities that continually improve the programs.
Begin today by installing at least one of the terminal programs above. You won’t be disappointed.
The post The Best MacOS Terminal Emulation Programs for Developers appeared first on The New Stack.